Skip to content

Commit 3795290

Browse files
authored
perf(ci): move the three light-run pole jobs to 32 vCPU runners (#109695)
* perf(ci): move the three light-run pole jobs to 32 vCPU runners check-lint (~186s oxlint shards), check-dependencies (~157s concurrent knip), and build-artifacts (~126s tsdown+checks) are the critical path of every light PR run; all three parallelize with cores at similar billed core-minutes. Guard test updated. * test: align prerelease-plan guard with the 32 vCPU check-dependencies row
1 parent 8fa4867 commit 3795290

3 files changed

Lines changed: 11 additions & 6 deletions

File tree

.github/workflows/ci.yml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -992,7 +992,10 @@ jobs:
992992
contents: read
993993
needs: [preflight]
994994
if: needs.preflight.outputs.run_build_artifacts == 'true'
995-
runs-on: ${{ github.event_name == 'workflow_dispatch' && 'ubuntu-24.04' || (github.repository == 'openclaw/openclaw' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == 'openclaw/openclaw') && 'blacksmith-16vcpu-ubuntu-2404' || 'ubuntu-24.04') }}
995+
# 32 vCPU: the dist build sits on the light-run critical path alongside
996+
# check-lint/check-dependencies; tsdown parallelizes across the extra
997+
# cores for roughly the same billed core-minutes.
998+
runs-on: ${{ github.event_name == 'workflow_dispatch' && 'ubuntu-24.04' || (github.repository == 'openclaw/openclaw' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == 'openclaw/openclaw') && 'blacksmith-32vcpu-ubuntu-2404' || 'ubuntu-24.04') }}
996999
timeout-minutes: 20
9971000
outputs:
9981001
channels-result: ${{ steps.built_artifact_checks.outputs['channels-result'] }}
@@ -1902,12 +1905,14 @@ jobs:
19021905
runner: blacksmith-4vcpu-ubuntu-2404
19031906
- check_name: check-lint
19041907
task: lint
1905-
runner: blacksmith-16vcpu-ubuntu-2404
1908+
# Top light-run pole (~186s of shard work); oxlint shard
1909+
# concurrency scales with cores at similar billed core-minutes.
1910+
runner: blacksmith-32vcpu-ubuntu-2404
19061911
- check_name: check-dependencies
19071912
task: dependencies
19081913
# Concurrent Knip scans need cores and memory headroom; the wall
19091914
# clock roughly halves for similar billed core-minutes.
1910-
runner: blacksmith-16vcpu-ubuntu-2404
1915+
runner: blacksmith-32vcpu-ubuntu-2404
19111916
- check_name: check-test-types
19121917
task: test-types
19131918
# Slowest static lane (~3.5min on 4 vCPU); extra cores shorten the

test/scripts/ci-workflow-guards.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2186,7 +2186,7 @@ describe("ci workflow guards", () => {
21862186
const source = readFileSync(".github/workflows/ci.yml", "utf8");
21872187

21882188
expect(source).toContain("createNodeTestShardBundles");
2189-
expect(workflow.jobs["build-artifacts"]["runs-on"]).toContain("blacksmith-16vcpu-ubuntu-2404");
2189+
expect(workflow.jobs["build-artifacts"]["runs-on"]).toContain("blacksmith-32vcpu-ubuntu-2404");
21902190
expect(buildArtifactsTestbox.jobs["build-artifacts"]["runs-on"]).toBe(
21912191
"blacksmith-16vcpu-ubuntu-2404",
21922192
);
@@ -2202,7 +2202,7 @@ describe("ci workflow guards", () => {
22022202
check_name: "check-dependencies",
22032203
task: "dependencies",
22042204
// Concurrent Knip scans need cores and memory headroom.
2205-
runner: "blacksmith-16vcpu-ubuntu-2404",
2205+
runner: "blacksmith-32vcpu-ubuntu-2404",
22062206
});
22072207
expect(workflow.jobs["check-additional-shard"]["runs-on"]).toContain("matrix.runner");
22082208
expect(workflow.jobs["check-additional-shard"].strategy.matrix.include).toContainEqual({

test/scripts/plugin-prerelease-test-plan.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -414,7 +414,7 @@ describe("scripts/lib/plugin-prerelease-test-plan.mjs", () => {
414414
check_name: "check-dependencies",
415415
task: "dependencies",
416416
// Concurrent Knip scans need cores and memory headroom.
417-
runner: "blacksmith-16vcpu-ubuntu-2404",
417+
runner: "blacksmith-32vcpu-ubuntu-2404",
418418
});
419419
expect(
420420
workflow.jobs["check-shard"].steps.find(

0 commit comments

Comments
 (0)