Skip to content

fix: skip VM acceptance gate for pre-release tags#13

Merged
amcheste merged 1 commit into
mainfrom
fix/release-gate-prerelease
Mar 29, 2026
Merged

fix: skip VM acceptance gate for pre-release tags#13
amcheste merged 1 commit into
mainfrom
fix/release-gate-prerelease

Conversation

@amcheste
Copy link
Copy Markdown
Owner

Summary

Standard GitHub-hosted macos-15 runners don't support nested virtualization (they run inside VMs themselves on the free tier), so Tart can't boot a macOS guest VM. This blocks all beta releases.

The fix: two-tier release gates.

Tag type Gate
v0.1.0-beta.1, v1.0.0-rc.1 validate only (lint + formula audit + macOS integration test)
v1.0.0, v1.2.3 validate + VM acceptance test (clean macOS install from scratch)

Pre-releases are explicitly not fully vetted — skipping the VM gate is semantically correct. The validate pipeline still runs and must pass. Stable releases retain the full VM gate as the quality bar for "mainstream ready."

In GitHub Actions, a skipped job counts as success for needs, so release still runs when acceptance is skipped.

After merging

Re-tag to finally publish v0.1.0-beta.1:

git tag -d v0.1.0-beta.1
git push origin --delete v0.1.0-beta.1
./scripts/bump-version.sh set 0.1.0-beta.1
git push && git push --tags

🤖 Generated with Claude Code

Pre-release tags (-beta.N, -rc.N) no longer require the VM acceptance test.
The validate pipeline (lint, formula audit, macOS integration test) still runs
and must pass. A skipped job counts as success for the release job's `needs`.

Stable tags (1.0.0+) continue to require the full VM acceptance test.

The VM test requires Apple Silicon bare-metal runners with nested virtualization
enabled — not available on standard GitHub-hosted macOS runners. It remains the
release gate for stable versions where it can be triggered manually or via
self-hosted runners.

Updated VERSIONING.md to document the two-tier gate model.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@amcheste amcheste merged commit 94ff4b8 into main Mar 29, 2026
3 checks passed
@amcheste amcheste deleted the fix/release-gate-prerelease branch March 29, 2026 20:16
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