aboutsummaryrefslogtreecommitdiff
path: root/admin/genKeyPair.sh
diff options
context:
space:
mode:
Diffstat (limited to 'admin/genKeyPair.sh')
-rwxr-xr-xadmin/genKeyPair.sh41
1 files changed, 41 insertions, 0 deletions
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"
+