Skip to content
This repository was archived by the owner on Sep 8, 2022. It is now read-only.

Commit da8637e

Browse files
committed
Merge pull request #26 from adriaanm/autopublish
Support for tag-driven publishing on Travis.
2 parents 026f5f8 + ff721db commit da8637e

File tree

12 files changed

+148
-6
lines changed

12 files changed

+148
-6
lines changed

.travis.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
language: scala
2+
3+
env:
4+
global:
5+
- PUBLISH_JDK=openjdk6 # admin/build.sh only publishes when running on this jdk
6+
# Don't commit sensitive files, instead commit a version encrypted with $SECRET,
7+
# this environment variable is encrypted with this repo's private key and stored below:
8+
# (See http://docs.travis-ci.com/user/environment-variables/#Secure-Variables.)
9+
- secure: "KpKvQvUQNsF+o74lndXl+zDGU8+A686ltndldlwDhNiSYF/PJ9RIXembsRh+B4ureo/Aa9UBL7vE6d265DRpir2o6JQ3jcU6e4djfqkvmXuDpBlcd3rJXtKuGYQyE5cm2h3/ZFl+0RmYm+fGSieWBAo+A3uvAVuq8qTu6PY8nMU="
10+
211
script:
3-
- sbt ++$TRAVIS_SCALA_VERSION clean update compile
12+
- admin/build.sh
413
scala:
514
- 2.11.0
615
jdk:

