Skip to content

ci: three-OS PR test gate + tag-on-main versioned releases#14

Merged
Snider merged 1 commit into
devfrom
ci/pr-gate-tag-release
Jul 22, 2026
Merged

ci: three-OS PR test gate + tag-on-main versioned releases#14
Snider merged 1 commit into
devfrom
ci/pr-gate-tag-release

Conversation

@Snider

@Snider Snider commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Two asks from the owner, both riding the now-green CI:

PR gate: the model-free test surface runs win/mac/lin on every PR into dev — go/ module suite (GOWORK=off), cli tui suite (workspace), and the examples/ module compiled+vetted (the acceptance surface: every public feature ships with its example, so compiling them all catches API breakage with no model loaded). linux+macos are the REQUIRED go/no-go checks; windows is EXPERIMENTAL (continue-on-error) until the cgo-on windows graph is proven — its logs will name the real portability offenders either way. Branch protection requiring the two checks lands after this merges (check names: tests · linux, tests · macos).

Tag releases: Build now also fires on v* tags. A guard job verifies the tagged commit is an ancestor of main — a tag off main fails LOUDLY instead of silently minting a release. Tag builds bake the tag into main.version, name the zips with it, and publish a real (non-prerelease) release; dev pushes keep the rolling dev prerelease unchanged.

This PR's own checks exercise the new matrix live.

🤖 Generated with Claude Code
Co-Authored-By: Virgil virgil@lethean.io

CI becomes the PR go/no-go: the model-free suite (engine/metal skips
without a metallib, hip contract tests host-side) runs on linux+macos
as REQUIRED lanes and windows as EXPERIMENTAL (continue-on-error) until
the cgo-on windows graph is proven — its logs name the real offenders
either way. Each lane: go/ module suite (GOWORK=off, the published dep
surface), cli tui suite (workspace), and the examples module compiled +
vetted (the acceptance surface — every public feature ships with its
example, so compiling all of them catches API breakage without a model).

Build gains tags: v* — a version tag publishes the REAL release, guarded
by a merge-base ancestry check (tag not on main = loud red, no release);
dev pushes keep the rolling dev prerelease. Binary main.version and the
zip names carry the tag on tag builds.

Co-Authored-By: Virgil <virgil@lethean.io>
@sonarqubecloud

Copy link
Copy Markdown

@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 67effedc-0a07-4df5-a6cb-a3702a12b17b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Warning

Billing warning: we have not been able to collect payment for this subscription for more than 72 hours. Please update the payment method or pay any pending invoices in Billing to avoid service interruption.


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.

@Snider
Snider merged commit c65fa35 into dev Jul 22, 2026
5 of 6 checks passed
Snider added a commit that referenced this pull request Jul 22, 2026
Co-Authored-By: Virgil <virgil@lethean.io>
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