Skip to content

ci: run integration tests on macOS using Colima with Apple VZ#996

Open
grdsdev wants to merge 9 commits into
mainfrom
claude/nifty-northcutt-b07ff4
Open

ci: run integration tests on macOS using Colima with Apple VZ#996
grdsdev wants to merge 9 commits into
mainfrom
claude/nifty-northcutt-b07ff4

Conversation

@grdsdev
Copy link
Copy Markdown
Contributor

@grdsdev grdsdev commented May 8, 2026

Summary

  • Migrates integration tests from ubuntu-latest (Docker) to macos-15 (Apple Silicon)
  • Uses Colima with --vm-type vz (Apple's native Virtualization Framework) instead of QEMU, which is the likely reason Colima previously failed on macOS runners
  • Adds --vz-rosetta for x86_64 image compatibility
  • Bumps timeout from 30→45 min to account for Colima/brew startup

Test plan

  • Integration Tests (macOS) job passes in CI
  • If it does, the Linux integration test job can be dropped entirely from the linux job and ci-success gate

🤖 Generated with Claude Code

Switch from ubuntu-latest (Docker) to macos-15 with Colima using
--vm-type vz (Apple Virtualization Framework) instead of QEMU, which
doesn't work reliably on macOS GitHub Actions runners.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@grdsdev grdsdev requested a review from a team as a code owner May 8, 2026 18:26
grdsdev and others added 8 commits May 8, 2026 15:28
Rosetta is not installed on the macos-15 runner, causing the VZ VM to
exit immediately. Supabase images ship native linux/arm64 builds so
Rosetta is not needed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…N flakiness

brew install colima fails intermittently because it downloads lima,
colima, docker, and docker-completion all via Homebrew's CDN. Move Lima
and Colima to direct GitHub release downloads; keep only the Docker CLI
on Homebrew (two small packages). Also set HOMEBREW_GITHUB_API_TOKEN to
reduce rate-limit risk for the remaining brew step.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Direct Lima download failed with 404 (Lima releases use Darwin not macOS
in the filename). The first CDN failure was transient — docker installed
fine via brew in the same run. Go back to the simpler brew approach.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
VZ mode consistently fails on macos-15 runners (the runner VM likely
lacks the hypervisor entitlements VZ requires). Try QEMU which uses
the older Hypervisor.framework path. Print ha.stderr.log on failure
for diagnostics.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
QEMU mode requires qemu-img which is not bundled with Colima.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Docker/VM-based approaches (Colima VZ and QEMU) both fail on GitHub's
macOS ARM64 runners due to nested virtualization restrictions. Switch to
a hosted Supabase project dedicated to CI.

- Remove Colima setup entirely
- Link to project via SUPABASE_ACCESS_TOKEN + INTEGRATION_PROJECT_REF
- Reset DB with `supabase db reset --linked` before each run
- Pass URL/keys to tests via env vars (SUPABASE_URL, SUPABASE_PUBLISHABLE_KEY,
  SUPABASE_SECRET_KEY)
- Serialize runs with job-level concurrency group to avoid DB conflicts
- DotEnv.swift now reads from env vars with local defaults as fallback

Secrets required in the repo:
  SUPABASE_ACCESS_TOKEN, INTEGRATION_PROJECT_REF, INTEGRATION_DB_PASSWORD,
  INTEGRATION_SUPABASE_URL, INTEGRATION_SUPABASE_ANON_KEY,
  INTEGRATION_SUPABASE_SERVICE_ROLE_KEY

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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