From 7a22cc73f1b0ab600dab967ff9a867442ff1b4fe Mon Sep 17 00:00:00 2001 From: dancinlife Date: Fri, 26 Jun 2026 20:19:47 +0900 Subject: [PATCH] =?UTF-8?q?docs(ci):=20retire=20stale=20Blacksmith=20refer?= =?UTF-8?q?ences=20=E2=86=92=20github-hosted=20macos-15=20(cost)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #34가 runner를 blacksmith-6vcpu-macos-15 → macos-15(github-hosted)로 전환(비용 과다· 오너 지시)했으나 ci.yml 헤더 주석 + CLAUDE.md 'builds run on Blacksmith' 섹션이 아직 Blacksmith를 가리키는 드리프트가 남아 재도입 위험이 있었음. SSOT를 현실(github-hosted· PUBLIC repo macOS 무료)에 맞춰 정리. CLAUDE.md CI 섹션은 commons do/dont 형식으로 변환. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/ci.yml | 15 ++++++++------- CLAUDE.md | 31 +++++-------------------------- 2 files changed, 13 insertions(+), 33 deletions(-) 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