Skip to content

test,ci: e2e suite + macOS CI#1

Closed
skevetter wants to merge 1 commit into
mainfrom
feat/e2e-and-ci
Closed

test,ci: e2e suite + macOS CI#1
skevetter wants to merge 1 commit into
mainfrom
feat/e2e-and-ci

Conversation

@skevetter

Copy link
Copy Markdown
Contributor

Summary

Adds an end-to-end test suite and CI for the OrbStack provider. Both are macOS-based, since the provider binary is darwin-only.

e2e suite (Ginkgo/Gomega)

  • integration label — manifest generation, required options, and provider-binary error handling (init with a missing orbctl, create with no MACHINE_ID). Requires no OrbStack install, so it's the reliable CI signal.
  • vm label — full workspace lifecycle on a real OrbStack machine (up → run command → delete), with DeferCleanup so a failed run doesn't leak a machine.
  • Alpine workspace fixture; Taskfile targets test:e2e and test:e2e:vm.

CI (.github/workflows/tests.yaml)

Two jobs on macos-15 (hardened: contents: read, persist-credentials: false):

  • integration — goreleaser build + integration label. No OrbStack.
  • vm — installs OrbStack via Homebrew, starts it, runs the vm label.

Validation

Both labels pass locally on macOS + real OrbStack:

  • integration: 4/4
  • vm: 3/3 (~3.5 min: isolated ubuntu machine, docker provisioned, alpine devcontainer up, exec, delete)

Note on the vm CI job

Whether OrbStack runs on a GitHub-hosted macOS runner (headless install, licensing, nested virtualization) is unverified — this PR is where we find out. If it can't run there, the intent is to keep the integration job as the CI gate and treat vm as local/self-hosted only. Draft pending that CI result.

Add a Ginkgo/Gomega e2e suite (integration + vm labels) and a Tests workflow.
Both labels run on macOS since the provider binary is darwin-only:
- integration: manifest generation and provider-binary error handling; no
  OrbStack required.
- vm: full workspace lifecycle on a real OrbStack machine.
Adds Taskfile test:e2e / test:e2e:vm targets and an alpine workspace fixture.
@coderabbitai

coderabbitai Bot commented Jul 25, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: b2e5e19b-f04e-4472-be86-6a758d84c16e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@skevetter

Copy link
Copy Markdown
Contributor Author

Superseded by a new PR from feat/e2e-ci-fix (the repo ruleset blocks direct pushes to an existing PR branch, so the follow-up fix required a new branch).

@skevetter skevetter closed this Jul 25, 2026
@skevetter
skevetter deleted the feat/e2e-and-ci branch July 25, 2026 18:30
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