diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bf43b73..f8a9690 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,15 +1,16 @@ -# gamebox CI — build + test on a Blacksmith cloud Apple-Silicon runner. +# gamebox CI — build + test on a GitHub-hosted Apple-Silicon macOS runner. # # WHY: gamebox is Apple-native (Win32 PE loader + D3DMetal), so its hexa source # compile + the apple-only test suite need a macOS host. Running that locally on # the dev Mac (242+ perf modules + 8 test files) spikes memory and crashes the -# machine. Offloading to Blacksmith's native Apple-Silicon runner -# (blacksmith-6vcpu-macos-15) keeps every build off the local Mac — the dev box -# only ever does `git push`. +# machine. Offloading to a cloud macOS runner keeps every build off the local +# Mac — the dev box only ever does `git push`. # -# Runner pin: macos-15 (NOT -26) mirrors the hexa-lang release.yml rationale — -# the SDK baseline rides the builder, and macos-15 keeps the Mach-O min-OS floor -# stable. +# Runner: github-hosted `macos-15` (Apple-Silicon). gamebox is a PUBLIC repo, so +# GitHub-hosted macOS minutes are FREE — this replaced the paid Blacksmith runner +# (`blacksmith-6vcpu-macos-15`) on owner instruction to stop CI cost. Pin to +# macos-15 (NOT -26): the SDK baseline rides the builder, and macos-15 keeps the +# Mach-O min-OS floor stable (mirrors the hexa-lang release.yml rationale). # # The hexa toolchain is the released binary (gamebox is a downstream consumer, # not the compiler repo), installed verbatim via the canonical one-liner. diff --git a/CLAUDE.md b/CLAUDE.md index 39a311a..2ff87f5 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -57,33 +57,12 @@ without the engine checked out. Run via `bash .harness-engine/bin/harness ` (or, with an external tsx, `HARNESS_REPO_ROOT="$PWD" .harness-engine/cli/index.ts `). -## CI — builds run on Blacksmith, NOT locally +## CI — cloud macOS runner, NOT local -gamebox is Apple-native (Win32 PE + D3DMetal), so its hexa compile + the -apple-only test suite need a macOS host. Running that locally (242+ perf -modules + 8 test files) spikes memory and **crashes the dev Mac** — so CI runs -on a Blacksmith cloud Apple-Silicon runner instead. - -- **Workflow** — `.github/workflows/ci.yml`, job `build-test`, on every - push to `main`/`master` + every PR + `workflow_dispatch`. -- **Runner** — `blacksmith-6vcpu-macos-15` (native Apple-Silicon cloud Mac). - Pinned to `macos-15` (NOT `-26`) — same rationale as hexa-lang `release.yml`: - the Mach-O min-OS baseline rides the builder SDK, so the pin keeps it stable. - same-org (`dancinlab`) Blacksmith is already enabled (hexa-lang uses it), so - no extra activation is needed. -- **Toolchain** — the released `hexa` binary, installed via the canonical - one-liner (`install.sh` → `~/.hx/bin`). gamebox is a downstream consumer, not - the compiler repo, so it installs the release — it does not build hexa. -- **What it runs** — `hexa run self-test` over the 8 `[test].files` in - `hexa.toml` (NOT `hexa test`, which runs `@test` fns — these files are - `self_test()`/`main()` and would pass vacuously); then the native i386 - interpreter test (`native/i386_cpu_test`, the E3 first-execution gate, clang - on the runner); then a gamebox CLI smoke (`status` / `selftest --quick`, - warn-only since D3DMetal SDK is absent on the runner). - -**Rule for working here**: don't run heavy `hexa test` / builds on the local -Mac — just `git push` and let Blacksmith build. The dev box should only ever -push. Check results with `gh pr checks` / `gh run list`. +- do: build on GitHub-hosted `macos-15` (Apple-Silicon) via `.github/workflows/ci.yml` job `build-test` (push to `main`/`master` + PR + dispatch); gamebox is PUBLIC so these macOS minutes are FREE. +- do: just `git push` then check `gh pr checks` / `gh run list` — CI installs released `hexa`, runs the 8 `self-test` files + native i386 (`i386_cpu_test`) + Metal/D3D11 substrate smokes. +- dont: use the paid Blacksmith runner (`blacksmith-6vcpu-macos-15`) — removed on owner instruction for cost (deliberate per-repo override of the `blacksmith-ci` default). +- dont: run heavy `hexa test` / full builds on the dev Mac (242+ perf modules crash it); use `hexa test` for the suite (vacuous — use `hexa run self-test`); unpin from `macos-15`. ## Quick reference