@@ -34,26 +34,42 @@ jobs:
3434
3535 - name : sign shasum
3636 env :
37- GPG_KEY : ${{ env.GPG_KEY }}
38- GPG_KEY_ID : ${{ env.GPG_KEY_ID }}
3937 GPG_PASSPHRASE : ${{ env.GPG_PASSPHRASE }}
38+ GPG_KEY_ID : ${{ env.GPG_KEY_ID }}
39+ GPG_KEY : ${{ env.GPG_KEY }}
4040 run : |
41+ cleanup() {
42+ # clear history just in case
43+ history -c
44+ }
45+ trap cleanup EXIT TERM
46+
47+ # sanitize variables
48+ GPG_PASSPHRASE="$(echo "${GPG_PASSPHRASE}" | xargs)"
49+ GPG_KEY_ID="$(echo "${GPG_KEY_ID}" | xargs)"
50+ GPG_KEY="$(echo -n "${GPG_KEY}" | awk '/-----BEGIN PGP PRIVATE KEY BLOCK-----/,/-----END PGP PRIVATE KEY BLOCK-----/')"
51+
52+ if [ -z "${GPG_PASSPHRASE}" ]; then echo "gpg passphrase empty"; exit 1; fi
53+ if [ -z "${GPG_KEY_ID}" ]; then echo "key id empty"; exit 1; fi
54+ if [ -z "${GPG_KEY}" ]; then echo "key contents empty"; exit 1; fi
55+
4156 echo "Importing gpg key"
42- echo -n '${{ env. GPG_KEY }}' | gpg --import --batch > /dev/null
57+ echo "${ GPG_KEY}" | gpg --import --batch > /dev/null || { echo "Failed to import GPG key"; exit 1; }
4358
44- echo "signing SHASUM file"
45- VERSION_NO_V="$(echo ${{ github.ref_name }} | tr -d 'v')"
59+ echo "Signing SHASUM file"
60+ VERSION_NO_V="$(echo " ${{ github.ref_name }}" | tr -d 'v')"
4661 SHASUM_FILE="dist/artifacts/${{ github.ref_name }}/terraform-provider-rancher2_${VERSION_NO_V}_SHA256SUMS"
47- echo '${{ env.GPG_PASSPHRASE }}' | gpg --detach-sig --pinentry-mode loopback --passphrase-fd 0 --local-user "${{ env.GPG_KEY_ID }}" --output "${SHASUM_FILE}.sig" --sign "${SHASUM_FILE}"
4862
49- echo "Validating signature..."
63+ gpg --detach-sig \
64+ --pinentry-mode loopback \
65+ --passphrase "${GPG_PASSPHRASE}" \
66+ --local-user "${GPG_KEY_ID}" \
67+ --output "${SHASUM_FILE}.sig" \
68+ --sign "${SHASUM_FILE}" || { echo "Failed to sign checksum."; exit 1; }
5069
51- if ! gpg --verify "${SHASUM_FILE}.sig" "${SHASUM_FILE}"; then
52- echo "Signature is valid..."
53- else
54- echo "Signature verification failed!"
55- exit 1
56- fi
70+ echo "Validating signature..."
71+ gpg --verify "${SHASUM_FILE}.sig" "${SHASUM_FILE}" || { echo "Signature verification failed!"; exit 1; }
72+ echo "Signature is valid..."
5773 - name : GH release
5874 env :
5975 GH_TOKEN : ${{ github.token }}
0 commit comments