Skip to content

Add workflow to publish SHA256 checksums for release assets#26021

Open
Ashutosh0x wants to merge 1 commit intoprotocolbuffers:mainfrom
Ashutosh0x:feat/publish-release-checksums
Open

Add workflow to publish SHA256 checksums for release assets#26021
Ashutosh0x wants to merge 1 commit intoprotocolbuffers:mainfrom
Ashutosh0x:feat/publish-release-checksums

Conversation

@Ashutosh0x
Copy link
Copy Markdown

Summary

Adds a GitHub Actions workflow (
elease_checksums.yaml) that automatically computes and uploads a checksums.txt file containing SHA256 hashes for all release artifacts.

Fixes #16165

What it does

When a release is published, this workflow:

  1. Downloads all release assets
  2. Computes SHA256 checksums using sha256sum
  3. Uploads a checksums.txt file as a new release asset

Users can then verify downloaded artifacts:
sha256sum --check checksums.txt

Design decisions

  • checksums.txt format: Matches the approach used by yamlfmt, as suggested in the original issue
  • sha256sum output: Standard format, directly usable with sha256sum --check
  • Sorted output: Ensures reproducibility across runs
  • workflow_dispatch: Allows maintainers to back-fill checksums for existing releases
  • --clobber on upload: Safe to re-run without errors
  • Minimal scope: Single file, no changes to existing workflows

Impact

  • ~6,400 repos using arduino/setup-protoc currently download protoc binaries without any integrity verification
  • Thousands of shell scripts fetch releases via curl/wget with no way to verify checksums
  • This gives all users a standard way to verify artifact integrity

cc @alexeagle @mkruskal-google

Adds a GitHub Actions workflow that automatically computes and uploads a checksums.txt file for all release artifacts when a release is published. Supports manual workflow_dispatch for backfilling existing releases. Uses sha256sum for verification compatibility (sha256sum --check). Fixes protocolbuffers#16165
@Ashutosh0x Ashutosh0x force-pushed the feat/publish-release-checksums branch from db53e42 to dc0741b Compare February 26, 2026 04:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Publish checksums with releases

1 participant