Skip to content

refactor: replace Lima VMs with host execution in CI#69

Merged
muchzill4 merged 8 commits intoarm:mainfrom
muchzill4:refactor/replace-lima-with-host-env
Apr 10, 2026
Merged

refactor: replace Lima VMs with host execution in CI#69
muchzill4 merged 8 commits intoarm:mainfrom
muchzill4:refactor/replace-lima-with-host-env

Conversation

@muchzill4
Copy link
Copy Markdown
Contributor

@muchzill4 muchzill4 commented Apr 10, 2026

Summary

  • Replace per-suite Lima VMs with direct host execution in CI, fixing flaky e2e tests caused by Lima VM startup/teardown instability on GitHub runners
  • Introduce testenv.Env interface with two implementations: hostEnv (CI/Linux) and limaEnv (local macOS dev, shared singleton VM)
  • Remove the entire e2e/limavm package (Go wrappers, shell scripts, per-suite VM lifecycle)

ℹ️ This is part 1 of fixing e2e flakiness, there's another issue with time comparison I'm tackling separately.

Run e2e tests directly on the GHA runner instead of booting 3 separate
Lima VMs. This eliminates VM boot flakiness (timeouts, clock skew) and
cuts CI time from ~10min to under 5min.

Introduce a testenv.Env interface that abstracts command execution:
- hostenv: runs commands directly on Linux (CI)
- limaenv: uses a single persistent Lima VM (macOS dev)

On macOS, one shared VM replaces three ephemeral ones and persists
across test runs for fast iteration.

Signed-off-by: Bartek Mucha <[email protected]>
@muchzill4 muchzill4 requested a review from a team as a code owner April 10, 2026 13:41
Signed-off-by: Bartek Mucha <[email protected]>
cp fails with "text file busy" when overwriting a binary that is
currently executing. mv (rename) replaces the directory entry while
the old inode stays alive for running processes.

Signed-off-by: Bartek Mucha <[email protected]>
@muchzill4 muchzill4 merged commit a33aa89 into arm:main Apr 10, 2026
4 checks passed
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.

2 participants