Skip to content

Commit eafa6bf

Browse files
authored
Refactor SSH and GPG key import logic
1 parent d56e618 commit eafa6bf

File tree

1 file changed

+40
-15
lines changed

1 file changed

+40
-15
lines changed

.ci.prepare-ssh-gpg.sh

Lines changed: 40 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,45 @@
11
#!/usr/bin/env bash
22
set -ex
3-
# Import SSH key to access GitHub for versioning
4-
openssl aes-256-cbc -K "${encrypted_96e73e3cb232_key}" -iv "${encrypted_96e73e3cb232_iv}" \
5-
-in id_rsa_dockerfile_image_update.enc -out id_rsa_dockerfile_image_update -d
6-
mkdir -p "${HOME}/.ssh"
7-
mv -f id_rsa_dockerfile_image_update "${HOME}/.ssh/id_rsa"
8-
chmod 600 "${HOME}/.ssh/id_rsa"
9-
echo "github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=" >> "${HOME}/.ssh/known_hosts"
103

11-
# Import code signing keys
12-
openssl aes-256-cbc -K "${encrypted_00fae8efff8c_key}" -iv "${encrypted_00fae8efff8c_iv}" -in codesigning.asc.enc -out codesigning.asc -d
13-
gpg --no-tty --batch --yes --fast-import codesigning.asc
4+
# Decrypt keys if openssl is available (usually in the alpine/openssl container)
5+
if command -v openssl >/dev/null 2>&1; then
6+
# Import SSH key to access GitHub for versioning
7+
if [ ! -f id_rsa_dockerfile_image_update ]; then
8+
openssl aes-256-cbc -K "${encrypted_96e73e3cb232_key}" -iv "${encrypted_96e73e3cb232_iv}" \
9+
-in id_rsa_dockerfile_image_update.enc -out id_rsa_dockerfile_image_update -d
10+
fi
1411

15-
# Allow loopback pinentry in maven-gpg-plugin (ain't nobody need no shared tty)
16-
echo "allow-loopback-pinentry" >> ~/.gnupg/gpg-agent.conf
17-
gpgconf --reload gpg-agent
12+
# Import code signing keys
13+
if [ ! -f codesigning.asc ]; then
14+
openssl aes-256-cbc -K "${encrypted_00fae8efff8c_key}" -iv "${encrypted_00fae8efff8c_iv}" \
15+
-in codesigning.asc.enc -out codesigning.asc -d
16+
fi
17+
fi
1818

19-
# Remove code signing keys (since the releaser plugin requires a clean git workspace)
20-
shred --remove codesigning.asc
19+
# Setup SSH and GPG if tools are available (usually in the maven container)
20+
if command -v gpg >/dev/null 2>&1; then
21+
# Setup SSH
22+
if [ -f id_rsa_dockerfile_image_update ]; then
23+
mkdir -p "${HOME}/.ssh"
24+
mv -f id_rsa_dockerfile_image_update "${HOME}/.ssh/id_rsa"
25+
chmod 600 "${HOME}/.ssh/id_rsa"
26+
echo "github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=" >> "${HOME}/.ssh/known_hosts"
27+
fi
28+
29+
# Setup GPG
30+
if [ -f codesigning.asc ]; then
31+
gpg --no-tty --batch --yes --fast-import codesigning.asc
32+
33+
# Allow loopback pinentry in maven-gpg-plugin (ain't nobody need no shared tty)
34+
mkdir -p ~/.gnupg
35+
echo "allow-loopback-pinentry" >> ~/.gnupg/gpg-agent.conf
36+
gpgconf --reload gpg-agent
37+
38+
# Remove code signing keys (since the releaser plugin requires a clean git workspace)
39+
if command -v shred >/dev/null 2>&1; then
40+
shred --remove codesigning.asc
41+
else
42+
rm -f codesigning.asc
43+
fi
44+
fi
45+
fi

0 commit comments

Comments
 (0)