Skip to content

fix(release): simplify to single-runner linux-only release#135

Merged
aksOps merged 1 commit into
mainfrom
fix/release-v0-3-0-simplify
May 13, 2026
Merged

fix(release): simplify to single-runner linux-only release#135
aksOps merged 1 commit into
mainfrom
fix/release-v0-3-0-simplify

Conversation

@aksOps
Copy link
Copy Markdown
Contributor

@aksOps aksOps commented May 13, 2026

Summary

The v0.3.0 release run #25779202189 succeeded at the matrix-build jobs but failed at the publish job:

```
error: git is in a dirty state
│ ?? prebuilt/
```

The matrix downloaded artifacts into `prebuilt/` which goreleaser flagged as dirty, refusing to publish. Worse: `goreleaser release --clean` rebuilds from source anyway, so the matrix was wasted.

Fix

  • Single `ubuntu-latest` runner.
  • Two `builds:` entries in `.goreleaser.yml` (linux/amd64, linux/arm64), each with the right `CC`. Cross-compile to arm64 via gcc-aarch64-linux-gnu (both kuzudb and go-sqlite3 build cleanly).
  • darwin/arm64 deferred to a follow-up `release-darwin.yml` that uses a macos runner and attaches to the same draft Release.

After merge

```
git checkout main && git pull

v0.3.0 tag still exists at e590843, which is BEFORE this fix.

Need to delete + retag at the new HEAD.

git push --delete origin v0.3.0
git tag -d v0.3.0
git tag -s v0.3.0 -m 'v0.3.0'
git push origin v0.3.0
```

🤖 Generated with Claude Code

v0.3.0 release run (#25779202189) failed at the publish job with:

    error: git is in a dirty state
    │ Please check in your pipeline what can be changing the following files:
    │ ?? prebuilt/

Root cause: the workflow ran a build matrix (linux/amd64, linux/arm64,
darwin/arm64), uploaded each result as an actions artifact, then the
publish job downloaded them into `prebuilt/` — but goreleaser's
release subcommand refuses to run when the working tree has untracked
files. Worse: `goreleaser release --clean` rebuilds everything from
source ANYWAY, ignoring the downloaded artifacts, so the matrix was
wasted effort.

The original matrix was over-engineering for CGO. linux→linux
cross-compile to arm64 works cleanly with gcc-aarch64-linux-gnu (both
kuzudb and go-sqlite3 build).

Simpler design that actually ships v0.3.0:
- Single ubuntu-latest runner.
- Two `builds:` entries in .goreleaser.yml, one per arch, each with
  the right CC pinned for the cross-compile.
- darwin/arm64 deferred to a follow-up workflow that uses a macos
  runner and attaches binaries to the same draft Release.

Linux is the priority shape — most codeiq use is in CI / dev
containers / Linux servers. Darwin lands later without forcing v0.3.0
to wait.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@aksOps aksOps merged commit 13cd11b into main May 13, 2026
14 checks passed
@aksOps aksOps deleted the fix/release-v0-3-0-simplify branch May 13, 2026 05:08
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