aboutsummaryrefslogtreecommitdiff
path: root/project
diff options
context:
space:
mode:
authoradamw <adam@warski.org>2017-07-25 12:41:18 +0200
committeradamw <adam@warski.org>2017-07-25 12:41:18 +0200
commit249193e8a8fd649bcb495384bc5237774bc75bc4 (patch)
tree77563bb48fde05bcf15b97b773cd5ee6cc422b22 /project
parentbe2f4a50a4efad3ed1a20fa0f5eb23e8b73881bf (diff)
downloadsttp-249193e8a8fd649bcb495384bc5237774bc75bc4.tar.gz
sttp-249193e8a8fd649bcb495384bc5237774bc75bc4.tar.bz2
sttp-249193e8a8fd649bcb495384bc5237774bc75bc4.zip
Release process
Diffstat (limited to 'project')
-rw-r--r--project/SttpRelease.scala42
-rw-r--r--project/plugins.sbt2
2 files changed, 44 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
+ }
+}
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