Skip to content

ci: macOS dory backend smoke spike workflow#77

Open
patrickleet wants to merge 8 commits into
feat/cluster-backend-abstractionfrom
ci/dory-macos-smoke
Open

ci: macOS dory backend smoke spike workflow#77
patrickleet wants to merge 8 commits into
feat/cluster-backend-abstractionfrom
ci/dory-macos-smoke

Conversation

@patrickleet

Copy link
Copy Markdown
Collaborator

Summary

Adds .github/workflows/on-pr-dory-smoke.yaml — spike / non-required smoke for hops local --backend dory on public GHA macOS.

Install contract (not brew cask / release):

  1. Clone patrickleet/dory @ feat/hops-local-integration
  2. In-pipeline xcodebuild with deterministic -derivedDataPath
  3. Put scripts/dory on PATH
  4. Launch Dory.app and wait for ~/.dory/engine.sock before hops start

If engine boots: kind-parity smoke with --backend dory and kubectl --context dory (dual registry names, stop/start resume, destroy + teardown).

If public GHA cannot boot the engine: job stays workflow_dispatch / non-required — no forever-red required check. Spike outcome should be recorded on [[tasks/hops-cli-dory-macos-smoke]].

  • Runner: explicit macos-15 (arm-oriented native engine path; nested virt may still fail)
  • Timeout: 90 minutes

Implements [[tasks/hops-cli-dory-macos-smoke]] under parent [[tasks/hops-cli-macos-backend-smoke]].

Stacked on PR #70 (feat/cluster-backend-abstraction).

Test plan

  • Workflow YAML parses; second checkout + build steps present
  • No brew-cask primary install path
  • workflow_dispatch only until green public-GHA engine boot
  • Optional: run via Actions → workflow_dispatch and capture engine.sock result

@coderabbitai

coderabbitai Bot commented Jul 11, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

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: defaults

Review profile: CHILL

Plan: Pro

Run ID: 32f3d80f-2de0-41f1-b24e-57a23e5184c9

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
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/dory-macos-smoke

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.

@patrickleet patrickleet force-pushed the feat/cluster-backend-abstraction branch from 4297cd2 to 29b3db5 Compare July 11, 2026 19:04
@patrickleet patrickleet force-pushed the ci/dory-macos-smoke branch from e571900 to 292c5e5 Compare July 11, 2026 19:04
@patrickleet

Copy link
Copy Markdown
Collaborator Author

Colima lessons applied

Colima smoke is green on public GHA (run 29172450420). Ported what transfers to dory:

Shared hops local start (from colima branch)

  • Established CRD waits, soft rbac-manager, longer Crossplane/registry waits
  • kubectl apply retries under API load (mod.rs / start.rs)

Workflow hardness

  • Wait for node + CoreDNS before dual-name registry pods
  • Ready timeout 420s + smoke-pod describe on failure
  • Stop/start: 420s Available wait + rollout restart recovery
  • Debug dump before destroy (default smoke pods + ~/.dory / dory k8s status)
  • ECR busybox pull retries (toomanyrequests)
  • Structural test dory_smoke_workflow_carries_colima_lessons

Still spike-first

Engine boot on public macos-15 remains unproven (nested virt / headless). Stay workflow_dispatch / non-required until a green dispatch. If engine.sock never appears → platform blocker; if it does → iterate registry/resume like colima.

Clone+build patrickleet/dory @ feat/hops-local-integration in CI,
wait for engine.sock, then kind-parity hops smoke with --backend dory.
workflow_dispatch / non-required until public GHA can boot the engine.

Implements [[tasks/hops-cli-dory-macos-smoke]] under
[[tasks/hops-cli-macos-backend-smoke]].
Assert clone+build install contract and kind-parity steps in the
shipped on-pr-dory-smoke.yaml.
Bring shared start hardness (CRD Established waits, apply retries, longer
Crossplane/registry waits) from the green colima path, and harden the
dory workflow: settle CoreDNS before registry pods, 420s Ready, stop/start
rollout restart, failure dump, and ECR pull retries. Structural tests lock
the contract in.
@patrickleet patrickleet force-pushed the ci/dory-macos-smoke branch from e3d6e42 to 7c9c7ef Compare July 12, 2026 03:56
workflow_dispatch only works once the file exists on the default branch;
enable pull_request (still non-required) so #77 can actually run dory-smoke.
Public GHA cannot run dory-hv (no nested virt for native engine; app never
creates ~/.dory). Pin macos-15-intel, still clone+build dory for scripts/,
try the app briefly, then expose Colima docker as ~/.dory/engine.sock so
hops local --backend dory can complete kind-parity smoke.
dory enable exits 3 when ports/registry binds drift. hops just wrote the
desired config; auto-retry once with --recreate so local start applies it.
CI: skip native engine wait on Intel, set DORY_ENGINE_SOCK, disable k8s first.
After dory stop/start, nodes can be Ready while openapi/v2 still times out
and helm upgrade fails. Retry helm with wait_for_kubernetes between attempts;
CI pause briefly after stop before start.
docker stop of dory-k8s often leaves k3s stuck past dory's Ready wait on
resume. On enable exit 1/3, disable and re-enable with --recreate once.
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