Skip to content

Commit a986e22

Browse files
Merge pull request #4 from mateusz-bajorek/master
generate gpg keys on the fly
2 parents 8f82f92 + 7460e9f commit a986e22

File tree

4 files changed

+65
-7
lines changed

4 files changed

+65
-7
lines changed

.travis.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@ jdk:
1111
install:
1212
- mvn --settings .travis/mvnsettings.xml install -DskipTests=true -Dgpg.skip -Dmaven.javadoc.skip=true -B -V
1313

14-
before_install:
15-
- if [ ! -z "$GPG_SECRET_KEYS" ]; then echo $GPG_SECRET_KEYS | base64 --decode | $GPG_EXECUTABLE --import; fi
16-
- if [ ! -z "$GPG_OWNERTRUST" ]; then echo $GPG_OWNERTRUST | base64 --decode | $GPG_EXECUTABLE --import-ownertrust; fi
17-
1814
deploy:
1915
-
2016
provider: script

.travis/deploy.sh

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,24 @@
11
#!/usr/bin/env bash
2+
set -e
3+
24
if [ ! -z "$TRAVIS_TAG" ]
35
then
46
echo "on a tag -> set pom.xml <version> to $TRAVIS_TAG"
5-
mvn --settings .travis/mvnsettings.xml org.codehaus.mojo:versions-maven-plugin:2.3:set -DnewVersion=$TRAVIS_TAG 1>/dev/null 2>/dev/null
7+
mvn --settings .travis/mvnsettings.xml org.codehaus.mojo:versions-maven-plugin:2.3:set -DnewVersion=$TRAVIS_TAG
68
else
79
echo "not on a tag -> keep snapshot version in pom.xml"
810
fi
911

10-
mvn clean deploy --settings .travis/mvnsettings.xml -DskipTests=true -B -U
12+
if [ ! -z "$TRAVIS" -a -f "$HOME/.gnupg" ]; then
13+
shred -v ~/.gnupg/*
14+
rm -rf ~/.gnupg
15+
fi
16+
17+
source .travis/gpg.sh
18+
19+
mvn clean deploy --settings .travis/mvnsettings.xml -DskipTests=true --batch-mode --update-snapshots
20+
21+
if [ ! -z "$TRAVIS" ]; then
22+
shred -v ~/.gnupg/*
23+
rm -rf ~/.gnupg
24+
fi

.travis/gpg.sh

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
# create a random passphrase
6+
export GPG_PASSPHRASE=$(echo "$RANDOM$(date)" | md5sum | cut -d\ -f1)
7+
8+
# configuration to generate gpg keys
9+
cat >gen-key-script <<EOF
10+
%echo Generating a basic OpenPGP key
11+
Key-Type: RSA
12+
Key-Length: 4096
13+
Subkey-Type: 1
14+
Subkey-Length: 4096
15+
Name-Real: CurrencyFair
16+
Name-Email: [email protected]
17+
Expire-Date: 0y
18+
Passphrase: ${GPG_PASSPHRASE}
19+
%commit
20+
%echo done
21+
EOF
22+
23+
# create a local keypair with given configuration
24+
gpg --batch --gen-key gen-key-script
25+
26+
27+
# export created GPG key
28+
#
29+
# example output
30+
# sec 4096R/EDD32E8B 2016-09-08 [verfällt: 2018-09-08]
31+
# uid Lars K.W. Gohlke <[email protected]>
32+
# ssb 4096R/CC1613B2 2016-09-08
33+
# ssb 4096R/55B7CAA2 2016-09-08
34+
export GPG_KEYNAME=$(gpg -K | grep ^sec | cut -d/ -f2 | cut -d\ -f1 | head -n1)
35+
36+
# cleanup local configuration
37+
shred gen-key-script
38+
39+
# publish the gpg key
40+
# (use keyserver.ubuntu.com as travis request keys from this server,
41+
# we avoid synchronization issues, while releasing)
42+
gpg --keyserver keyserver.ubuntu.com --send-keys ${GPG_KEYNAME}
43+
44+
# wait for the key beeing accessible
45+
while(true); do
46+
date
47+
gpg --keyserver keyserver.ubuntu.com --recv-keys ${GPG_KEYNAME} && break || sleep 30
48+
done

.travis/mvnsettings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<activeByDefault>true</activeByDefault>
1919
</activation>
2020
<properties>
21-
<gpg.executable>${env.GPG_EXECUTABLE}</gpg.executable>
21+
<gpg.executable>gpg</gpg.executable>
2222
<gpg.passphrase>${env.GPG_PASSPHRASE}</gpg.passphrase>
2323
</properties>
2424
</profile>

0 commit comments

Comments
 (0)