Skip to content

Commit b90f8c6

Browse files
Sign produced artifacts directly with gpg WIP
1 parent 09d067f commit b90f8c6

File tree

1 file changed

+24
-33
lines changed

1 file changed

+24
-33
lines changed

.github/workflows/reusable-release-workflow.yml

Lines changed: 24 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -140,22 +140,6 @@ jobs:
140140
echo "Pre-release? ${{ inputs.prerelease }}"
141141
echo "FULL_VERSION=${{ inputs.base_version }}"
142142
echo "FULL_VERSION=${{ inputs.base_version }}" >> $GITHUB_ENV
143-
- name: Import GPG key
144-
if: inputs.gpg_sign_release
145-
env:
146-
GNUPGHOME: "${{ github.workspace }}/.gnupg"
147-
uses: crazy-max/ghaction-import-gpg@v6
148-
with:
149-
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
150-
passphrase: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}
151-
- name: "Export SIGNING_KEY (key ID) used by the Debian package build target"
152-
if: inputs.gpg_sign_release
153-
run: |
154-
echo "SIGNING_KEY=${{ secrets.GPG_SIGNING_KEY_ID }}" >> $GITHUB_ENV
155-
- name: "Print public GPG keys in the keychain"
156-
if: inputs.gpg_sign_release
157-
run: |
158-
gpg --list-public-keys
159143
- name: Clone rabbitmq/rabbitmq-server
160144
uses: actions/checkout@v4
161145
with:
@@ -169,20 +153,13 @@ jobs:
169153
path: ./rabbitmq-server/PACKAGES
170154
- name: Build generic binary package with signing
171155
if: inputs.gpg_sign_release
172-
env:
173-
SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY_ID }}
174156
run: |
175157
cd rabbitmq-server
176158
ls -lha ./PACKAGES
177159
gmake package-generic-unix TARBALL_SUFFIX=generic-unix \
178160
SOURCE_DIST_FILE=./PACKAGES/rabbitmq-server-${{ env.FULL_VERSION }}.tar.xz \
179161
PROJECT_VERSION=${{ env.FULL_VERSION }}
180162
ls -lha ./PACKAGES
181-
for file in ./PACKAGES/*; do
182-
echo "Will sign $file with key ${{ env.SIGNING_KEY }}..."
183-
gpg --default-key "${{ env.SIGNING_KEY }}" --detach-sign --armor "$file"
184-
done
185-
ls -lha ./PACKAGES
186163
- name: Build generic binary package without signing
187164
if: inputs.gpg_sign_release == false
188165
run: |
@@ -265,11 +242,6 @@ jobs:
265242
SIGNING_KEY=${{ secrets.GPG_SIGNING_KEY_ID }}
266243
cd ..
267244
ls -lha PACKAGES/
268-
for file in PACKAGES/*; do
269-
echo "Will sign $file with key ${{ env.SIGNING_KEY }}..."
270-
gpg --default-key "${{ env.SIGNING_KEY }}" --detach-sign --armor "$file"
271-
done
272-
ls -lha PACKAGES/
273245
- name: Build Debian package without GPG signing
274246
if: inputs.gpg_sign_release == false
275247
run: |
@@ -360,11 +332,6 @@ jobs:
360332
SIGNING_KEY="${{ secrets.GPG_SIGNING_KEY_ID }}"
361333
cd ..
362334
ls -lha PACKAGES/
363-
for file in PACKAGES/*; do
364-
echo "Will sign $file with key ${{ env.SIGNING_KEY }}..."
365-
gpg --default-key "${{ env.SIGNING_KEY }}" --detach-sign --armor "$file"
366-
done
367-
ls -lha PACKAGES/
368335
- name: Build RPM package without GPG signing
369336
if: inputs.gpg_sign_release == false
370337
run: |
@@ -539,6 +506,20 @@ jobs:
539506
echo "Pre-release? ${{ inputs.prerelease }}"
540507
echo "FULL_VERSION=${{ inputs.base_version }}"
541508
echo "FULL_VERSION=${{ inputs.base_version }}" >> $GITHUB_ENV
509+
- name: Import GPG key
510+
if: inputs.gpg_sign_release
511+
uses: crazy-max/ghaction-import-gpg@v6
512+
with:
513+
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
514+
passphrase: ${{ secrets.GPG_PRIVATE_KEY_PASSPHRASE }}
515+
- name: "Export SIGNING_KEY (key ID) used by the Debian package build target"
516+
if: inputs.gpg_sign_release
517+
run: |
518+
echo "SIGNING_KEY=${{ secrets.GPG_SIGNING_KEY_ID }}" >> $GITHUB_ENV
519+
- name: "Print public GPG keys in the keychain"
520+
if: inputs.gpg_sign_release
521+
run: |
522+
gpg --list-public-keys
542523
- name: Fetch source tarball
543524
uses: actions/download-artifact@v4
544525
with:
@@ -566,6 +547,16 @@ jobs:
566547
path: ./artifacts
567548
- name: List collected artifacts
568549
run: ls -lha ./artifacts
550+
- name: Sign artifacts directly with GPG
551+
env:
552+
SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY_ID }}
553+
run: |
554+
ls -lha ./artifacts
555+
for file in ./artifacts/*; do
556+
echo "Will sign $file with key ${{ env.SIGNING_KEY }}..."
557+
gpg --default-key "${{ env.SIGNING_KEY }}" --detach-sign --armor "$file"
558+
done
559+
ls -lha ./artifacts
569560
- name: Create a GitHub release with a pre-computed version
570561
id: create_gh_release
571562
if: ${{ !(inputs.prerelease_kind == 'alpha') }}

0 commit comments

Comments
 (0)