From 83fb90cb6e004e86c58d72ce4da7a1bb9b79cfc4 Mon Sep 17 00:00:00 2001 From: Chris Date: Tue, 20 Oct 2026 00:28:24 +0900 Subject: [PATCH] ci: move API-only and summary jobs to hosted runners (#8707) Apply the placement rule in .github/workflows/README.md to the 22 jobs still on sm-standard-2 that only call APIs, read workflow metadata, print summaries or scan published images, including cla.yml, the busiest workflow. Moving the ODM cloud-source lane also stops it restoring the ci-odm-interop key across images, since its writer already runs on ubuntu-latest; targets-live gets a -hosted cache key for the same reason. --- .github/workflows/build.yml | 8 ++++---- .github/workflows/cla.yml | 4 ++-- .github/workflows/docker.yml | 6 +++--- .github/workflows/e2e-s3tests.yml | 2 +- .github/workflows/fuzz.yml | 2 +- .github/workflows/helm-package.yml | 4 ++-- .github/workflows/issue-translator.yml | 2 +- .github/workflows/nightly-gnu.yml | 2 +- .github/workflows/nix-flake-update.yml | 2 +- .github/workflows/nix.yml | 2 +- .github/workflows/on-demand-migration-interop.yml | 2 +- .github/workflows/schedule-failure-alert-drill.yml | 2 +- .github/workflows/stale.yml | 2 +- .github/workflows/star-history.yml | 2 +- .github/workflows/targets-integration.yml | 4 ++-- 15 files changed, 23 insertions(+), 23 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 180c98555..41941fbcf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -80,7 +80,7 @@ jobs: # Build strategy check - determine build type based on trigger build-check: name: Build Strategy Check - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 30 outputs: should_build: ${{ steps.check.outputs.should_build }} @@ -159,7 +159,7 @@ jobs: prepare-platform-matrix: name: Prepare Platform Matrix needs: build-check - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 30 outputs: matrix: ${{ steps.select.outputs.matrix }} @@ -830,7 +830,7 @@ jobs: name: Build Summary needs: [ build-check, build-rustfs ] if: always() && needs.build-check.outputs.should_build == 'true' - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Build completion summary @@ -1019,7 +1019,7 @@ jobs: name: Update Latest Version needs: [ build-check, publish-release ] if: needs.build-check.outputs.should_publish == 'true' && startsWith(github.ref, 'refs/tags/') && (needs.build-check.outputs.build_type == 'release' || needs.build-check.outputs.build_type == 'prerelease') - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 30 steps: - name: Update latest.json diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index 13158d288..12ca8a533 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -46,7 +46,7 @@ jobs: # Echoes one line; the run exists only so the concurrency group cancels the # in-flight run of a closed PR. permissions: {} - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Explain cancellation run @@ -61,7 +61,7 @@ jobs: checks: write issues: write pull-requests: write - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 30 steps: - name: Report CLA result for merge queue diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index af44d5e35..44cd477a5 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -83,7 +83,7 @@ jobs: (github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'push' && github.event.workflow_run.head_branch != 'main') - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 30 outputs: should_build: ${{ steps.check.outputs.should_build }} @@ -501,7 +501,7 @@ jobs: name: Scan Docker Images needs: [ build-check, build-docker ] if: needs.build-check.outputs.should_build == 'true' && needs.build-check.outputs.should_push == 'true' - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 30 permissions: contents: read @@ -556,7 +556,7 @@ jobs: name: Docker Build Summary needs: [ build-check, build-docker ] if: always() && needs.build-check.outputs.should_build == 'true' - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Docker build completion summary diff --git a/.github/workflows/e2e-s3tests.yml b/.github/workflows/e2e-s3tests.yml index 37a678273..6c0416815 100644 --- a/.github/workflows/e2e-s3tests.yml +++ b/.github/workflows/e2e-s3tests.yml @@ -371,7 +371,7 @@ jobs: name: Upstream HEAD classification canary if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' continue-on-error: true - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 20 steps: - uses: actions/checkout@f548e57e544e1ff5a4c46bf1e1b8685f8e4a348a # v7 diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml index 55d513445..c9c555471 100644 --- a/.github/workflows/fuzz.yml +++ b/.github/workflows/fuzz.yml @@ -60,7 +60,7 @@ jobs: cancel-closed-pr-runs: name: Cancel Closed PR Runs if: github.event_name == 'pull_request' && github.event.action == 'closed' - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Explain cancellation run diff --git a/.github/workflows/helm-package.yml b/.github/workflows/helm-package.yml index 079e37f22..a42925cff 100644 --- a/.github/workflows/helm-package.yml +++ b/.github/workflows/helm-package.yml @@ -31,7 +31,7 @@ permissions: jobs: build-helm-package: - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 30 if: | (github.event_name == 'workflow_dispatch' && !contains(github.event.inputs.version, '-preview')) || @@ -166,7 +166,7 @@ jobs: retention-days: 1 publish-helm-package: - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 30 needs: [ build-helm-package ] if: needs.build-helm-package.result == 'success' diff --git a/.github/workflows/issue-translator.yml b/.github/workflows/issue-translator.yml index 8a48906e2..04a57563d 100644 --- a/.github/workflows/issue-translator.yml +++ b/.github/workflows/issue-translator.yml @@ -32,7 +32,7 @@ permissions: jobs: build: - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: usthe/issues-translate-action@b41f55ddc81d7d54bd542a4f289fe28ec081898e # v2.7 diff --git a/.github/workflows/nightly-gnu.yml b/.github/workflows/nightly-gnu.yml index 3f72a6311..dc2394b1e 100644 --- a/.github/workflows/nightly-gnu.yml +++ b/.github/workflows/nightly-gnu.yml @@ -45,7 +45,7 @@ jobs: resolve-source: if: github.repository == 'rustfs/rustfs' name: Resolve nightly source - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 10 outputs: source_sha: ${{ steps.source.outputs.sha }} diff --git a/.github/workflows/nix-flake-update.yml b/.github/workflows/nix-flake-update.yml index 06e22797b..726b2fcfe 100644 --- a/.github/workflows/nix-flake-update.yml +++ b/.github/workflows/nix-flake-update.yml @@ -34,7 +34,7 @@ jobs: update-flake: if: github.repository == 'rustfs/rustfs' name: Update flake.lock - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 90 env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml index 42e2644f0..ca532aff3 100644 --- a/.github/workflows/nix.yml +++ b/.github/workflows/nix.yml @@ -54,7 +54,7 @@ jobs: cancel-closed-pr-runs: name: Cancel Closed PR Runs if: github.event_name == 'pull_request' && github.event.action == 'closed' - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 10 steps: - name: Explain cancellation run diff --git a/.github/workflows/on-demand-migration-interop.yml b/.github/workflows/on-demand-migration-interop.yml index 172607285..2e1b95e73 100644 --- a/.github/workflows/on-demand-migration-interop.yml +++ b/.github/workflows/on-demand-migration-interop.yml @@ -186,7 +186,7 @@ jobs: cloud-source: name: ${{ matrix.provider }} source (three-case minimum) if: github.repository == 'rustfs/rustfs' - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 45 strategy: fail-fast: false diff --git a/.github/workflows/schedule-failure-alert-drill.yml b/.github/workflows/schedule-failure-alert-drill.yml index 735806e3a..17cf13058 100644 --- a/.github/workflows/schedule-failure-alert-drill.yml +++ b/.github/workflows/schedule-failure-alert-drill.yml @@ -44,7 +44,7 @@ permissions: jobs: forced-failure: name: Forced failure - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 5 steps: - name: Fail on purpose diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index f25e696d9..307ec3855 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -27,7 +27,7 @@ on: jobs: stale: if: github.repository == 'rustfs/rustfs' - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 30 steps: - uses: actions/stale@4391f3da665fdf50b6810c1a66712fb9ba21aa93 # v11.0.0 diff --git a/.github/workflows/star-history.yml b/.github/workflows/star-history.yml index e7880bc96..37b342702 100644 --- a/.github/workflows/star-history.yml +++ b/.github/workflows/star-history.yml @@ -15,7 +15,7 @@ concurrency: jobs: update: if: github.repository == 'rustfs/rustfs' - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: overtrue/repo-visuals-action@ee2c632f6ce617e851fb46ea935ee8af762ebb93 # v1.4.0 diff --git a/.github/workflows/targets-integration.yml b/.github/workflows/targets-integration.yml index 6a0d8ac20..e2fb6740e 100644 --- a/.github/workflows/targets-integration.yml +++ b/.github/workflows/targets-integration.yml @@ -42,7 +42,7 @@ jobs: targets-live: if: github.repository == 'rustfs/rustfs' name: PostgreSQL, MySQL, AMQP, and NATS - runs-on: sm-standard-2 + runs-on: ubuntu-latest timeout-minutes: 90 env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" @@ -60,7 +60,7 @@ jobs: - name: Setup Rust environment uses: ./.github/actions/setup with: - cache-shared-key: targets-live-lane + cache-shared-key: targets-live-lane-hosted cache-save-if: ${{ github.ref == 'refs/heads/main' || github.event_name == 'schedule' }} install-build-packaging-tools: 'false' install-test-tools: 'false'