Skip to content

Commit c0ec804

Browse files
authored
ci: add manual SHA256 checksum workflow for release artifacts (#2277)
1 parent 0632bff commit c0ec804

1 file changed

Lines changed: 58 additions & 0 deletions

File tree

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
name: Create Release Checksums
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
release_tag:
7+
description: 'Release tag (e.g., v0.96.6)'
8+
required: true
9+
type: string
10+
11+
permissions:
12+
contents: write
13+
14+
jobs:
15+
checksums:
16+
runs-on: ubuntu-latest
17+
steps:
18+
- name: Validate release tag
19+
env:
20+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
21+
run: |
22+
gh release view "${{ github.event.inputs.release_tag }}" \
23+
--repo ${{ github.repository }} \
24+
--json tagName > /dev/null
25+
26+
- name: Download all release assets
27+
env:
28+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
29+
run: |
30+
mkdir -p release_assets
31+
gh release download "${{ github.event.inputs.release_tag }}" \
32+
--repo ${{ github.repository }} \
33+
--dir release_assets \
34+
--skip-existing
35+
36+
- name: Sanity check asset count
37+
run: |
38+
COUNT=$(ls release_assets | wc -l)
39+
echo "Downloaded $COUNT assets"
40+
if [ "$COUNT" -lt 5 ]; then
41+
echo "ERROR: Only $COUNT assets found. Not all builds may have completed yet."
42+
exit 1
43+
fi
44+
45+
- name: Generate checksums.sha256
46+
run: |
47+
cd release_assets
48+
rm -f checksums.sha256
49+
sha256sum * | sort -k2 > checksums.sha256
50+
cat checksums.sha256
51+
52+
- name: Upload checksums.sha256 to Release
53+
uses: softprops/action-gh-release@v3
54+
with:
55+
tag_name: ${{ github.event.inputs.release_tag }}
56+
files: release_assets/checksums.sha256
57+
env:
58+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)