summaryrefslogtreecommitdiff
path: root/ci
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-08-13 01:22:04 +0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-08-13 01:22:04 +0800
commit3dadfbdf338af0e72eefada7bbcb997b62a3798e (patch)
tree8b6e9730f20f8b8ab233bb5e02c631b3830a4922 /ci
parent974dcbe09830785f202f54959ae5397e9084f7a0 (diff)
downloadcask-3dadfbdf338af0e72eefada7bbcb997b62a3798e.tar.gz
cask-3dadfbdf338af0e72eefada7bbcb997b62a3798e.tar.bz2
cask-3dadfbdf338af0e72eefada7bbcb997b62a3798e.zip
cleanup root dir
Diffstat (limited to 'ci')
-rw-r--r--ci/upload.sc52
-rw-r--r--ci/version.sc37
2 files changed, 89 insertions, 0 deletions
diff --git a/ci/upload.sc b/ci/upload.sc
new file mode 100644
index 0000000..6c47295
--- /dev/null
+++ b/ci/upload.sc
@@ -0,0 +1,52 @@
+#!/usr/bin/env amm
+import ammonite.ops._
+import scalaj.http._
+
+@main
+def shorten(longUrl: String) = {
+ println("shorten longUrl " + longUrl)
+ val shortUrl = Http("https://git.io")
+ .postForm(Seq("url" -> longUrl))
+ .asString
+ .headers("Location")
+ .head
+ println("shorten shortUrl " + shortUrl)
+ shortUrl
+}
+@main
+def apply(uploadedFile: Path,
+ tagName: String,
+ uploadName: String,
+ authKey: String): String = {
+ val body = Http("https://api.github.com/repos/lihaoyi/cask/releases/tags/" + tagName)
+ .header("Authorization", "token " + authKey)
+ .asString.body
+
+ val parsed = ujson.read(body)
+
+ println(body)
+
+ val snapshotReleaseId = parsed("id").num.toInt
+
+
+ val uploadUrl =
+ s"https://uploads.github.com/repos/lihaoyi/cask/releases/" +
+ s"$snapshotReleaseId/assets?name=$uploadName"
+
+ val res = Http(uploadUrl)
+ .header("Content-Type", "application/octet-stream")
+ .header("Authorization", "token " + authKey)
+ .timeout(connTimeoutMs = 5000, readTimeoutMs = 60000)
+ .postData(read.bytes! uploadedFile)
+ .asString
+
+ println(res.body)
+ val longUrl = ujson.read(res.body)("browser_download_url").str.toString
+
+ println("Long Url " + longUrl)
+
+ val shortUrl = shorten(longUrl)
+
+ println("Short Url " + shortUrl)
+ shortUrl
+}
diff --git a/ci/version.sc b/ci/version.sc
new file mode 100644
index 0000000..4e73530
--- /dev/null
+++ b/ci/version.sc
@@ -0,0 +1,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")
+ }
+}