Skip to content

[yumin-xia] ci: release binaries for five platforms with checksums and an install script - #21

Merged
Stumble merged 2 commits into
mainfrom
yumin-xia/release-binaries
Nov 4, 2026
Merged

Stumble merged 2 commits into
mainfrom
yumin-xia/release-binaries

Conversation

@Stumble

@Stumble Stumble commented Nov 4, 2026 •

Copy link
Copy Markdown
Owner

Releases had no binaries. Only make build from a clone reports the right version; go install ./cmd/sqlc reports v1.31.1, which ended up in generated headers downstream (ggsrc/ggsrv-layout).

  • .github/workflows/release.yml: on a tag push, or run by hand for an existing tag, builds linux/amd64 and linux/arm64 (CGO, static musl, any distribution), darwin/amd64 and darwin/arm64 (CGO, macOS 12+), windows/amd64 (no CGO). Each binary runs sqlc version, compile and generate on its own platform; then the archives, checksums.txt and build provenance are attached to the release, and scripts/install.sh installs it on Linux and macOS runners.
  • scripts/install.sh: picks the platform, downloads the archive, checks its SHA-256 (SQLC_SHA256 or the release's checksums.txt), installs into $(go env GOPATH)/bin.
  • GUIDE.md, README.md: install from a release.

CGO and non-CGO builds generate identical code (wicked_compat, ggsrv-layout, bookstore); CGO runs take ~60 ms, the WebAssembly parser ~2.2 s.

Changelog: docs/changelogs/2026-11-04-release-binaries.md. v2.4.0 keeps the dependencies fixed in #22, so the first binaries ship as v2.4.1: install examples point to it and docs/releases/v2.4.1.md holds its notes. After merging, pushing the v2.4.1 tag builds and publishes it.

🤖 Generated with Claude Code

… script

Releases had no binaries; only make build from a clone reported the right
version. A tag push (or a manual run for an existing tag) now builds sqlc for
linux/amd64, linux/arm64 (static, CGO, musl), darwin/amd64, darwin/arm64
(CGO, macOS 12+) and windows/amd64 (no CGO), runs each on its own platform,
and attaches the archives, checksums.txt and build provenance to the release.
scripts/install.sh installs a release after checking its SHA-256.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Stumble
Stumble force-pushed the yumin-xia/release-binaries branch from 0355447 to 069691c Compare November 4, 2026 08:13
v2.4.0's source has the dependencies govulncheck flagged (#22), so binaries
start with v2.4.1. Install examples point to it; add its release notes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Stumble
Stumble merged commit 0d0b5bf into main Nov 4, 2026
13 checks passed
@Stumble
Stumble deleted the yumin-xia/release-binaries branch November 4, 2026 08:21
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.

1 participant