Skip to content

Commit d727c26

Browse files
lojzatranjenschude
andauthored
fix: CD release process (#1208)
* fix: test release script * fix: test release script * fix: add echo * fix: remove base64 decrypt * fix: remove base64 decrypt * fix: add base64 decrypt * Update setup-signing-key.sh * Update setup-signing-key.sh * fix: update CD release * fix: update CD release * test: test deployment * test: test deployment * test: test deployment * test: test deployment * fix: refactor deployment scripts * fix: refactor deployment scripts --------- Co-authored-by: Jens Schulze <[email protected]>
1 parent f029063 commit d727c26

File tree

3 files changed

+66
-9
lines changed

3 files changed

+66
-9
lines changed

.github/workflows/cd.yml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,19 @@ jobs:
4949
distribution: 'zulu'
5050
- name: status
5151
run: echo Build is tagged. Uploading artifact ${{ steps.vars.outputs.tag }} to maven central.
52+
- run: scripts/setup-signing-key.sh
53+
env:
54+
DECRYPTER: ${{ secrets.DECRYPTER }}
55+
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
56+
PASSPHRASE: ${{ secrets.PASSPHRASE }}
5257
- name: Publish GitHub Pages
5358
run: ./gradlew --info -Dbuild.version="${{ steps.vars.outputs.tag }}" mkdocsPublish
5459
- name: deploy to sonatype and publish to maven central
55-
run: ./gradlew setLibraryVersion -Dbuild.version="${{ steps.vars.outputs.tag }}" publishToSonatype closeAndReleaseSonatypeStagingRepository
60+
run: ./gradlew -Pversion=$REF_NAME setLibraryVersion -Dbuild.version="${{ steps.vars.outputs.tag }}" clean publishToSonatype closeAndReleaseSonatypeStagingRepository
5661
env:
57-
GITHUB_TAG: ${{ steps.vars.outputs.tag }}
58-
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
59-
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
60-
PGP_KEY: ${{ secrets.PGP_KEY }}
61-
PGP_PASSWORD: ${{ secrets.PGP_PASSWORD }}
62+
GITHUB_TAG: ${{ steps.vars.outputs.tag }}
63+
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }}
64+
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }}
6265
- name: Slack notification
6366
if: success() # only when previous step succeeds
6467
env:

gradle-scripts/maven-publish.gradle

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,7 @@ publishing {
4040
}
4141

4242
signing {
43-
def signingKey = System.getenv("PGP_KEY")
44-
def signingPassword = System.getenv("PGP_PASSWORD")
45-
useInMemoryPgpKeys(signingKey, signingPassword)
43+
useGpgCmd()
4644
sign publishing.publications.mavenJava
4745
}
4846

scripts/setup-signing-key.sh

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
#!/bin/bash
2+
3+
set -e
4+
5+
# Decrypt credentials
6+
echo 'Decode decrypter'
7+
echo ${DECRYPTER} | base64 --decode > decrypter.json
8+
echo 'Decode signing key'
9+
echo ${SIGNING_KEY} | base64 --decode > signing_key.enc
10+
echo 'Decode passphrase'
11+
echo ${PASSPHRASE} | base64 --decode > signing_passphrase.enc
12+
13+
gcloud auth activate-service-account --key-file decrypter.json
14+
15+
echo "Decrypt signing secrets"
16+
17+
echo "passphrase"
18+
gcloud kms decrypt \
19+
--project=commercetools-platform \
20+
--location=global \
21+
--keyring=devtooling \
22+
--key=java-sdk-v2 \
23+
--ciphertext-file=signing_passphrase.enc \
24+
--plaintext-file=signing_passphrase.txt
25+
26+
echo "key"
27+
gcloud kms decrypt \
28+
--project=commercetools-platform \
29+
--location=global \
30+
--keyring=devtooling \
31+
--key=java-sdk-v2 \
32+
--ciphertext-file=signing_key.enc \
33+
--plaintext-file=signing_key.asc
34+
35+
36+
# Import the GPG key
37+
set +e
38+
echo "Importing the signing key"
39+
gpg --import --no-tty --batch --yes signing_key.asc
40+
echo " - done"
41+
set -e
42+
43+
# List available GPG keys
44+
gpg -K
45+
46+
KEYNAME=`gpg --with-colons --keyid-format long --list-keys [email protected] | grep fpr | cut -d ':' -f 10`
47+
48+
mkdir -p ~/.gradle
49+
touch ~/.gradle/gradle.properties
50+
51+
echo "signing.gnupg.executable=gpg" >> ~/.gradle/gradle.properties
52+
echo "signing.gnupg.keyName=$KEYNAME" >> ~/.gradle/gradle.properties
53+
echo "signing.gnupg.passphrase=$(<signing_passphrase.txt)" >> ~/.gradle/gradle.properties
54+
55+
rm -rf signing_passphrase.txt signing_passphrase.enc signing_key.enc decrypter.json signing_key.asc
56+

0 commit comments

Comments
 (0)