Conversation
Deploying elastic-fruit-runner with
|
| Latest commit: |
90f9e15
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://571fd2af.elastic-fruit-runner.pages.dev |
| Branch Preview URL: | https://feat-tart-integration-tests.elastic-fruit-runner.pages.dev |
Add BDD scenarios for tart manager operations with nested virtualization: - Pull, clone, start, IP discovery, SSH exec, stop, delete - List and cleanup orphaned VMs with prefix matching Uses ghcr.io/cirruslabs/macos-tahoe-base:latest as a smaller test image (configurable via EFR_TEST_TART_IMAGE). Tart steps auto-skip via godog.ErrPending when tart binary is not available. CI matrix gains a "Tart" job running on self-hosted macOS arm64 runner with nested virtualization enabled.
3a115bb to
660b772
Compare
💡 Codex ReviewThe integration matrix now runs entirely on elastic-fruit-runner/test/integration/steps_test.go Lines 722 to 726 in 3a115bb VM cleanup is only performed in this explicit scenario step, so if any earlier Tart step fails (pull/clone/start/ip/exec), the remaining steps are skipped and stop/delete never runs. Because these tests run on persistent self-hosted machines, leaked VMs can accumulate and interfere with subsequent jobs. Add unconditional teardown in ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Codecov Report❌ Patch coverage is
Flags with carried forward coverage won't be shown. Click here to find out more.
... and 1 file with indirect coverage changes 🚀 New features to boost your workflow:
|
Use per-matrix runs-on so PAT/GitHub App tests run on Linux arm64 while Tart tests run on macOS arm64 (required for Apple Virtualization.framework and nested virtualization).
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 45b7b78937
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
|
||
| Scenario: list and cleanup orphaned VMs | ||
| Given a tart manager | ||
| When I clone a VM with a random name |
There was a problem hiding this comment.
Pull image before cloning in orphan-cleanup scenario
The list and cleanup orphaned VMs scenario clones immediately without first ensuring the test image is present locally, so on a clean runner (or when this scenario is run in isolation) Clone can fail before any cleanup assertions run. This makes the scenario order-dependent on pull, clone, start, exec, and cleanup a VM instead of being self-contained.
Useful? React with 👍 / 👎.
… API
GitHub Actions API sends job results in lowercase ("succeeded", "failed")
but the mapping code expected Title Case ("Succeeded", "Failed"), causing
all completed jobs to show as FAIL in the dashboard (issue #68).
| "failed": {}, | ||
| "Succeeded": {}, | ||
| "Failed": {}, | ||
| } |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 90f9e155d2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| _ = state.tartMgr.Stop(context.Background(), name) | ||
| _ = state.tartMgr.Delete(context.Background(), name) |
There was a problem hiding this comment.
Propagate tart cleanup failures instead of discarding them
This step ignores both Stop and Delete errors, so the scenario can still pass even when cleanup fails for prefixed VMs (especially stale orphans from prior runs). Because the next assertion only verifies the current cloned VM name, failures on other matched VMs are silently masked, which can leave orphaned Tart VMs behind and hide regressions in the cleanup path.
Useful? React with 👍 / 👎.
Summary
ghcr.io/cirruslabs/macos-tahoe-base:latestas smaller test image (no Xcode)tartbinary is not availableTest plan