Skip to content

Support tag driven publishing #100

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Dec 18, 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
14 changes: 11 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
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: "YO/7YiWEirzz0EAy7oVNmAKroj4qCLZNMkPS+xW/VgeGjuEV+Nk1S7pwxF0o2OggSxIQ+a0lWSrOPQqSXMjOstDIzzGeYfuAt0+0fupXtDDge0mXpCCMadrvYzff1/5XYX0dJ+pjJmz6IgF1hliPJHIuddhhdqPxdHWTHAKm9ME="

script:
- sbt ++$TRAVIS_SCALA_VERSION clean test publishLocal
- admin/build.sh
scala:
- 2.10.3
- 2.11.0-M6
- 2.10.4
jdk:
- openjdk6
- openjdk7
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// | sed -e 's/_[0-9]*\.[0-9]*//')
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 test $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: [email protected]
// 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

mQENBFSScxABCACj8nAMNdPBgCihD2b+ngYhQaIOmhPEG0Z394T1Qg8EawWhaWXH
50A3NaA5jc1+UJSQ0xyzB/95xCvTCCgWgo2q3L+hIQKoIif+7MfMCrw7CsZSuGFg
Jv46saoBvLBoeiSCI7cFYrQNh+gfTypgGtFu/BBjeIpl6RKQ1gyUdPSb0Nh/2hk9
7ZdApoJ4PhLnEAB5ZA8YnakBicBMF8GRGEwBgA/Mw/ADGqGA9rYxcl/BT65dEbrV
onDDZUc1NCcMoHnpnzLzLnrYH0QK1GbE+UZ9eesQUts7ICTO/+YCpAYxHAqdCynF
mMHY86yXanF1AK8blGxeIagiLY1kJ9C/iUr1ABEBAAG0KGFzeW5jIDxzY2FsYS1p
bnRlcm5hbHNAZ29vZ2xlZ3JvdXBzLmNvbT6JARwEEwECAAYFAlSScxAACgkQhxTM
1mIV232fBAf/dbVxSfLptv7Y/y/v08LO3T+5eAhLDLWfVhS7sJUNWPBM2hxsSEw0
9Wb1X15v8rv2nrxOmcOxbYiWxe2lVrxj8/J7GT8x/eVFQ4cQ7wAC6GhHNvXCTxEU
TnJAmJPPhlAeubK7b5UT3v3SpY/TM7QoE/i2PBb5VzZcc8cbqpanMODnJqQiIy4R
P89XX8TkskWnFIdir0L8TXGmp4UUBXyRc9KZwR9aXmu5f8U8p7t/DEIAZxqEv8Zf
Rud2i+JvFjY2pUj7uZZyeIlqQthegsF+/3M70pgLS26Fz0u7xEHOspzpsdsBAILB
/GrxK4BP32iLo+pgZBcLX/XEN0+scv1SJw==
=9Yrd
-----END PGP PUBLIC KEY BLOCK-----
39 changes: 39 additions & 0 deletions admin/secring.asc.enc
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
U2FsdGVkX1//i9RN+UboroXMoSax0duQzcOHgxIv95SA5BUYs5iIQeGL4RgD6mN9
8CUA+P56ubkeP53n/ZdV3vr4KEis1wIummf/YT1jgyhntNCAWYI/Csrw/YI5rVOs
TgIp1eYQlIO2+xAjOxud+R20dATXWmn/u/onwPxZJraG4WsvWFQ6caXktVfzLag9
u9hgLyjnXzDvagyco6GvpLBkkAxiiPKu4/vNNAwxwiYj7p+6lr724e2KTDWqAsTd
2z+oKOJsnwY4EnvyunS4/uRnXluIE8eAMxGpeLUurhWrQZ6yx6s3tShnzSL8rdf9
hNxZQWvcYNPDBNrKMXNK2z9Y6dgV9IQE32CdozoMWl59bdNwt9exm429mp3HZkwM
NV7Y/PugVqO0F71d8i98UMnnOtYJ10Ozv8L24xCqP5M6fD7kOXIzikYBjk/2JdA4
1xhMaBv3Ig0tu1qUrdL9nNAwjGeDgw32QPIjcf5AFzIEEOf1r7I+Im7irNGY/Iqa
/WnUvoLEuUedzxaWIatBcPWZMG2Y2UbPR4oAy8FMdA5LvTdWCfghR25tL8tYUMx4
OIEqZ2Gp+xWJz70gQOycTfazdxP40rmbAcOmHF7BvOfs6AXHlOyKsan71CUhOTUC
J5lu0FLyVZwUp+fVovy57GvTMCka0+Tw0XVJqn+n7nXyjWUyXRG176kqkbAL7yXs
IjlYsUmeRqDexyAlKyeDiLf85LlyesadR+fknpJ4zZLjcgjd8XvI6P+srh7yXa7a
hCzGZhDM50qB098flwW5LzJaQaNpEe230lXwjzGwwdWDlpEJf/1J7Iin9CvxuRrz
0WTnQUB6kDArIJqyYFtZhSYMxRbWWDns0A69Da/rO48VGUC0J+WjXORk7Kk65O5f
6QzHYVSWFEYQkLPYDRQFwdwT9A/mh/2buAsDFO5ZEq4enf9/ntuJbVgRLm5AaNOg
SeqvZJOPU5dTSM0dlMKcEi8ePH9fNuZlX3vKS4H4giBvYQZ8b5t0AQqcZo757m58
mwkh8HgPaz3oukrUJP0O3cmeHE4+N9Q66cbd35W2u5vM0q/OQ13UiAZNULI+dZUs
BR0e46OnW1GuVIcxKQfGhLSNB/oaPERgPwm9+UYnYCm5gF92gPcvCqTd4VvHQXcq
jD/HXOuHXsq/OeqCswasmgL1MPlmaudvS2CH9j7IgTQABEuqt3rFfqCaWB1c63Aa
pgS9jvuqq6bAoFzOdBBfn/ozTR8j4oGnoiHJte30TI8L/78mANdVxutrgBkAn8Gq
RtZX8jfZTe7FWu+4fwC8BRTDB3QFkc6hEs4BkC66JeniLA/xNiTy+Ef6OVft/BF8
SJ+iivR+pZoCK85pgXmHM2iW6bpiS+kf1DsFuJ1PGViXpXdINhChpPikh4qpSKOr
W4OxDDcLFaLL8zn1M/ry3PPF8id6PwSWxtfzF6Ki5rd45hGjLtCbmjRNwQQ+5MrQ
DvNFlZbnf+Wj7bLK3uq4UdcxFHClHTKWPXw4BPXXXD/xZlInzGRQC2Y9mU7Meks7
VkhM5/MfeuDEJZotgo7AdwNF1u0HcsEcPk8oz8dL5TZnix83h5rWZ8+60EWu+OO8
usjXMKmosRZdYMjsFjJyPR5x2nMthTlu7EhG4URFhij2aggbPSEFhAjcpxSxPihH
OBA8a0o9DO6cnSFtkJNafsce9zrzmO17I/hirsG86TdXVXdZXzj6D2kWQEcdGfoN
mG6bBtPwuFFBM/i5QaWNr1QlsiuoHdbif7ik1JS5OP6u2HNWLDtr5h/N+mYYBR6S
VcSEH3QTV9zVk7oap4b0bOAkFYt4OAmykvRJBXVVN2VaoHwfDaehKO8cErlnDEVL
DqkW5Hy2cTr5XSKu7aZOkXgz043DaMRxBXjzFY1awMDrmYu1PTCmTzc1Z/8jXUay
CcU57sWROyf1tImIxXWmXZC3QiJs4mgaOK7ZQDTMaG8GJpHQAqaf+MX65idv2WvQ
oxoMjCwtV5i0D3kNVdlN4ls+bPygh8V6JPEg2nyTWzakGCywDtV6dX0uQupbuYat
l7KR52TgYY8h7NHDcFQknTQ0bzL3DuZEm51dqLc91JdgirPmKBP1xLlSKPIBsHYu
FXpwxeiPAvcsJ8bObxq/sG5LxQTOXwS/oip+ZJIRKHvIFSq4Hth0oJp16BhNfzqv
fuDRgmtgbqONkuNcgDq9tUMcsjYjfNXWeIOipbISE4xF8CsUPM29WYjcPj/x7N0p
ClbXxzev8lUJ2Kw6mTLK7C4SszxjYPrSVnl732+GFu6T7NdYWuokV2KCOIgI+fRK
fMmMQgPS+P8KSdZAWlpcMZYbHJN3ek+Ku6mTanN/9bnnvuT2ou5KKoOJFJhilGLX
CKjPBHFYMnS84rg5ZjxArchRGUzfi7FCx5MCyUvSHyZ3eBOLePZk2UFXgfxbCWYV
kTd0y/GJp4GjH08nVug5eXeP9mSE1sEDseIpnx3lnf1MSTdfUFjve64rvND/iKah
4 changes: 0 additions & 4 deletions build.sh

This file was deleted.

7 changes: 7 additions & 0 deletions sensitive.sbt.enc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
U2FsdGVkX189LDn5TWFrVGQjBYsdWBa4oV4S4qUeOxpLo7rPzNMYCINEbDVScYhK
2PyloA5GcNY9MYMNUymxpdqPczGSbguTdhMGV0Y9AlKYDFUJkAquNGGmX0inhvaO
sC0Nq3YlQlYbpAWS3JpbX1Yh5+0JyeTdwK3zxiOkBLoDHN58NPlnDjQUoIjveHao
Qo8Y3h/YFhmLMk+abN5SzmotrrSR7Xn8Jr11h9TTTU7z/diqhX0uLV0OWO4Ydp/m
63PiuBb6bgI6KkRSz7dbDeBzTMBGITy+UmymAwdBY/fQOZhFOtzEFiM/OZAA/Mv/
iM0/XkQ9j5CC9sJerR3tJu6rgdqbEiHqi2vjz2Z2ytSY3jOSJnlGRUsJtGik8gAW
u2LRzgcTcYfEN4rMT0sLi9Omtjpzy76Ys0KZ8UdblPM=