Skip to content

Commit 8ed691b

Browse files
Add SHA256 checksum generation to release builds (#1994)
* Add SHA256 checksum generation to release builds - Create reusable generate_checksums action in .github/actions - Update desktop_cd.yaml publish job to generate checksums for all artifacts - Checksums are uploaded to GitHub Releases alongside binaries Co-Authored-By: yujonglee <[email protected]> * Add required name and description fields to generate_checksums action Co-Authored-By: yujonglee <[email protected]> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
1 parent c5e5c38 commit 8ed691b

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: "Generate SHA256 Checksums"
2+
description: "Generate SHA-256 checksum files for build artifacts"
3+
4+
inputs:
5+
files:
6+
description: "Newline-separated list of files to generate checksums for"
7+
required: true
8+
9+
outputs:
10+
checksum_files:
11+
description: "Comma-separated list of generated checksum files"
12+
value: ${{ steps.generate.outputs.checksum_files }}
13+
14+
runs:
15+
using: "composite"
16+
steps:
17+
- id: generate
18+
shell: bash
19+
run: |
20+
set -euo pipefail
21+
22+
CHECKSUM_FILES=""
23+
24+
while IFS= read -r file; do
25+
if [[ -z "$file" ]]; then
26+
continue
27+
fi
28+
29+
if [[ ! -f "$file" ]]; then
30+
echo "File not found for checksum: $file" >&2
31+
exit 1
32+
fi
33+
34+
sha256sum "$file" > "${file}.sha256"
35+
36+
if [[ -n "$CHECKSUM_FILES" ]]; then
37+
CHECKSUM_FILES="${CHECKSUM_FILES},${file}.sha256"
38+
else
39+
CHECKSUM_FILES="${file}.sha256"
40+
fi
41+
done <<< "${{ inputs.files }}"
42+
43+
echo "checksum_files=$CHECKSUM_FILES" >> "$GITHUB_OUTPUT"

.github/workflows/desktop_cd.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,13 @@ jobs:
305305
github_token: ${{ secrets.GITHUB_TOKEN }}
306306
custom_tag: desktop_v${{ needs.compute-version.outputs.version }}
307307
tag_prefix: ""
308+
- id: checksums
309+
uses: ./.github/actions/generate_checksums
310+
with:
311+
files: |
312+
${{ needs.build-macos.result == 'success' && 'hyprnote-macos-aarch64.dmg' || '' }}
313+
${{ needs.build-macos.result == 'success' && 'hyprnote-macos-x86_64.dmg' || '' }}
314+
${{ needs.build-linux.result == 'success' && 'hyprnote-linux-x86_64.AppImage' || '' }}
308315
- id: artifacts
309316
run: |
310317
ARTIFACTS=""
@@ -322,6 +329,9 @@ jobs:
322329
echo "No artifacts to release" >&2
323330
exit 1
324331
fi
332+
if [[ -n "${{ steps.checksums.outputs.checksum_files }}" ]]; then
333+
ARTIFACTS="$ARTIFACTS,${{ steps.checksums.outputs.checksum_files }}"
334+
fi
325335
echo "list=$ARTIFACTS" >> $GITHUB_OUTPUT
326336
- uses: ncipollo/release-action@v1
327337
with:

0 commit comments

Comments
 (0)