Skip to content

ci(build): do not run the release matrix for internal v0.0.0-* tags - #598

Merged
EtienneLescot merged 1 commit into
mainfrom
claude/build-skip-internal-tags
Sep 4, 2026
Merged

ci(build): do not run the release matrix for internal v0.0.0-* tags#598
EtienneLescot merged 1 commit into
mainfrom
claude/build-skip-internal-tags

Conversation

@EtienneLescot

@EtienneLescot EtienneLescot commented Sep 4, 2026

Copy link
Copy Markdown
Collaborator

v0.0.0-* is this repository's existing marker for a tag that is not a product version — a place to hang a binary that needs a permanent public URL, the way v0.0.0-stt-models hosts the 360 MB Whisper model.

build.yml triggers on v* with no further filter, so creating one runs the entire release matrix — Windows, macOS ×2, Linux, installers, notarisation — to publish an archive it was never asked to build. That has already happened: there is a build.yml run against a v0.0.0 tag in the history.

It matters now because of #591: adopting a locally built ONNX Runtime means publishing it under such a tag, and that should not cost a full release build every time the pinned version moves.

The other five release-triggered workflows are fine, and that was checked

workflow guard
aur-publish !github.event.release.prerelease
bump-nix-package !github.event.release.prerelease
publish-winget !github.event.release.prerelease
update-homebrew-cask !github.event.release.prerelease
announce-release none — see below

An internal release is marked as a prerelease (as v0.0.0-stt-models is), so none of the four package-manager publishers can be tricked into pushing a bogus version. That was the risk worth checking, and it is already covered.

announce-release has no prerelease gate and would post to Discord. That is noise rather than a wrong publication, and whether an internal release deserves an announcement is a call for whoever owns that channel — so this PR leaves it alone rather than deciding.

What a reviewer should push back on

  • !v0.0.0-* encodes a convention that lives only in one tag name and one release title. If v0.0.0- is not actually the intended marker for internal assets, this exclusion is wrong and something more explicit — a deps/ prefix, or a tag-shape check inside the job — would be better.
  • Nothing enforces that internal releases are marked prerelease. The four package-manager guards depend on it entirely. If someone publishes a v0.0.0-* release as a full release, this PR does nothing to stop AUR and Homebrew from acting on it.

Summary by CodeRabbit

  • Chores
    • Improved automated build efficiency by preventing internal marker tags from triggering the full build workflow.
    • Release-tagged builds continue to run as expected, with clearer workflow documentation for related release processes.

`v0.0.0-*` is this repository's existing marker for a tag that is not a
product version — a place to hang a binary needing a permanent public
URL, the way `v0.0.0-stt-models` hosts the 360 MB Whisper model.

`build.yml` triggers on `v*` with no further filter, so creating one runs
the entire matrix — Windows, macOS x2, Linux, installers, notarisation —
to publish an archive it was never asked to build. That has already
happened once: there is a `build.yml` run against a `v0.0.0` tag in the
history.

The reason this matters now is #591: adopting a locally built ONNX
Runtime means publishing it under such a tag, and doing that should not
cost a full release build every time the pinned version moves.

The other five release-triggered workflows do NOT need the same guard,
which was checked rather than assumed: `aur-publish`, `bump-nix-package`,
`publish-winget` and `update-homebrew-cask` all gate on
`!github.event.release.prerelease`, and an internal release is marked as
a prerelease — so none of them can push a bogus version to a package
manager. `announce-release` has no such gate and would post to Discord;
that is noise rather than a wrong publication, and whether an internal
release deserves an announcement is a call for whoever owns the channel,
so it is left alone here.
@coderabbitai

coderabbitai Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Team

Run ID: c591c3b6-fc29-497e-9fd8-80513c990576

📥 Commits

Reviewing files that changed from the base of the PR and between a26f3d3 and f392a17.

📒 Files selected for processing (1)
  • .github/workflows/build.yml

Included review availability: Your plan provides up to 8 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

The build workflow now ignores v0.0.0-* marker tags. A comment explains the exclusion and why other release-triggered workflows remain unchanged.

Changes

Build trigger filtering

Layer / File(s) Summary
Exclude internal marker tags
.github/workflows/build.yml
The push trigger excludes tags matching v0.0.0-*. Comments document the marker-tag usage and workflow scope.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to f392a

Internal marker tags no longer start the full release build matrix, avoiding unnecessary builds without changing prerelease build dispatch or release announcements. No current merge-blocking risk remains.

Suggested reviewers: siddharthvaddem

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise, specific, and accurately describes the main CI change: excluding internal v0.0.0-* tags from the release build matrix.
Description check ✅ Passed The description clearly explains the change, its motivation, affected workflows, scope, and known limitations. It does not use the template headings or provide explicit testing details and checklist s…
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/build-skip-internal-tags

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@EtienneLescot
EtienneLescot merged commit 2a2656c into main Sep 4, 2026
18 checks passed
@EtienneLescot
EtienneLescot deleted the claude/build-skip-internal-tags branch September 4, 2026 15:04
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