forked from plokhotnyuk/jsoniter-scala
-
Notifications
You must be signed in to change notification settings - Fork 0
/
release.sbt
43 lines (38 loc) · 1.29 KB
/
release.sbt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import scala.sys.process._
import sbtrelease.ReleaseStateTransformations._
lazy val ensureJDK8: ReleaseStep = { st: State =>
val javaVersion = System.getProperty("java.specification.version")
if (javaVersion != "1.8") throw new IllegalStateException("Cancelling release, please use JDK 1.8")
st
}
lazy val updateVersionInReadme: ReleaseStep = { st: State =>
val extracted = Project.extract(st)
val newVersion = extracted.get(version)
val oldVersion = "git describe --abbrev=0".!!.trim.replaceAll("^v", "")
val readme = "README.md"
val oldContent = IO.read(file(readme))
val newContent = oldContent.replaceAll('"' + oldVersion + '"', '"' + newVersion + '"')
.replaceAll('-' + oldVersion + '-', '-' + newVersion + '-')
IO.write(file(readme), newContent)
s"git add $readme" !! st.log
st
}
releaseCrossBuild := false
releaseProcess := Seq[ReleaseStep](
ensureJDK8,
checkSnapshotDependencies,
inquireVersions,
runClean,
releaseStepCommandAndRemaining("+test"),
setReleaseVersion,
releaseStepCommandAndRemaining("+mimaReportBinaryIssues"),
updateVersionInReadme,
commitReleaseVersion,
tagRelease,
releaseStepCommandAndRemaining("+publishSigned"),
releaseStepCommand("sonatypeBundleRelease"),
setNextVersion,
commitNextVersion,
pushChanges
)
releaseVcsSign := true