diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 31d1b2f67fe..69c2ba20e2e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -215,7 +215,31 @@ jobs: requires_dist: shard.requiresDist, })) : []; - const nodeTestNonDistShards = nodeTestShards.filter((shard) => !shard.requires_dist); + const blacksmith8vcpuCoreShardNames = new Set([ + "agentic-agents", + "core-runtime-infra", + "core-runtime-media-ui", + ]); + const blacksmith4vcpuCoreShardNames = new Set([ + "agentic-plugin-sdk", + "agentic-plugins", + ]); + const resolveCoreShardRunner = (shardName) => { + if (!isCanonicalRepository) return "ubuntu-24.04"; + if (blacksmith8vcpuCoreShardNames.has(shardName)) { + return "blacksmith-8vcpu-ubuntu-2404"; + } + if (blacksmith4vcpuCoreShardNames.has(shardName)) { + return "blacksmith-4vcpu-ubuntu-2404"; + } + return "ubuntu-24.04"; + }; + const nodeTestNonDistShards = nodeTestShards + .filter((shard) => !shard.requires_dist) + .map((shard) => ({ + ...shard, + runner: resolveCoreShardRunner(shard.shard_name), + })); const nodeTestDistShards = nodeTestShards.filter((shard) => shard.requires_dist); const manifest = { @@ -1118,10 +1142,7 @@ jobs: name: ${{ matrix.check_name }} needs: [preflight] if: needs.preflight.outputs.run_checks_node_core_nondist == 'true' - # Keep core shards on GitHub-hosted runners. The Blacksmith pool is already - # occupied by build and extension shards; queueing these shards there hides - # actual test-speed improvements behind runner wait time. - runs-on: ubuntu-24.04 + runs-on: ${{ github.repository == 'openclaw/openclaw' && matrix.runner || 'ubuntu-24.04' }} timeout-minutes: 60 strategy: fail-fast: false @@ -1506,7 +1527,7 @@ jobs: name: ${{ matrix.check_name }} needs: [preflight] if: ${{ !cancelled() && always() && needs.preflight.outputs.run_check_additional == 'true' }} - runs-on: ubuntu-24.04 + runs-on: ${{ github.repository == 'openclaw/openclaw' && matrix.runner || 'ubuntu-24.04' }} timeout-minutes: 20 strategy: fail-fast: false @@ -1514,14 +1535,19 @@ jobs: include: - check_name: check-additional-boundaries group: boundaries + runner: ubuntu-24.04 - check_name: check-additional-extension-channels group: extension-channels + runner: ubuntu-24.04 - check_name: check-additional-extension-bundled group: extension-bundled + runner: blacksmith-4vcpu-ubuntu-2404 - check_name: check-additional-extension-package-boundary group: extension-package-boundary + runner: blacksmith-8vcpu-ubuntu-2404 - check_name: check-additional-runtime-topology-architecture group: runtime-topology-architecture + runner: ubuntu-24.04 steps: - name: Checkout shell: bash