Skip to content

Commit ffddae3

Browse files
authored
Merge pull request #43 from strombetta/feature/packages
Change secrets
2 parents 759cd12 + d01fad2 commit ffddae3

1 file changed

Lines changed: 73 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,71 @@ jobs:
113113
echo "PRERELEASE=false" >> "$GITHUB_ENV"
114114
fi
115115
116+
- name: Install signing tools
117+
run: |
118+
sudo apt-get update
119+
sudo apt-get install -y minisign gnupg
120+
121+
- name: Generate SHA256SUMS and signatures
122+
env:
123+
MINISIGN_KEY: ${{ secrets.MINISIGN_KEY }}
124+
MINISIGN_PUB: ${{ secrets.MINISIGN_PUB }}
125+
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
126+
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
127+
run: |
128+
set -euo pipefail
129+
130+
if [ -z "${MINISIGN_KEY:-}" ] || [ -z "${MINISIGN_PUB:-}" ]; then
131+
echo "Missing minisign secrets (MINISIGN_KEY / MINISIGN_PUB)." >&2
132+
exit 1
133+
fi
134+
if [ -z "${GPG_PRIVATE_KEY:-}" ]; then
135+
echo "Missing GPG_PRIVATE_KEY secret." >&2
136+
exit 1
137+
fi
138+
139+
mkdir -p out dist
140+
printf '%s' "$MINISIGN_KEY" | base64 -d > out/minisign.key
141+
printf '%s' "$MINISIGN_PUB" | base64 -d > out/minisign.pub
142+
chmod 600 out/minisign.key
143+
cp out/minisign.pub dist/minisign.pub
144+
145+
export GNUPGHOME
146+
GNUPGHOME="$(mktemp -d)"
147+
trap 'rm -rf "$GNUPGHOME"' EXIT
148+
printf '%s' "$GPG_PRIVATE_KEY" | gpg --batch --import
149+
key_id="$(gpg --list-secret-keys --with-colons | awk -F: '$1=="sec" {print $5; exit}')"
150+
if [ -z "$key_id" ]; then
151+
echo "No GPG secret key imported." >&2
152+
exit 1
153+
fi
154+
155+
mapfile -d '' files < <(find dist -name 'bugleos-toolchain-*.tar.gz' -print0 | sort -z)
156+
if [ "${#files[@]}" -eq 0 ]; then
157+
echo "No toolchain tarballs found under dist/." >&2
158+
exit 1
159+
fi
160+
161+
sha256sum "${files[@]}" > dist/SHA256SUMS
162+
163+
minisign -S -s out/minisign.key -p out/minisign.pub -m dist/SHA256SUMS
164+
if [ -n "${GPG_PASSPHRASE:-}" ]; then
165+
gpg --batch --yes --pinentry-mode loopback --passphrase "$GPG_PASSPHRASE" \
166+
--local-user "$key_id" --armor --detach-sign -o dist/SHA256SUMS.asc dist/SHA256SUMS
167+
else
168+
gpg --batch --yes --local-user "$key_id" --armor --detach-sign -o dist/SHA256SUMS.asc dist/SHA256SUMS
169+
fi
170+
171+
for f in "${files[@]}"; do
172+
minisign -S -s out/minisign.key -p out/minisign.pub -m "$f"
173+
if [ -n "${GPG_PASSPHRASE:-}" ]; then
174+
gpg --batch --yes --pinentry-mode loopback --passphrase "$GPG_PASSPHRASE" \
175+
--local-user "$key_id" --armor --detach-sign -o "$f.asc" "$f"
176+
else
177+
gpg --batch --yes --local-user "$key_id" --armor --detach-sign -o "$f.asc" "$f"
178+
fi
179+
done
180+
116181
- name: Publish GitHub Release
117182
uses: softprops/action-gh-release@v2
118183
with:
@@ -129,3 +194,11 @@ jobs:
129194
files: |
130195
dist/**/bugleos-toolchain-${{ env.VERSION }}-x86_64.tar.gz
131196
dist/**/bugleos-toolchain-${{ env.VERSION }}-aarch64.tar.gz
197+
dist/**/bugleos-toolchain-${{ env.VERSION }}-x86_64.tar.gz.minisig
198+
dist/**/bugleos-toolchain-${{ env.VERSION }}-aarch64.tar.gz.minisig
199+
dist/**/bugleos-toolchain-${{ env.VERSION }}-x86_64.tar.gz.asc
200+
dist/**/bugleos-toolchain-${{ env.VERSION }}-aarch64.tar.gz.asc
201+
dist/SHA256SUMS
202+
dist/SHA256SUMS.minisig
203+
dist/SHA256SUMS.asc
204+
dist/minisign.pub

0 commit comments

Comments
 (0)