diff options
author | adamw <adam@warski.org> | 2017-07-25 12:41:18 +0200 |
---|---|---|
committer | adamw <adam@warski.org> | 2017-07-25 12:41:18 +0200 |
commit | 249193e8a8fd649bcb495384bc5237774bc75bc4 (patch) | |
tree | 77563bb48fde05bcf15b97b773cd5ee6cc422b22 /project/SttpRelease.scala | |
parent | be2f4a50a4efad3ed1a20fa0f5eb23e8b73881bf (diff) | |
download | sttp-249193e8a8fd649bcb495384bc5237774bc75bc4.tar.gz sttp-249193e8a8fd649bcb495384bc5237774bc75bc4.tar.bz2 sttp-249193e8a8fd649bcb495384bc5237774bc75bc4.zip |
Release process
Diffstat (limited to 'project/SttpRelease.scala')
-rw-r--r-- | project/SttpRelease.scala | 42 |
1 files changed, 42 insertions, 0 deletions
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 + } +} |