From 249193e8a8fd649bcb495384bc5237774bc75bc4 Mon Sep 17 00:00:00 2001 From: adamw Date: Tue, 25 Jul 2017 12:41:18 +0200 Subject: Release process --- project/SttpRelease.scala | 42 ++++++++++++++++++++++++++++++++++++++++++ project/plugins.sbt | 2 ++ 2 files changed, 44 insertions(+) create mode 100644 project/SttpRelease.scala (limited to 'project') diff --git a/project/SttpRelease.scala b/project/SttpRelease.scala new file mode 100644 index 0000000..9e96eb6 --- /dev/null +++ b/project/SttpRelease.scala @@ -0,0 +1,42 @@ +import java.util.regex.Pattern + +import sbt._ +import sbtrelease.ReleasePlugin.autoImport.ReleaseKeys._ +import sbtrelease.ReleasePlugin.autoImport.ReleaseStep +import sbtrelease.ReleaseStateTransformations._ + +object SttpRelease { + def steps: Seq[ReleaseStep] = Seq( + checkSnapshotDependencies, + inquireVersions, + runClean, + runTest, + setReleaseVersion, + updateVersionInReadme, + commitReleaseVersion, + tagRelease, + ReleaseStep(action = Command.process("publishSigned", _)), + setNextVersion, + commitNextVersion, + ReleaseStep(action = Command.process("sonatypeReleaseAll", _)), + pushChanges + ) + + // based on https://github.com/EECOLOR/sbt-release-custom-steps/blob/master/src/main/scala/org/qirx/sbtrelease/UpdateVersionInFiles.scala + private def updateVersionInReadme: ReleaseStep = { s: State => + val readmeFile = file("README.md") + val readme = IO.read(readmeFile) + + val currentVersionPattern = """"com.softwaremill.sttp" %% "core" % "([\w\.-]+)"""".r + val currentVersionInReadme = currentVersionPattern.findFirstMatchIn(readme).get.group(1) + + val releaseVersion = s.get(versions).get._1 + + s.log.info(s"Replacing $currentVersionInReadme with $releaseVersion in ${readmeFile.name}") + + val newReadme = readme.replaceAll(Pattern.quote(currentVersionInReadme), releaseVersion) + IO.write(readmeFile, newReadme) + + s + } +} diff --git a/project/plugins.sbt b/project/plugins.sbt index 7b64831..e8687f4 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -2,6 +2,8 @@ addSbtPlugin("com.lucidchart" % "sbt-scalafmt" % "1.8") addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.0-RC8") +addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "1.1") + addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.0.0") addSbtPlugin("com.github.gseitz" % "sbt-release" % "1.0.5") \ No newline at end of file -- cgit v1.2.3