diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0a64047a240..5808cda9528 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,7 +28,7 @@ permissions: concurrency: group: ${{ github.event_name == 'workflow_dispatch' && format('{0}-manual-v1-{1}', github.workflow, github.run_id) || (github.event_name == 'pull_request' && format('{0}-v7-{1}', github.workflow, github.event.pull_request.number) || (github.repository == 'openclaw/openclaw' && format('{0}-v7-{1}', github.workflow, github.ref) || format('{0}-v7-{1}-{2}', github.workflow, github.ref, github.sha))) }} - cancel-in-progress: ${{ github.event_name == 'pull_request' }} + cancel-in-progress: ${{ github.event_name == 'pull_request' || (github.event_name == 'push' && github.repository == 'openclaw/openclaw' && github.ref == 'refs/heads/main') }} env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" @@ -466,8 +466,8 @@ jobs: - name: Audit production dependencies run: node scripts/pre-commit/pnpm-audit-prod.mjs --audit-level=high - # Warm the lockfile- and pnpm-pinned store once before Linux Node shards fan out. - # On a cold key this job owns the save, so later shards restore the exact key. + # Warm the lockfile- and pnpm-pinned store without blocking Linux Node shards. + # On a cold key this job owns the save for later workflow runs. pnpm-store-warmup: permissions: contents: read @@ -532,9 +532,9 @@ jobs: build-artifacts: permissions: contents: read - needs: [preflight, pnpm-store-warmup] + needs: [preflight] if: needs.preflight.outputs.run_build_artifacts == 'true' - runs-on: ${{ github.event_name == 'workflow_dispatch' && 'ubuntu-24.04' || (github.repository == 'openclaw/openclaw' && 'blacksmith-16vcpu-ubuntu-2404' || 'ubuntu-24.04') }} + runs-on: ${{ github.event_name == 'workflow_dispatch' && 'ubuntu-24.04' || (github.repository == 'openclaw/openclaw' && 'blacksmith-32vcpu-ubuntu-2404' || 'ubuntu-24.04') }} timeout-minutes: 20 outputs: channels-result: ${{ steps.built_artifact_checks.outputs['channels-result'] }} @@ -763,7 +763,7 @@ jobs: permissions: contents: read name: ${{ matrix.check_name }} - needs: [preflight, pnpm-store-warmup] + needs: [preflight] if: needs.preflight.outputs.run_checks_fast_core == 'true' runs-on: ${{ github.event_name == 'workflow_dispatch' && 'ubuntu-24.04' || (github.repository == 'openclaw/openclaw' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-24.04') }} timeout-minutes: 60 @@ -852,7 +852,7 @@ jobs: permissions: contents: read name: ${{ matrix.checkName }} - needs: [preflight, pnpm-store-warmup] + needs: [preflight] if: needs.preflight.outputs.run_plugin_contracts_shards == 'true' runs-on: ${{ github.event_name == 'workflow_dispatch' && 'ubuntu-24.04' || (github.repository == 'openclaw/openclaw' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-24.04') }} timeout-minutes: 60 @@ -932,7 +932,7 @@ jobs: permissions: contents: read name: ${{ matrix.checkName }} - needs: [preflight, pnpm-store-warmup] + needs: [preflight] if: needs.preflight.outputs.run_checks_fast == 'true' runs-on: ${{ github.event_name == 'workflow_dispatch' && 'ubuntu-24.04' || (github.repository == 'openclaw/openclaw' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-24.04') }} timeout-minutes: 60 @@ -1084,7 +1084,7 @@ jobs: permissions: contents: read name: ${{ matrix.check_name }} - needs: [preflight, pnpm-store-warmup] + needs: [preflight] if: needs.preflight.outputs.run_checks_node_core_nondist == 'true' runs-on: ${{ github.event_name == 'workflow_dispatch' && 'ubuntu-24.04' || (github.repository == 'openclaw/openclaw' && (matrix.runner || 'blacksmith-8vcpu-ubuntu-2404') || 'ubuntu-24.04') }} timeout-minutes: 60 @@ -1190,8 +1190,8 @@ jobs: permissions: contents: read name: ${{ matrix.check_name }} - needs: [preflight, pnpm-store-warmup] - if: ${{ !cancelled() && always() && needs.preflight.outputs.run_check == 'true' && needs.pnpm-store-warmup.result == 'success' }} + needs: [preflight] + if: ${{ !cancelled() && always() && needs.preflight.outputs.run_check == 'true' }} runs-on: ${{ github.event_name == 'workflow_dispatch' && 'ubuntu-24.04' || (github.repository == 'openclaw/openclaw' && (matrix.runner || 'blacksmith-4vcpu-ubuntu-2404') || 'ubuntu-24.04') }} timeout-minutes: 20 strategy: @@ -1321,8 +1321,8 @@ jobs: permissions: contents: read name: ${{ matrix.check_name }} - needs: [preflight, pnpm-store-warmup] - if: ${{ !cancelled() && always() && needs.preflight.outputs.run_check_additional == 'true' && needs.pnpm-store-warmup.result == 'success' }} + needs: [preflight] + if: ${{ !cancelled() && always() && needs.preflight.outputs.run_check_additional == 'true' }} runs-on: ${{ github.event_name == 'workflow_dispatch' && 'ubuntu-24.04' || (github.repository == 'openclaw/openclaw' && 'blacksmith-8vcpu-ubuntu-2404' || 'ubuntu-24.04') }} timeout-minutes: 20 strategy: @@ -1488,7 +1488,7 @@ jobs: check-docs: permissions: contents: read - needs: [preflight, pnpm-store-warmup] + needs: [preflight] if: needs.preflight.outputs.run_check_docs == 'true' runs-on: ${{ github.event_name == 'workflow_dispatch' && 'ubuntu-24.04' || (github.repository == 'openclaw/openclaw' && 'blacksmith-4vcpu-ubuntu-2404' || 'ubuntu-24.04') }} timeout-minutes: 20 @@ -2113,7 +2113,7 @@ jobs: - macos-node - macos-swift - android - if: ${{ !cancelled() && always() && (github.event_name != 'pull_request' || !github.event.pull_request.draft) }} + if: ${{ !cancelled() && always() && github.event_name != 'push' && (github.event_name != 'pull_request' || !github.event.pull_request.draft) }} runs-on: ubuntu-24.04 timeout-minutes: 5 steps: