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
|
import ammonite.ops.{%%, pwd}
val isMasterCommit = {
sys.env.get("TRAVIS_PULL_REQUEST") == Some("false") &&
(sys.env.get("TRAVIS_BRANCH") == Some("master") || sys.env("TRAVIS_TAG") != "")
}
def gitHead =
sys.env.get("TRAVIS_COMMIT").getOrElse(
%%('git, "rev-parse", "HEAD")(pwd).out.string.trim()
)
def publishVersion = {
val tag =
try Option(
%%('git, 'describe, "--exact-match", "--tags", "--always", gitHead)(pwd).out.string.trim()
)
catch{case e => None}
val dirtySuffix = %%('git, 'diff)(pwd).out.string.trim() match{
case "" => ""
case s => "-DIRTY" + Integer.toHexString(s.hashCode)
}
tag match{
case Some(t) => (t, t)
case None =>
val latestTaggedVersion = %%('git, 'describe, "--abbrev=0", "--always", "--tags")(pwd).out.trim
val commitsSinceLastTag =
%%('git, "rev-list", gitHead, "--not", latestTaggedVersion, "--count")(pwd).out.trim.toInt
(latestTaggedVersion, s"$latestTaggedVersion-$commitsSinceLastTag-${gitHead.take(6)}$dirtySuffix")
}
}
|