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

Support for tag-driven publishing on Travis. #26

Merged
merged 3 commits into from
Dec 4, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
language: scala

env:
global:
- PUBLISH_JDK=openjdk6 # admin/build.sh only publishes when running on this jdk
# Don't commit sensitive files, instead commit a version encrypted with $SECRET,
# this environment variable is encrypted with this repo's private key and stored below:
# (See http://docs.travis-ci.com/user/environment-variables/#Secure-Variables.)
- secure: "KpKvQvUQNsF+o74lndXl+zDGU8+A686ltndldlwDhNiSYF/PJ9RIXembsRh+B4ureo/Aa9UBL7vE6d265DRpir2o6JQ3jcU6e4djfqkvmXuDpBlcd3rJXtKuGYQyE5cm2h3/ZFl+0RmYm+fGSieWBAo+A3uvAVuq8qTu6PY8nMU="

script:
- sbt ++$TRAVIS_SCALA_VERSION clean update compile
- admin/build.sh
scala:
- 2.11.0
jdk:
Expand Down
19 changes: 19 additions & 0 deletions admin/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/bin/bash

# prep environment for publish to sonatype staging if the HEAD commit is tagged

# git on travis does not fetch tags, but we have TRAVIS_TAG
# headTag=$(git describe --exact-match ||:)

