Skip to content

ci: move L4 vm-e2e from tart to github actions macos-14#86

Merged
fullstackjam merged 18 commits into
mainfrom
test/vm-e2e-speed
May 19, 2026
Merged

ci: move L4 vm-e2e from tart to github actions macos-14#86
fullstackjam merged 18 commits into
mainfrom
test/vm-e2e-speed

Conversation

@fullstackjam
Copy link
Copy Markdown
Collaborator

@fullstackjam fullstackjam commented May 18, 2026

Summary

  • L4 destructive e2e suite now runs on GitHub Actions `macos-14` runners (Apple Silicon, fresh VM per job) instead of local Tart VMs
  • Added `vm-e2e-spike.yml` workflow: two parallel jobs (group-a / group-b) mirroring the old `test-vm-parallel` split, for test isolation
  • Removed `test-vm`, `test-vm-run`, `test-vm-parallel` Makefile targets and `scripts/vm/` (Tart orchestration scripts)
  • Fixed production bug: `--dry-run` was writing `packages-cache.json` to `~/.openboot/` — now uses `RefreshPackagesFromRemoteDryRun()` which skips the cache write
  • Adapted `TestVM_Journey_FirstTimeUser` to use the dev binary instead of `brew install openboot` (published formula not available pre-release)
  • `TestVM_Interactive_InstallScript` skips cleanly when the Homebrew formula is not available

Test plan

  • `TestVM_Infra` green on `macos-14` (confirmed: arm64, macOS 14.8.5, all sub-tests pass)
  • group-a (FirstTimeUser installs 8 tools, DryRun safety, Interactive skip) — green
  • group-b (dotfiles, macOS defaults, edge cases, sync, publish/import) — green
  • `go vet ./...` clean
  • `go build ./...` clean

@github-actions github-actions Bot added tests Tests only ci CI/CD changes docs labels May 18, 2026
Delete smoke_test.go and real_install_test.go (covered by FirstTimeUser
and DryRunIsCompletelySafe). Remove MacOSDefaults_ScreenshotsDirCreated
and MacOSDefaults_DryRunWritesNothing (covered by FullSetupConfiguresEverything
and DryRunIsCompletelySafe). Switch AllCategoriesWritten to test-e2e-fixture
since macOS prefs don't depend on which packages are installed.
…ase CI

- config: RefreshPackagesFromRemoteDryRun() skips writePackagesCache so
  --dry-run has zero side effects on ~/.openboot/
- root.go: call the dry-run variant when installCfg.DryRun is set
- TestVM_Journey_FirstTimeUser: use dev binary (vmCopyDevBinary) instead
  of brew tap install — brew formula requires a published release
- TestVM_Interactive_InstallScript: skip when openboot formula is not
  available in Homebrew (pre-release CI environment)
test-vm, test-vm-run, test-vm-parallel and their VM_A/VM_B variables are
deleted. L4 destructive e2e now runs on macos-14 GitHub Actions runners
(vm-e2e-spike.yml) — each job gets a fresh macOS VM at no extra cost for
public repos. Kept test-vm-inner / test-vm-inner-run for local use and
as the commands the CI workflow invokes.

Updated: Makefile, CLAUDE.md, CONTRIBUTING.md, AGENTS.md, HARNESS.md,
auto-release.yml checklist.
@fullstackjam fullstackjam changed the title test(vm): cut test-vm-parallel from ~30 min to ~14 min ci: move L4 vm-e2e from tart to github actions macos-14 May 19, 2026
…refactor

Line numbers shifted from :69/:74 to :82/:87 when loadRemotePackages
gained the dryRun bool parameter and refreshPackages helper was added.
The preset was an internal fixture not intended for user consumption.
Tests that previously used it now use the minimal preset, which is
already tested by TestVM_Journey_FirstTimeUser in the same job.
@fullstackjam fullstackjam merged commit d8e45c9 into main May 19, 2026
14 checks passed
@fullstackjam fullstackjam deleted the test/vm-e2e-speed branch May 19, 2026 02:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci CI/CD changes docs tests Tests only

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant