From b852420a0de299efd6dfe5745e00c3e33d04c14e Mon Sep 17 00:00:00 2001 From: Lukas Rytz Date: Mon, 11 May 2015 20:25:53 +0200 Subject: [PATCH 1/3] Remove current travis publishing infrastructure --- .travis.yml | 19 +++---------------- admin/build.sh | 19 ------------------- admin/decrypt.sh | 2 -- admin/encrypt.sh | 2 -- admin/encryptAll.sh | 19 ------------------- admin/gpg.sbt | 26 -------------------------- admin/pubring.asc | 18 ------------------ admin/secring.asc.enc | 40 ---------------------------------------- sensitive.sbt.enc | 7 ------- 9 files changed, 3 insertions(+), 149 deletions(-) delete mode 100755 admin/build.sh delete mode 100755 admin/decrypt.sh delete mode 100755 admin/encrypt.sh delete mode 100755 admin/encryptAll.sh delete mode 100644 admin/gpg.sbt delete mode 100644 admin/pubring.asc delete mode 100644 admin/secring.asc.enc delete mode 100644 sensitive.sbt.enc diff --git a/.travis.yml b/.travis.yml index a51b9b8..1641596 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,23 +1,10 @@ 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 clean update test publishLocal -script: - - admin/build.sh -scala: - - 2.11.0 jdk: - openjdk6 - openjdk7 -notifications: - email: - - adriaan.moors@typesafe.com -# if we get weird timeouts, see https://github.com/spray/spray/pull/233 -# 'set concurrentRestrictions in Global += Tags.limit(Tags.Test, 1)' +notifications: + email: adriaan.moors@typesafe.com diff --git a/admin/build.sh b/admin/build.sh deleted file mode 100755 index af77da9..0000000 --- a/admin/build.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/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 \ No newline at end of file diff --git a/admin/decrypt.sh b/admin/decrypt.sh deleted file mode 100755 index 3c3c602..0000000 --- a/admin/decrypt.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -openssl aes-256-cbc -pass "pass:$SECRET" -in $1.enc -out $1 -d -a \ No newline at end of file diff --git a/admin/encrypt.sh b/admin/encrypt.sh deleted file mode 100755 index 4bf6c93..0000000 --- a/admin/encrypt.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -openssl aes-256-cbc -pass "pass:$SECRET" -in $1 -out $1.enc -a \ No newline at end of file diff --git a/admin/encryptAll.sh b/admin/encryptAll.sh deleted file mode 100755 index de7016b..0000000 --- a/admin/encryptAll.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/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)!" \ No newline at end of file diff --git a/admin/gpg.sbt b/admin/gpg.sbt deleted file mode 100644 index 01157e6..0000000 --- a/admin/gpg.sbt +++ /dev/null @@ -1,26 +0,0 @@ - -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) - diff --git a/admin/pubring.asc b/admin/pubring.asc deleted file mode 100644 index 6e1ff9e..0000000 --- a/admin/pubring.asc +++ /dev/null @@ -1,18 +0,0 @@ ------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----- diff --git a/admin/secring.asc.enc b/admin/secring.asc.enc deleted file mode 100644 index 19c6840..0000000 --- a/admin/secring.asc.enc +++ /dev/null @@ -1,40 +0,0 @@ -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 -CvOfwNiH9P1D6Zsbzl/bKA== diff --git a/sensitive.sbt.enc b/sensitive.sbt.enc deleted file mode 100644 index fefe996..0000000 --- a/sensitive.sbt.enc +++ /dev/null @@ -1,7 +0,0 @@ -U2FsdGVkX19E4cL16pmP0y3iQKFZZioB1/HTP5omlUx/WW0L1zvvmdeMYEDCC2rJ -3TQGZUZ1W+MLvJMoe7I0Fhm+zfkJK3GHW4KFEfWGE73+i6ZUqox+UFfXZWnkvjje -mSeWQMomh2n5lhgIek+7bgNdg3g2Tnn5ll91P+FKyjFHFSZ8DAzjRL7qwJehDz0m -vkCrwT0HMF35kRK38HE9g4HgHCx/veXkw4EOoWanD4bSv8JyTomBjBFli4S1N4Sl -8bZdh7pbyDH3or+mHYasWEfGTIIszbqnMLlsvMGG2ETfcny1xosiAE8YUaxaVn5I -Xi7QqM1Gp1Bv4yUwSXbGmqU0RSWCkrtYX7uyQeaa3rRUHXsc0HPIHW3W9e0I7QXB -+r5UF+wId3jhZcVwoNQy7g== From b2770edb6d38d2988a2c5aeb0697c04e5882f0eb Mon Sep 17 00:00:00 2001 From: Lukas Rytz Date: Mon, 11 May 2015 20:33:47 +0200 Subject: [PATCH 2/3] Tag-driven publishing, v2 Scripts taken from here: https://github.com/scala/scala-java8-compat/commit/4a6cfc97cd95227b86650410e1b632e5ff79335b New keys generated as described in the README. --- .travis.yml | 12 +++++++- admin/README.md | 61 +++++++++++++++++++++++++++++++++++++ admin/build.sh | 25 +++++++++++++++ admin/encryptEnvVars.sh | 11 +++++++ admin/genKeyPair.sh | 41 +++++++++++++++++++++++++ admin/gpg.sbt | 2 ++ admin/publish-settings.sbt | 9 ++++++ admin/pubring.asc | 18 +++++++++++ admin/secring.asc.enc | Bin 0 -> 1872 bytes project/build.properties | 2 +- 10 files changed, 179 insertions(+), 2 deletions(-) create mode 100644 admin/README.md create mode 100755 admin/build.sh create mode 100755 admin/encryptEnvVars.sh create mode 100755 admin/genKeyPair.sh create mode 100644 admin/gpg.sbt create mode 100644 admin/publish-settings.sbt create mode 100644 admin/pubring.asc create mode 100644 admin/secring.asc.enc diff --git a/.travis.yml b/.travis.yml index 1641596..d0b3015 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,16 @@ language: scala -script: sbt clean update test publishLocal +env: + global: + - PUBLISH_JDK=openjdk6 + # PGP_PASSPHRASE + - secure: "XLe/gZXrGwJlKCgAUoEUIHwoh8js0IdlIazwUd5KKssZMQkPg4VfC5LLPl8iXCYIRe2JrgmD56b7eseiZF9kMxa1Rsz8fSMY0v3A0qwxRjbsxVQ2NqEvdq+TNOAhjo/OmPnipvTcDdAyq68Ca4nTSBtfBpy5t6X3Z4UIl8CWLdw=" + # SONA_USER + - secure: "Me+3gxk89qOq18J+N/N+VoxnG8bSTrgyGovutLRFQnSNkJQXoVawJul9BmCZVrha7y/WCwsbSFFP9vS3VnKjPne5RnQM4eNjPOUw08uBtoj6QD/jpmRjt+cEWMaD9tB9OvJLkaKRFyTy8Un2tVO4ia9GEdojy2YbqjrJjGqwW9E=" + # SONA_PASS + - secure: "cjzluj1FGCr2D/3TgnV/7yOELOcqB8QG6Du95tb4xPp39+ulrIfTvzQ8HA1oC8+y1mmN68h5RxN/gcC+9GdihDpk+bXz2Ij7XWmp+tiHU8E6VNS+rd+JO7Ojf90q6jsmx00Y8uhZ/RZtjK+p8SUTC0a5KhqesmxSThHFqPNC5CM=" + +script: admin/build.sh jdk: - openjdk6 diff --git a/admin/README.md b/admin/README.md new file mode 100644 index 0000000..55ae9c8 --- /dev/null +++ b/admin/README.md @@ -0,0 +1,61 @@ +## Tag Driven Releasing + +Copied from https://github.com/scala/scala-java8-compat/commit/4a6cfc97cd95227b86650410e1b632e5ff79335b. + +### Background Reading + + - http://docs.travis-ci.com/user/environment-variables/ + - http://docs.travis-ci.com/user/encryption-keys/ + - http://docs.travis-ci.com/user/encrypting-files/ + +### Initial setup for the repository + +To configure tag driven releases from Travis CI. + + 1. Generate a key pair for this repository with `./admin/genKeyPair.sh`. + Edit `.travis.yml` and `admin/build.sh` as prompted. + 2. Publish the public key to https://pgp.mit.edu + 3. Store other secrets as encrypted environment variables with `admin/encryptEnvVars.sh`. + Edit `.travis.yml` as prompted. + 4. Edit `.travis.yml` to use `./admin/build.sh` as the build script, + and edit that script to use the tasks required for this project. + 5. Edit `.travis.yml` to select which JDK will be used for publishing. + +It is important to add comments in .travis.yml to identify the name +of each environment variable encoded in a `:secure` section. + +After all of these steps, your .travis.yml should contain config of the +form: + + language: scala + env: + global: + - PUBLISH_JDK=openjdk6 + # PGP_PASSPHRASE + - secure: "XXXXXX" + # SONA_USER + - secure: "XXXXXX" + # SONA_PASS + - secure: "XXXXXX" + script: admin/build.sh + +If Sonatype credentials change in the future, step 3 can be repeated +without generating a new key. + +Be sure to use SBT 0.13.7 or higher to avoid [#1430](https://github.com/sbt/sbt/issues/1430)! + +### Testing + + 1. Follow the release process below to create a dummy release (e.g. 0.1.0-TEST1). + Confirm that the release was staged to Sonatype but do not release it to Maven + central. Instead, drop the staging repository. + +### Performing a release + + 1. Create a GitHub "Release" (with a corresponding tag) via the GitHub + web interface. + 2. Travis CI will schedule a build for this release. Review the build logs. + 3. Log into https://oss.sonatype.org/ and identify the staging repository. + 4. Sanity check its contents + 5. Release staging repository to Maven and send out release announcement. + diff --git a/admin/build.sh b/admin/build.sh new file mode 100755 index 0000000..6b59a2e --- /dev/null +++ b/admin/build.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +set -e + +# 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 + cp admin/publish-settings.sbt . + + # Copied from the output of genKeyPair.sh + K=$encrypted_abe708fa1965_key + IV=$encrypted_abe708fa1965_iv + + openssl aes-256-cbc -K $K -iv $IV -in admin/secring.asc.enc -out admin/secring.asc -d +fi + +sbt "$publishVersion" clean update test publishLocal $extraTarget diff --git a/admin/encryptEnvVars.sh b/admin/encryptEnvVars.sh new file mode 100755 index 0000000..b625667 --- /dev/null +++ b/admin/encryptEnvVars.sh @@ -0,0 +1,11 @@ +#!/bin/bash +# +# Encrypt sonatype credentials so that they can be +# decrypted in trusted builds on Travis CI. +# +set -e + +read -s -p 'SONA_USER: ' SONA_USER +travis encrypt SONA_USER="$SONA_USER" +read -s -p 'SONA_PASS: ' SONA_PASS +travis encrypt SONA_PASS="$SONA_PASS" diff --git a/admin/genKeyPair.sh b/admin/genKeyPair.sh new file mode 100755 index 0000000..17db3f3 --- /dev/null +++ b/admin/genKeyPair.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# +# Generates a key pair for this repository to sign artifacts. +# Encrypt the private key and its passphrase in trusted builds +# on Travis CI. +# +set -e + +# Based on https://gist.github.com/kzap/5819745: +function promptDelete() { + if [[ -f "$1" ]]; then + echo About to delete $1, Enter for okay / CTRL-C to cancel + read + rm "$1" + fi +} +for f in admin/secring.asc.enc admin/secring.asc admin/pubring.asc; do promptDelete "$f"; done + +echo Generating key pair. Please enter 1. repo name 2. scala-internals@googlegroups.com, 3. a new passphrase +echo Be careful when using special characters in the passphrase, see http://docs.travis-ci.com/user/encryption-keys/#Note-on-escaping-certain-symbols +cp admin/gpg.sbt project +sbt 'set pgpReadOnly := false' \ + 'set pgpPublicRing := file("admin/pubring.asc")' \ + 'set pgpSecretRing := file("admin/secring.asc")' \ + 'pgp-cmd gen-key' +rm project/gpg.sbt + +echo ============================================================================================ +echo Encrypting admin/secring.asc. Update K and IV variables in admin/build.sh accordingly. +echo ============================================================================================ +travis encrypt-file admin/secring.asc +rm admin/secring.asc +mv secring.asc.enc admin + +echo ============================================================================================ +echo Encrypting environment variables. Add each to a line in .travis.yml. Include a comment +echo with the name of the corresponding variable +echo ============================================================================================ +read -s -p 'PGP_PASSPHRASE: ' PGP_PASSPHRASE +travis encrypt PGP_PASSPHRASE="$PGP_PASSPHRASE" + diff --git a/admin/gpg.sbt b/admin/gpg.sbt new file mode 100644 index 0000000..68ae464 --- /dev/null +++ b/admin/gpg.sbt @@ -0,0 +1,2 @@ + +addSbtPlugin("com.typesafe.sbt" % "sbt-pgp" % "0.8.3") // only added when publishing, see build.sh diff --git a/admin/publish-settings.sbt b/admin/publish-settings.sbt new file mode 100644 index 0000000..f763ea0 --- /dev/null +++ b/admin/publish-settings.sbt @@ -0,0 +1,9 @@ +def env(key: String) = Option(System.getenv(key)).getOrElse("") + +pgpPassphrase := Some(env("PGP_PASSPHRASE").toArray) + +pgpPublicRing := file("admin/pubring.asc") + +pgpSecretRing := file("admin/secring.asc") + +credentials += Credentials("Sonatype Nexus Repository Manager", "oss.sonatype.org", env("SONA_USER"), env("SONA_PASS")) diff --git a/admin/pubring.asc b/admin/pubring.asc new file mode 100644 index 0000000..82d8fd9 --- /dev/null +++ b/admin/pubring.asc @@ -0,0 +1,18 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- +Version: BCPG v1.49 + +mQENBFVQ9UcBCADBQeOLe/1vOwX0BasjQK6nAsSaDS/n6DZqauPERkUGv7bQJLL7 +GvvobhYlzTT3W+aJL4cggi51U8ZhYqF+ImtZIclziZDyjMgwDaDfWMEW238wp7zW +xkQyDk3o9Ms8/kwMaXR589OC2wZ+fGjI27ANzCUVFYaVDS0+B9TtBrUyfrvwY2PN +qcRtcMCJXDbCc7iL5OVgTPjUYvpCRhmSnbOnieulfu8AJ6lw5VPN3u+Q8CgkVpdu +yq7MscvOwAhS37FEIHblAsA7J37oBqfYC4AvF5FqqX8vg1tCy+j3k55WWHbDzOM1 +fPCPn/V3Kg5IxMpF/O3GPwwjrZv1aHU5NpZ/ABEBAAG0MHNjYWxhLXBhcnRlc3Qg +PHNjYWxhLWludGVybmFsc0Bnb29nbGVncm91cHMuY29tPokBGwQTAQIABgUCVVD1 +RwAKCRDhRXkp6LZkqLT3B/YyfwkFzb3KlZxYcMn8hOVfaO+pBu+M+ec5Qx6myNog +a1esJPVLvTJuYDll0avufVpcXyae3tPHmKr+q838NKdpnG4K0t7WkZ6aKOR54nPZ +QfwOMugGRBNKXsgYnY6jswQxcYdI7+U/+lYa9+aFTHrIgEa52slnbymUroDj7HxK +lAbuAKenjPTPXlt6HFcRhJniPf7EQJjyQ7GMgCdGeVAdqlU189FFfo4VMAGybK9f +N7ssjUxXnKJEr7jhDhWloqYMdH60PQYP5okU+BzQh18f4jsnwmIdFjaDHOYgrJ2i +4NzbqGUxXT/jIGSyYzo7Bm1ps7NKF08i70ThwYJdpgM= +=RJHt +-----END PGP PUBLIC KEY BLOCK----- diff --git a/admin/secring.asc.enc b/admin/secring.asc.enc new file mode 100644 index 0000000000000000000000000000000000000000..fdabef39d1d3204765a6a6714f4303b0307dd727 GIT binary patch literal 1872 zcmV-W2e0^4JR1?(YEvrHP}svB$4Z1ApeO=WSV=x81idk5JgUVR=X_BRQTmXT1Lwg(rE2SnsqQvkYXJxTe_?dp%qUfAR5+wP3alGCctx@JTWR|-92m^zF5ht6^5Vp z$Iq6HfY>3>t0P}Vk~^&{6eVYiV64LSGiB#~BZ z(3d*6$Q0TWhEsPq_k~E&*a2nGCY~9yw+J6q2sbrEdOaLQrPnBnOxGFxgY|mgYC?hU6MbU9vTt$*A#g=gm;MC~=9E;H)=wq@qLB z1XZLEs83MVgax!R;D4=C;dxnSyKRK^Z+Ngp^WX`Kr!10Ph|tgzh~vv9ReLvCml|hr zxHX1VE`@J_g=rwkeFf9ru%UmE+)|_?4a$x2I7^S@Lfuk_PsKWL=4ofb8aOAdr@_~i zaaY7!H)pOp;SpczkEnkIuLVa=ZB@zO665H3nS|wZxqJoNvc>axxncen=Hyh?=F$pc z15N(#Ue0ouVV&)=9+C7e7}0uIK_cMuG4B-G{h~w-qNAoR;|9SJwg82>VXJ1E9S_|> z6(k2Hx^=t_dM*JkT6@prx86Bewxy+g-NfQtW@ycR1~V+BY7gafsC(dkGJipM!;*5i zYWv3IlfoJul+1OzUsuXG7nbg>W`Xm5YbAHqUg{~xeSd5BZwOPAYFoE;M2Y?wr@q0l zfH*r4>-zroR#%aq4i*!;g-@d^{UC{u&S;j_lBMqKo@{o@ z?Gz!gtq;dbbxRVfPWB+Xz8yRfc};ecAXocU7(xVcC#w9Z!xE-I+SB0kUkDNS=qx!i zf5D)!(f*^Ek5*>*Xl+Wps%aifEgoeGoS-q8p?JanJNQLP>wW& z7$yv2mNtL)42ylqR=A%^K&T};UB7!KI*f)h^ODASu&5UpiLLH+lM&5;nXIa_-v5E? zdSU4Pd%K0l{L>>7NCGolaGIBpn)J+}c^*+WMke&G(`w%ZCktfZGod@92)!(W%aZA* znpf(*ePOu>Zx(4Io+#fZOfXpBa1vy9H2#;+eYdyac5BW@%@nwU?^AKiIBbQ`HxB%A zB6gZBqjIcKpZJCrFW$PM(@^Yeql5;3or36DN2Y0k_TnMEXfE@s2v)N+bc$tX;wl|x zuPPDbr#t>#tRu5wkB509k+*mR5%#PhRP0liC1cMK@pg*@(Mufhsi@xhqBkGv9N=ZK zA^{lL)2lp71uC4be2evf-8JCIU%=3;@>H%!wm0nbH7?9Ltdqg#G!ZP%;(jxQ@pZ^I zh?KvU=k?>uD^@)?HBw0uY*tWxQrj;!4P$sAuLJ48^l8vMN z=UL-7S1|{}t#vakN=Ja?A{Fs{4QZ9pU#}=AP8EE8=dl`B{?Dy@-exY+c5ZzbsfN`K z9!9$zON{|9G>p9uP-IllY$Vz|y>*3408R_ow{$4$#Lh*&8L_bRJ2dMEOAfhjEVe7& zw;j%dR{wX{?1R{!u5cn3H3VpvdE$Hajq>|JE9L^Q^9n5E$(BQE0Ytzn&$s)wR%Gl@ zkZ2Yg*6U>SU5fRpE$q9lUISO@kdZ zE49b9d);OzB?;1Q!WMl+_cSr8m<4xS1Y+cf78gx!4Faj8}oGy zzcM~H&@cgYCBO6#0=>V%--*Y}=+O9CS1)~%`(yG;2aUV~A1tQ6mXJXbz#q<88w=xC z_s};VVBsC5CUi$CkC^#47Avbgv_OrnZ*CO`He%~Hn5u?Ny8~ge7LS(ghURuNc_wM} zP@S&oU@-UaxXaZS=2+(5G&Yeo@VS9Megr-GlLs%uho=Dcr)DHWW)IE194SD($ThRc zPWvgK?6mwIF89^8A)-b04|loSNKU!^acL3xVhs@Wip1Mnt3jV^UR?WNF2%byW|+hk z6PI1N3$l1=NN`}2L6kgKgVNN~Ci2NFac`PPbF zFZ%V Date: Mon, 11 May 2015 20:37:09 +0200 Subject: [PATCH 3/3] cross-build with 2.11 and 2.12 --- admin/build.sh | 4 ++-- build.sbt | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/admin/build.sh b/admin/build.sh index 6b59a2e..965ab6c 100755 --- a/admin/build.sh +++ b/admin/build.sh @@ -11,7 +11,7 @@ if [ "$TRAVIS_JDK_VERSION" == "$PUBLISH_JDK" ] && [[ "$TRAVIS_TAG" =~ ^v[0-9]+\. echo "Going to release from tag $TRAVIS_TAG!" myVer=$(echo $TRAVIS_TAG | sed -e s/^v//) publishVersion='set every version := "'$myVer'"' - extraTarget="publish-signed" + extraTarget="+publish-signed" cat admin/gpg.sbt >> project/plugins.sbt cp admin/publish-settings.sbt . @@ -22,4 +22,4 @@ if [ "$TRAVIS_JDK_VERSION" == "$PUBLISH_JDK" ] && [[ "$TRAVIS_TAG" =~ ^v[0-9]+\. openssl aes-256-cbc -K $K -iv $IV -in admin/secring.asc.enc -out admin/secring.asc -d fi -sbt "$publishVersion" clean update test publishLocal $extraTarget +sbt "$publishVersion" clean update +test +publishLocal $extraTarget diff --git a/build.sbt b/build.sbt index d91328b..56a2944 100644 --- a/build.sbt +++ b/build.sbt @@ -6,11 +6,13 @@ name := "scala-partest" version := "1.0.8-SNAPSHOT" -scalaVersion := "2.11.6" +scalaVersion := crossScalaVersions.value.head -scalaXmlVersion := "1.0.3" +crossScalaVersions := Seq("2.11.6", "2.12.0-M1") -scalaCheckVersion := "1.11.3" +scalaXmlVersion := "1.0.4" + +scalaCheckVersion := "1.11.6" // TODO: enable "-Xfatal-warnings" for nightlies, // off by default because we don't want to break scala/scala pr validation due to deprecation