-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathbuild.sbt
88 lines (68 loc) · 2.34 KB
/
build.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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import com.typesafe.sbt.SbtGit.GitKeys._
import sbtrelease._
import sbtrelease.ReleaseStateTransformations.{setReleaseVersion => _, _}
organization := "io.finstack"
bintrayOrganization := Some("finstack")
name := "sbt-elm"
scalacOptions += "-feature"
addSbtPlugin("com.typesafe.sbt" % "sbt-web" % "1.4.4")
licenses += ("MIT", url("http://opensource.org/licenses/MIT"))
pomExtra :=
<scm>
<url>git@github.com:choucrifahed/sbt-elm.git</url>
<connection>scm:git:git@github.com:choucrifahed/sbt-elm.git</connection>
</scm>
<developers>
<developer>
<id>choucrifahed</id>
<name>Choucri FAHED</name>
<url>https://github.com/choucrifahed</url>
</developer>
</developers>
enablePlugins(SbtPlugin)
scriptedLaunchOpts ++= Seq("-Dplugin.version=" + version.value)
// Deduce version from Git tags
enablePlugins(BuildInfoPlugin, GitVersioning, GitBranchPrompt)
showCurrentGitBranch
git.useGitDescribe := true
val VersionRegex = "v([0-9]+.[0-9]+.[0-9]+)-?(.*)?".r
git.gitTagToVersionNumber := {
case VersionRegex(v,"") => Some(v)
case VersionRegex(v,"SNAPSHOT") => Some(s"$v-SNAPSHOT")
case VersionRegex(v,s) => Some(s"$v-$s-SNAPSHOT")
case _ => None
}
git.baseVersion := "0.0.0"
git.gitDescribedVersion := gitReader.value.withGit(_.describedVersion).flatMap(v =>
Option(v).map(_.drop(1)).orElse(formattedShaVersion.value).orElse(Some(git.baseVersion.value))
)
// Settings for SBT Release
def setVersionOnly(selectVersion: sbtrelease.Versions => String): ReleaseStep = { st: State =>
val vs = st.get(ReleaseKeys.versions).getOrElse(sys.error(
"No versions are set! Was this release part executed before inquireVersions?"))
val selected = selectVersion(vs)
st.log.info("Setting version to '%s'." format selected)
val useGlobal = Project.extract(st).get(releaseUseGlobalVersion)
reapply(Seq(
if (useGlobal) version in ThisBuild := selected
else version := selected
), st)
}
lazy val setReleaseVersion: ReleaseStep = setVersionOnly(_._1)
releaseVersion := { (ver: String) =>
sbtrelease
.Version(ver)
.map(_.withoutQualifier)
.map(_.bumpBugfix.string)
.getOrElse(versionFormatError)
}
// To release run sbt release
releaseProcess := Seq(
checkSnapshotDependencies,
inquireVersions,
setReleaseVersion,
runTest,
tagRelease,
ReleaseStep(releaseStepTask(publish)),
pushChanges
)