if [ "$TRAVIS_JDK_VERSION" == "$PUBLISH_JDK" ] && [[ "$TRAVIS_TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+(-[A-Za-z0-9-]+)? ]]; then
echo "Going to release from tag $TRAVIS_TAG!"
myVer=$(echo $TRAVIS_TAG | sed -e s/^v//)
publishVersion='set every version := "'$myVer'"'
extraTarget="publish-signed"

cat admin/gpg.sbt >> project/plugins.sbt
admin/decrypt.sh sensitive.sbt
(cd admin/ && ./decrypt.sh secring.asc)
fi

sbt ++$TRAVIS_SCALA_VERSION "$publishVersion" clean update compile $extraTarget
2 changes: 2 additions & 0 deletions admin/decrypt.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/bash
openssl aes-256-cbc -pass "pass:$SECRET" -in $1.enc -out $1 -d -a
2 changes: 2 additions & 0 deletions admin/encrypt.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/bash
openssl aes-256-cbc -pass "pass:$SECRET" -in $1 -out $1.enc -a
19 changes: 19 additions & 0 deletions admin/encryptAll.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/bin/bash

# Based on https://gist.github.com/kzap/5819745:

echo "This will encrypt the cleartext sensitive.sbt and admin/secring.asc, while making the encrypted versions available for decryption on Travis."
echo "Update your .travis.yml as directed, and delete the cleartext versions."
echo "Press enter to continue."
read

# 1. create a secret, put it in an environment variable while encrypting files -- UNSET IT AFTER
export SECRET=$(cat /dev/urandom | head -c 10000 | openssl sha1)

# 2. add the "secure: ..." line under the env section -- generate it with `` (install the travis gem first)
travis encrypt SECRET=$SECRET

admin/encrypt.sh admin/secring.asc
admin/encrypt.sh sensitive.sbt

echo "Remember to rm sensitive.sbt admin/secring.asc -- once you do, they cannot be recovered (except on Travis)!"
26 changes: 26 additions & 0 deletions admin/gpg.sbt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@

addSbtPlugin("com.typesafe.sbt" % "sbt-pgp" % "0.8.3") // only added when publishing:

// There's a companion sensitive.sbt, which was created like this:
//
// 1. in an sbt shell that has the sbt-pgp plugin, create pgp key in admin/:
//
// sbt
// set pgpReadOnly := false
// set pgpPublicRing := file("admin/pubring.asc")
// set pgpSecretRing := file("admin/secring.asc")
// pgp-cmd gen-key // use $passPhrase
// Please enter the name associated with the key: $repoName
// Please enter the email associated with the key: scala-internals@googlegroups.com
// Please enter the passphrase for the key: $passphrase
//
// 2. create sensitive.sbt with contents:
//
// pgpPassphrase := Some($passPhrase.toArray)
//
// pgpPublicRing := file("admin/pubring.asc")
//
// pgpSecretRing := file("admin/secring.asc")
//
// credentials += Credentials("Sonatype Nexus Repository Manager", "oss.sonatype.org", $sonaUser, $sonaPass)

18 changes: 18 additions & 0 deletions admin/pubring.asc
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: BCPG v1.49

mQENBFSA2hsBCADRzxWZY/Wtw2QCjFUW2k1+WxQ71p1C1jDN63xr6Vqc/ivC2wVt
Z91vbZj6LlbKGs5GiSTuLXu/Y08ja3qqcnHGA3VqNQg4UkhqKpWMgsF4vT9JEb5c
ZK0Ise57wmeWxbanhs6YwYbrIIFaBIj+pYJRr0JMbbY2kU0k7qQJv+G+e348ArGJ
ZDgrA6U6OOsKW/k3pbExSlwVAFSHTncopWVyY76LaX03x2WWBdlEu9dxCggNkDni
cPIlq/iRfIV4F1STmfHeCYVKcw3UGlGBnpFAlP74smMNvOUeVo1SNmYMHs2a1GbQ
dt/rKZOEq/HcUjKkdXsCUFCbE/Os1ClHv5mfABEBAAG0MHNjYWxhLXBhcnRlc3Qg
PHNjYWxhLWludGVybmFsc0Bnb29nbGVncm91cHMuY29tPokBHAQTAQIABgUCVIDa
GwAKCRAPjZhgjiZfZMTrB/9NtkRpvG05h3YKyQ1JF6gN1v0pC/zlvyTs99ajSJbi
YskBIGXRQ8W4KNN2rH+fm2Zkz7XVbMrMpsNyons1UL+oX3cOo4UUj9Y9+FNAfq2T
mwDYR1idv0Q2mmkIrAb85ZmwfVILX3IJmd5ilYvzt8asULF4woABYsvPsnK4/SCs
3yZzYcmhxdVZmtgJPVnUsy8WmH/E7dMA3+OG/6pQVmFTvRnQL7CR6pyENdwPU9Dn
xeNbO6Emb54YjrG4nqFZCWQ31hkGk3aMmTHutLnDPgMlQPmXkulPc28Ee6kQmkuA
byQml2Jk2FP8g1CHqVRkmXYNz5y5qmcFCCMqQNx3V8+b
=eHVZ
-----END PGP PUBLIC KEY BLOCK-----
40 changes: 40 additions & 0 deletions admin/secring.asc.enc
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
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
CvOfwNiH9P1D6Zsbzl/bKA==
6 changes: 3 additions & 3 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ scalaModuleSettings

name := "scala-partest"

version := "1.0.2-SNAPSHOT"
version := "1.0.3-SNAPSHOT"

scalaVersion := "2.11.0"
scalaVersion := "2.11.4"

scalaXmlVersion := "1.0.1"
scalaXmlVersion := "1.0.3"

scalaCheckVersion := "1.11.3"

Expand Down
2 changes: 1 addition & 1 deletion project/build.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
sbt.version=0.13.1
sbt.version=0.13.7
2 changes: 1 addition & 1 deletion project/plugins.sbt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
addSbtPlugin("org.scala-lang.modules" % "scala-module-plugin" % "1.0.1")
addSbtPlugin("org.scala-lang.modules" % "scala-module-plugin" % "1.0.2")
7 changes: 7 additions & 0 deletions sensitive.sbt.enc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
U2FsdGVkX19E4cL16pmP0y3iQKFZZioB1/HTP5omlUx/WW0L1zvvmdeMYEDCC2rJ
3TQGZUZ1W+MLvJMoe7I0Fhm+zfkJK3GHW4KFEfWGE73+i6ZUqox+UFfXZWnkvjje
mSeWQMomh2n5lhgIek+7bgNdg3g2Tnn5ll91P+FKyjFHFSZ8DAzjRL7qwJehDz0m
vkCrwT0HMF35kRK38HE9g4HgHCx/veXkw4EOoWanD4bSv8JyTomBjBFli4S1N4Sl
8bZdh7pbyDH3or+mHYasWEfGTIIszbqnMLlsvMGG2ETfcny1xosiAE8YUaxaVn5I
Xi7QqM1Gp1Bv4yUwSXbGmqU0RSWCkrtYX7uyQeaa3rRUHXsc0HPIHW3W9e0I7QXB
+r5UF+wId3jhZcVwoNQy7g==