diff --git a/.github/workflows/ci-build-artifacts-testbox.yml b/.github/workflows/ci-build-artifacts-testbox.yml index f01271bde66f..e73594ed12f0 100644 --- a/.github/workflows/ci-build-artifacts-testbox.yml +++ b/.github/workflows/ci-build-artifacts-testbox.yml @@ -27,7 +27,7 @@ jobs: permissions: contents: read name: "build-artifacts" - runs-on: blacksmith-8vcpu-ubuntu-2404 + runs-on: blacksmith-16vcpu-ubuntu-2404 timeout-minutes: 35 steps: - name: Begin Testbox @@ -156,7 +156,7 @@ jobs: - name: Build dist on cache miss if: steps.dist-cache.outputs.cache-hit != 'true' env: - NODE_OPTIONS: --max-old-space-size=12288 + NODE_OPTIONS: --max-old-space-size=16384 run: pnpm build:ci-artifacts - name: Build Control UI on cache miss diff --git a/docs/ci.md b/docs/ci.md index 0f07f8209089..e3a95ee530f1 100644 --- a/docs/ci.md +++ b/docs/ci.md @@ -138,7 +138,7 @@ gh workflow run full-release-validation.yml --ref main -f ref= | `ubuntu-24.04` | Manual CI dispatch and non-canonical repository fallbacks, CodeQL JavaScript/actions quality scans, workflow-sanity, labeler, auto-response, docs workflows outside CI, and install-smoke preflight so the Blacksmith matrix can queue earlier | | `blacksmith-4vcpu-ubuntu-2404` | `preflight`, `security-fast`, lower-weight extension shards, `checks-fast-core` except QA Smoke CI, plugin/channel contract shards, most bundled/lower-weight Linux Node shards, `check-guards`, `check-prod-types`, `check-test-types`, selected `check-additional-*` shards, and `check-dependencies` | | `blacksmith-8vcpu-ubuntu-2404` | Retained heavy Linux Node suites, boundary/extension-heavy `check-additional-*` shards, and `android` | -| `blacksmith-16vcpu-ubuntu-2404` | QA Smoke CI, `build-artifacts`, `check-lint` (CPU-sensitive enough that 8 vCPU cost more than they saved); install-smoke Docker builds (32-vCPU queue time cost more than it saved) | +| `blacksmith-16vcpu-ubuntu-2404` | QA Smoke CI, `build-artifacts` in CI and Testbox, `check-lint` (CPU-sensitive enough that 8 vCPU cost more than they saved); install-smoke Docker builds (32-vCPU queue time cost more than it saved) | | `blacksmith-8vcpu-windows-2025` | `checks-windows` | | `blacksmith-6vcpu-macos-15` | `macos-node` on `openclaw/openclaw`; forks fall back to `macos-15` | | `blacksmith-12vcpu-macos-26` | `macos-swift` and `ios-build` on `openclaw/openclaw`; forks fall back to `macos-26` | diff --git a/test/scripts/ci-workflow-guards.test.ts b/test/scripts/ci-workflow-guards.test.ts index 3cdb730154fe..9c6b511c78ad 100644 --- a/test/scripts/ci-workflow-guards.test.ts +++ b/test/scripts/ci-workflow-guards.test.ts @@ -16,6 +16,10 @@ function readCiWorkflow() { return parse(readFileSync(".github/workflows/ci.yml", "utf8")); } +function readBuildArtifactsTestboxWorkflow() { + return parse(readFileSync(".github/workflows/ci-build-artifacts-testbox.yml", "utf8")); +} + function readWorkflowSanityWorkflow() { return parse(readFileSync(".github/workflows/workflow-sanity.yml", "utf8")); } @@ -287,10 +291,19 @@ describe("ci workflow guards", () => { it("uses bundled Node shards and telemetry-backed runner sizes", () => { const workflow = readCiWorkflow(); + const buildArtifactsTestbox = readBuildArtifactsTestboxWorkflow(); const source = readFileSync(".github/workflows/ci.yml", "utf8"); expect(source).toContain("createNodeTestShardBundles"); expect(workflow.jobs["build-artifacts"]["runs-on"]).toContain("blacksmith-16vcpu-ubuntu-2404"); + expect(buildArtifactsTestbox.jobs["build-artifacts"]["runs-on"]).toBe( + "blacksmith-16vcpu-ubuntu-2404", + ); + expect( + buildArtifactsTestbox.jobs["build-artifacts"].steps.find( + (step: { name?: string }) => step.name === "Build dist on cache miss", + ).env.NODE_OPTIONS, + ).toBe("--max-old-space-size=16384"); expect(workflow.jobs["checks-node-core-test-nondist-shard"]["runs-on"]).toContain( "blacksmith-4vcpu-ubuntu-2404", );