admin/build.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/bin/bash
2+
3+
# prep environment for publish to sonatype staging if the HEAD commit is tagged
4+
5+
# git on travis does not fetch tags, but we have TRAVIS_TAG
6+
# headTag=$(git describe --exact-match ||:)
7+
8+
if [ "$TRAVIS_JDK_VERSION" == "$PUBLISH_JDK" ] && [[ "$TRAVIS_TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+(-[A-Za-z0-9-]+)? ]]; then
9+
echo "Going to release from tag $TRAVIS_TAG!"
10+
myVer=$(echo $TRAVIS_TAG | sed -e s/^v//)
11+
publishVersion='set every version := "'$myVer'"'
12+
extraTarget="publish-signed"
13+
14+
cat admin/gpg.sbt >> project/plugins.sbt
15+
admin/decrypt.sh sensitive.sbt
16+
(cd admin/ && ./decrypt.sh secring.asc)
17+
fi
18+
19+
sbt ++$TRAVIS_SCALA_VERSION "$publishVersion" clean update compile $extraTarget

admin/decrypt.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/bash
2+
openssl aes-256-cbc -pass "pass:$SECRET" -in $1.enc -out $1 -d -a

admin/encrypt.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/bash
2+
openssl aes-256-cbc -pass "pass:$SECRET" -in $1 -out $1.enc -a

admin/encryptAll.sh

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/bin/bash
2+
3+
# Based on https://gist.github.com/kzap/5819745:
4+
5+
echo "This will encrypt the cleartext sensitive.sbt and admin/secring.asc, while making the encrypted versions available for decryption on Travis."
6+
echo "Update your .travis.yml as directed, and delete the cleartext versions."
7+
echo "Press enter to continue."
8+
read
9+
10+
# 1. create a secret, put it in an environment variable while encrypting files -- UNSET IT AFTER
11+
export SECRET=$(cat /dev/urandom | head -c 10000 | openssl sha1)
12+
13+
# 2. add the "secure: ..." line under the env section -- generate it with `` (install the travis gem first)
14+
travis encrypt SECRET=$SECRET
15+
16+
admin/encrypt.sh admin/secring.asc
17+
admin/encrypt.sh sensitive.sbt
18+
19+
echo "Remember to rm sensitive.sbt admin/secring.asc -- once you do, they cannot be recovered (except on Travis)!"

admin/gpg.sbt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
2+
addSbtPlugin("com.typesafe.sbt" % "sbt-pgp" % "0.8.3") // only added when publishing:
3+
4+
// There's a companion sensitive.sbt, which was created like this:
5+
//
6+
// 1. in an sbt shell that has the sbt-pgp plugin, create pgp key in admin/:
7+
//
8+
// sbt
9+
// set pgpReadOnly := false
10+
// set pgpPublicRing := file("admin/pubring.asc")
11+
// set pgpSecretRing := file("admin/secring.asc")
12+
// pgp-cmd gen-key // use $passPhrase
13+
// Please enter the name associated with the key: $repoName
14+
// Please enter the email associated with the key: scala-internals@googlegroups.com
15+
// Please enter the passphrase for the key: $passphrase
16+
//
17+
// 2. create sensitive.sbt with contents:
18+
//
19+
// pgpPassphrase := Some($passPhrase.toArray)
20+
//
21+
// pgpPublicRing := file("admin/pubring.asc")
22+
//
23+
// pgpSecretRing := file("admin/secring.asc")
24+
//
25+
// credentials += Credentials("Sonatype Nexus Repository Manager", "oss.sonatype.org", $sonaUser, $sonaPass)
26+

admin/pubring.asc

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
-----BEGIN PGP PUBLIC KEY BLOCK-----
2+
Version: BCPG v1.49
3+
4+
mQENBFSA2hsBCADRzxWZY/Wtw2QCjFUW2k1+WxQ71p1C1jDN63xr6Vqc/ivC2wVt
5+
Z91vbZj6LlbKGs5GiSTuLXu/Y08ja3qqcnHGA3VqNQg4UkhqKpWMgsF4vT9JEb5c
6+
ZK0Ise57wmeWxbanhs6YwYbrIIFaBIj+pYJRr0JMbbY2kU0k7qQJv+G+e348ArGJ
7+
ZDgrA6U6OOsKW/k3pbExSlwVAFSHTncopWVyY76LaX03x2WWBdlEu9dxCggNkDni
8+
cPIlq/iRfIV4F1STmfHeCYVKcw3UGlGBnpFAlP74smMNvOUeVo1SNmYMHs2a1GbQ
9+
dt/rKZOEq/HcUjKkdXsCUFCbE/Os1ClHv5mfABEBAAG0MHNjYWxhLXBhcnRlc3Qg
10+
PHNjYWxhLWludGVybmFsc0Bnb29nbGVncm91cHMuY29tPokBHAQTAQIABgUCVIDa
11+
GwAKCRAPjZhgjiZfZMTrB/9NtkRpvG05h3YKyQ1JF6gN1v0pC/zlvyTs99ajSJbi
12+
YskBIGXRQ8W4KNN2rH+fm2Zkz7XVbMrMpsNyons1UL+oX3cOo4UUj9Y9+FNAfq2T
13+
mwDYR1idv0Q2mmkIrAb85ZmwfVILX3IJmd5ilYvzt8asULF4woABYsvPsnK4/SCs
14+
3yZzYcmhxdVZmtgJPVnUsy8WmH/E7dMA3+OG/6pQVmFTvRnQL7CR6pyENdwPU9Dn
15+
xeNbO6Emb54YjrG4nqFZCWQ31hkGk3aMmTHutLnDPgMlQPmXkulPc28Ee6kQmkuA
16+
byQml2Jk2FP8g1CHqVRkmXYNz5y5qmcFCCMqQNx3V8+b
17+
=eHVZ
18+
-----END PGP PUBLIC KEY BLOCK-----

admin/secring.asc.enc

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
U2FsdGVkX1++XSOUjBUgj9skAW9Ki7woEJpm1w7ImG6LwXqE9tFJvkaCoZDJxTt+
2+
iLeTh46nHz/WNyzP1xEv/Ln9ZqYAe2d3Y76b+8xIBlL/ty0BRLrhWwFF3seJQsFc
3+
LVH4ZvG31sbGE93DTVT2f+foAQ1E1ePwY6WjkMihwYWynIMFBfVzcc/b0vaBgKk6
4+
nchF4larQVgCXrJD16FD++de3cwyusdsY6CK/6UGvEzFeer2TuiaDpuSVQYncNX8
5+
fRZ9Fi3yeiFhGfylEwMH4eQMsA/36Vb2EH6RXmInEkZgWo9kiU35yyh8Xfu+s2TE
6+
NOEpvFSLJhjMk8YUxlZAnM3guYsI/aPMQGLiwQ2GOcwXGgLmXuCwFf9TZC6cesLN
7+
ZG93gHQ0G3zvMfDEnYT0HVLTvQM54qhDuixwUV9LDTtpu16FqYiCGhWuEcV77pVR
8+
nJ6kEgw4/CG6OgelnJSq2BKXR+CR2Yybzl8wzhAWL0CwQXl55QARFHSAuEiKwU+h
9+
oYlPVxkhel3+QGeWJ4tRObnTKjEjoTCTksOxizuNkRgxg7fUz5i9djFt0Mf8EbgF
10+
hoiD8MFeo/oNfi7/XBB4i8mIqWAaOwbUiuvxmXJRBjI37fK8U8z71W9162ippX0p
11+
nOGdNkQr0dj4ZAaCnNtoBa8O63y5QRFyuS6qUuyJXoI6GHXB9b/AsOB/GnKXdzhN
12+
5Zwn5JnLNWOh0z9M5xy9IoR9Re07vjFNnXQpHuLsZvosUjvSicQcr/b5j7d/lPrj
13+
k9/v3QItZxhT/C38MHIjCg+CRKusgl6fua9CWKvdybieGGplYsg1bs5P/tFFcs2D
14+
fYBfYN1GO4UE4ZSyQhVZBz74UzB9oUxReE0IfzUM880NhSMi/6nfZkcR4O0PAdq+
15+
/9AdO7ZXQ0BKJ1ivfbURNLSsxzJxw2RZHUX9X/WCgYukY+vqwaN5a114d6B/8ys5
16+
dqp5dwLWm1h09B26UzvABDqq38mGJKMvIQCycx5n5EKLuKHoMZovIGjuyJcTtLhf
17+
uk0dJwOOCX3CPoEfDgAmWTThzNnJ8YMqoY+wQMbkTwRVDvMhDdmgdeFQFI4fncbi
18+
/XtP7zB8/FrABWwSH5IVH5jANoykl7Hztu/+Tc1lC4wkYRpX7RTx9y1cjuChhdHi
19+
iKc58OsbqWkl9Bfni14FVCiceURo+6r9naKZ6sNoE0w4FalIDkxnK39Ni6LojOGz
20+
7oAoPM2QUtU8kkmT1qppOh/bcHJOaSVtJg6aAm8X7OSzNe3i9vRi+oKpCNIaBsgu
21+
EnGV4BGrKtVqtM7QV0dvHQ9PFrPym5UDgVkv9AW14FfcwzDaE1PiPALlrN91HK/U
22+
BOO+zUCv94l1WaUdR8Qw6vb8E/jFkTlHwh52zCzaTACXN+m9hwiDCM2tANdoHGRJ
23+
oY+KcPwGSP/jnAiUIHAyxLNMQ4IVUI79sZ64m4RQdOrJFA8e2U8bFXFBPACVejG1
24+
478ZippknjcWUaJ0afTIXjuoW5TNTJsMD1H+0rh1pJqtjhnTFutAyGM7ea+ttr1x
25+
HEUiCVtDp7PoR/KUCGkFjBlNjyKKoTQx87I67AV6xXuMDIVxbqDJj1z3+5inTdUH
26+
NYtFtcaUcemHLGWUoju+q6iNKGX7/vSS6nCT+oKPMGmSZkntXLcqN/qK4gmdHkdx
27+
ItRG3t6xARWXQPIaKtGTRdteilNS5rp0OYKhcGsr1HyuvMFmBzR4JHX1JNzzPaOC
28+
M2LRwNESbrnf9vnrXhmWHQ2bi/KmnxQp3vHSl2bAIGw2z81OoQyDfwYBrPWnCc1O
29+
2Z3DPv7vO6xjMM7wmSsRyV/fhAvySksDKKWZZwAI2mMeTUQY6cNlgON85h3oumei
30+
XGIFLlp1smJeqg/SHKbo9HD1PpTYgn9JDkO5s15ML17tEBHeKPOEx+itLgBs+EyJ
31+
NmhxNIvRDjGQExNG5/fg9kUMEmjtn3odiUsE3jWinLZJlvHavugizNM00QT+O+AK
32+
nMbfvjXZbESC4J8hv+dyLmBUvtKtwSUmPI4Xgc9nwR35UgZ+ukBf7tnazwTVYOJC
33+
XLsUYAzvGl76A1g0LUTq+O/ukvbKYg3IL+2+w+oSOKdOdQV4dnu/2EXiJs/gEAlS
34+
QMBBXUGn2BIbtxyr8hENaYIcQBKrLe2oupMfwA0VwSDU7xsz0Z89Lw7NWkmYM6sb
35+
1R4GPQahSympnyFX/AlMMcPT20r4mdLS5hKYQwH3dF1nJBff5s9CKtM4JDyvCL8S
36+
a5n3RL5qcgE4dfB6iEE4V9mZpZuR5uKimiCk47lJZ1n5jOp7FqH79NHTat1m2JbX
37+
m6/Qiy8iqX3T8IXVrP3wmVxxZDUqCahoHfiPmmXpOIlQKPG+gAnovxGM1WhLyOz/
38+
l7g6ljTl46MKfA7rIcsMKinrZ6SmkP6kKoN/gtbIOYYYMqPefMO8k1CMyMyvajIh
39+
xiT9vgUdTYyranG88Zo8alxDpoBMKtQLHKvjbUuFRvimcL7Y08DacupHARqi2ioc
40+
CvOfwNiH9P1D6Zsbzl/bKA==

build.sbt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ scalaModuleSettings
44

55
name := "scala-partest"
66

7-
version := "1.0.2-SNAPSHOT"
7+
version := "1.0.3-SNAPSHOT"
88

9-
scalaVersion := "2.11.0"
9+
scalaVersion := "2.11.4"
1010

11-
scalaXmlVersion := "1.0.1"
11+
scalaXmlVersion := "1.0.3"
1212

1313
scalaCheckVersion := "1.11.3"
1414

project/build.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
sbt.version=0.13.1
1+
sbt.version=0.13.7

project/plugins.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
addSbtPlugin("org.scala-lang.modules" % "scala-module-plugin" % "1.0.1")
1+
addSbtPlugin("org.scala-lang.modules" % "scala-module-plugin" % "1.0.2")

sensitive.sbt.enc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
U2FsdGVkX19E4cL16pmP0y3iQKFZZioB1/HTP5omlUx/WW0L1zvvmdeMYEDCC2rJ
2+
3TQGZUZ1W+MLvJMoe7I0Fhm+zfkJK3GHW4KFEfWGE73+i6ZUqox+UFfXZWnkvjje
3+
mSeWQMomh2n5lhgIek+7bgNdg3g2Tnn5ll91P+FKyjFHFSZ8DAzjRL7qwJehDz0m
4+
vkCrwT0HMF35kRK38HE9g4HgHCx/veXkw4EOoWanD4bSv8JyTomBjBFli4S1N4Sl
5+
8bZdh7pbyDH3or+mHYasWEfGTIIszbqnMLlsvMGG2ETfcny1xosiAE8YUaxaVn5I
6+
Xi7QqM1Gp1Bv4yUwSXbGmqU0RSWCkrtYX7uyQeaa3rRUHXsc0HPIHW3W9e0I7QXB
7+
+r5UF+wId3jhZcVwoNQy7g==

0 commit comments

Comments
 (0)