diff --git a/.github/workflows/architecture-migration-rules.yml b/.github/workflows/architecture-migration-rules.yml index 37d1969b0..e71459a4b 100644 --- a/.github/workflows/architecture-migration-rules.yml +++ b/.github/workflows/architecture-migration-rules.yml @@ -36,7 +36,7 @@ jobs: cancel-closed-pr-runs: name: Cancel Closed PR Runs if: github.event_name == 'pull_request' && github.event.action == 'closed' - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 steps: - name: Explain cancellation run @@ -45,7 +45,7 @@ jobs: architecture-migration-rules: name: Architecture Migration Rules if: github.event_name != 'pull_request' || github.event.action != 'closed' - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 steps: - uses: actions/checkout@f548e57e544e1ff5a4c46bf1e1b8685f8e4a348a # v7 diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml index baa256962..3c4f371aa 100644 --- a/.github/workflows/audit.yml +++ b/.github/workflows/audit.yml @@ -77,7 +77,7 @@ jobs: cancel-closed-pr-runs: name: Cancel Closed PR Runs if: github.event_name == 'pull_request' && github.event.action == 'closed' - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 steps: - name: Explain cancellation run @@ -89,7 +89,7 @@ jobs: cargo-deny: name: Cargo Deny if: github.event_name != 'pull_request' || github.event.action != 'closed' - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 20 steps: - name: Checkout repository @@ -132,7 +132,7 @@ jobs: workflow-pin-report: name: Workflow Pin Report if: github.event_name != 'pull_request' || github.event.action != 'closed' - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 5 steps: - name: Checkout repository @@ -169,7 +169,7 @@ jobs: dependency-review: name: Dependency Review - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 30 if: github.event_name == 'pull_request' && github.event.action != 'closed' permissions: @@ -204,7 +204,7 @@ jobs: # open the Actions tab. Same ci-8 mechanism coverage.yml and # e2e-replication-nightly.yml already use. if: always() && github.event_name == 'schedule' && contains(needs.*.result, 'failure') - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 permissions: contents: read diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 555d11167..a8318aca6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -88,7 +88,7 @@ jobs: # Build strategy check - determine build type based on trigger build-check: name: Build Strategy Check - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 30 outputs: should_build: ${{ steps.check.outputs.should_build }} @@ -172,7 +172,7 @@ jobs: prepare-platform-matrix: name: Prepare Platform Matrix needs: build-check - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 30 outputs: matrix: ${{ steps.select.outputs.matrix }} @@ -770,7 +770,7 @@ jobs: name: Build Summary needs: [ build-check, build-rustfs ] if: always() && needs.build-check.outputs.should_build == 'true' - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 steps: - name: Build completion summary @@ -831,7 +831,7 @@ jobs: name: Create GitHub Release needs: [ build-check, build-rustfs ] if: startsWith(github.ref, 'refs/tags/') && (needs.build-check.outputs.build_type == 'preview' || needs.build-check.outputs.build_type == 'release' || needs.build-check.outputs.build_type == 'prerelease') - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 30 permissions: contents: write @@ -892,7 +892,7 @@ jobs: name: Upload Release Assets needs: [ build-check, build-rustfs, create-release ] if: startsWith(github.ref, 'refs/tags/') && (needs.build-check.outputs.build_type == 'preview' || needs.build-check.outputs.build_type == 'release' || needs.build-check.outputs.build_type == 'prerelease') - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 30 permissions: contents: write @@ -986,7 +986,7 @@ jobs: name: Update Latest Version needs: [ build-check, publish-release ] if: startsWith(github.ref, 'refs/tags/') && (needs.build-check.outputs.build_type == 'release' || needs.build-check.outputs.build_type == 'prerelease') - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 30 steps: - name: Update latest.json @@ -1046,7 +1046,7 @@ jobs: name: Publish Release needs: [ build-check, create-release, upload-release-assets ] if: startsWith(github.ref, 'refs/tags/') && (needs.build-check.outputs.build_type == 'preview' || needs.build-check.outputs.build_type == 'release' || needs.build-check.outputs.build_type == 'prerelease') - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 30 permissions: contents: write @@ -1084,7 +1084,7 @@ jobs: name: Cleanup Preview Releases needs: [ build-check, publish-release ] if: startsWith(github.ref, 'refs/tags/') && (needs.build-check.outputs.build_type == 'release' || needs.build-check.outputs.build_type == 'prerelease') - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 30 permissions: contents: write @@ -1132,7 +1132,7 @@ jobs: if: >- always() && github.event_name == 'schedule' && (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 permissions: contents: read diff --git a/.github/workflows/cache-warm.yml b/.github/workflows/cache-warm.yml index ee4df652e..0ef180908 100644 --- a/.github/workflows/cache-warm.yml +++ b/.github/workflows/cache-warm.yml @@ -256,7 +256,7 @@ jobs: # belonged to it. warm-ci-uring: name: Warm ci-uring - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 60 steps: - name: Checkout repository diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ad4b0ab0b..dbc2b7dd5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -63,7 +63,7 @@ jobs: cancel-closed-pr-runs: name: Cancel Closed PR Runs if: github.event_name == 'pull_request' && github.event.action == 'closed' - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 steps: - name: Explain cancellation run @@ -72,7 +72,7 @@ jobs: classify-changes: name: Select CI scope if: github.event_name != 'pull_request' || github.event.action != 'closed' - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 outputs: mode: ${{ steps.scope.outputs.mode }} @@ -98,7 +98,7 @@ jobs: typos: name: Typos if: github.event_name != 'pull_request' || github.event.action != 'closed' - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 steps: - uses: actions/checkout@f548e57e544e1ff5a4c46bf1e1b8685f8e4a348a # v7 @@ -111,7 +111,7 @@ jobs: quick-checks: name: Quick Checks if: github.event_name != 'pull_request' || github.event.action != 'closed' - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 steps: - name: Checkout repository @@ -686,7 +686,7 @@ jobs: # the probe succeeds and the tests exercise the real UringBackend/FdCache/ # latch paths instead of the StdBackend fallback (rustfs/backlog#1179). The # self-hosted sm-standard runners cannot guarantee this. - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 30 steps: - name: Checkout repository @@ -1230,7 +1230,7 @@ jobs: - build-rustfs-debug-binary-rio-v2 - e2e-tests-rio-v2 - e2e-full - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 steps: - uses: actions/checkout@f548e57e544e1ff5a4c46bf1e1b8685f8e4a348a # v7 @@ -1266,7 +1266,7 @@ jobs: if: >- always() && github.event_name == 'schedule' && (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 permissions: contents: read diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index 12ca8a533..13158d288 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: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 steps: - name: Explain cancellation run @@ -61,7 +61,7 @@ jobs: checks: write issues: write pull-requests: write - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 30 steps: - name: Report CLA result for merge queue diff --git a/.github/workflows/connect-diagnostic-schedule-acceptance.yml b/.github/workflows/connect-diagnostic-schedule-acceptance.yml index f13161755..47ac21ada 100644 --- a/.github/workflows/connect-diagnostic-schedule-acceptance.yml +++ b/.github/workflows/connect-diagnostic-schedule-acceptance.yml @@ -38,7 +38,7 @@ permissions: jobs: diagnostic-schedule: name: Verify production scheduler receipts over mTLS - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 45 steps: - name: Checkout exact RustFS source diff --git a/.github/workflows/connect-performance-drive-acceptance.yml b/.github/workflows/connect-performance-drive-acceptance.yml index 7b96ef7d8..67d051fe6 100644 --- a/.github/workflows/connect-performance-drive-acceptance.yml +++ b/.github/workflows/connect-performance-drive-acceptance.yml @@ -49,7 +49,7 @@ permissions: jobs: performance-drive: name: Verify native Linux x86_64 performance.drive service job - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 45 steps: - name: Checkout acceptance harness diff --git a/.github/workflows/connect-performance-network-acceptance.yml b/.github/workflows/connect-performance-network-acceptance.yml index 5d8b561d6..39dbb16db 100644 --- a/.github/workflows/connect-performance-network-acceptance.yml +++ b/.github/workflows/connect-performance-network-acceptance.yml @@ -49,7 +49,7 @@ permissions: jobs: performance-network: name: Verify native Linux x86_64 performance.network service job - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 45 steps: - name: Checkout acceptance harness diff --git a/.github/workflows/connect-profile-cpu-acceptance.yml b/.github/workflows/connect-profile-cpu-acceptance.yml index 93b2dfe61..27bd509ea 100644 --- a/.github/workflows/connect-profile-cpu-acceptance.yml +++ b/.github/workflows/connect-profile-cpu-acceptance.yml @@ -49,7 +49,7 @@ permissions: jobs: profile-cpu: name: Verify native Linux x86_64 profile.cpu service job - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 45 steps: - name: Checkout acceptance harness diff --git a/.github/workflows/connect-profile-memory-acceptance.yml b/.github/workflows/connect-profile-memory-acceptance.yml index 2070f2069..6d7950685 100644 --- a/.github/workflows/connect-profile-memory-acceptance.yml +++ b/.github/workflows/connect-profile-memory-acceptance.yml @@ -38,7 +38,7 @@ permissions: jobs: profile-memory: name: Verify signed service memory profile over mTLS - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 45 steps: - name: Checkout exact RustFS source diff --git a/.github/workflows/connect-profile-threads-acceptance.yml b/.github/workflows/connect-profile-threads-acceptance.yml index a028a1e81..0aca0893d 100644 --- a/.github/workflows/connect-profile-threads-acceptance.yml +++ b/.github/workflows/connect-profile-threads-acceptance.yml @@ -49,7 +49,7 @@ permissions: jobs: profile-threads: name: Verify native Linux x86_64 profile.threads service job - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 45 steps: - name: Checkout acceptance harness diff --git a/.github/workflows/connect-top-api-acceptance.yml b/.github/workflows/connect-top-api-acceptance.yml index 2d9e277f7..d343e193b 100644 --- a/.github/workflows/connect-top-api-acceptance.yml +++ b/.github/workflows/connect-top-api-acceptance.yml @@ -49,7 +49,7 @@ permissions: jobs: top-api: name: Verify native Linux x86_64 top.api service job - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 45 steps: - name: Checkout acceptance harness diff --git a/.github/workflows/connect-top-disk-acceptance.yml b/.github/workflows/connect-top-disk-acceptance.yml index e0730a342..7843ad0bd 100644 --- a/.github/workflows/connect-top-disk-acceptance.yml +++ b/.github/workflows/connect-top-disk-acceptance.yml @@ -45,7 +45,7 @@ permissions: jobs: top-disk: name: Verify native Linux x86_64 top.disk artifact - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 15 steps: - name: Checkout acceptance harness diff --git a/.github/workflows/connect-top-locks-acceptance.yml b/.github/workflows/connect-top-locks-acceptance.yml index 0c5fc317e..f2fe94091 100644 --- a/.github/workflows/connect-top-locks-acceptance.yml +++ b/.github/workflows/connect-top-locks-acceptance.yml @@ -49,7 +49,7 @@ permissions: jobs: top-locks: name: Verify native Linux x86_64 top.locks service job - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 45 steps: - name: Checkout acceptance harness diff --git a/.github/workflows/connect-top-rpc-acceptance.yml b/.github/workflows/connect-top-rpc-acceptance.yml index ba5887022..b9872e05d 100644 --- a/.github/workflows/connect-top-rpc-acceptance.yml +++ b/.github/workflows/connect-top-rpc-acceptance.yml @@ -49,7 +49,7 @@ permissions: jobs: top-rpc: name: Verify native Linux x86_64 top.rpc service job - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 45 steps: - name: Checkout acceptance harness diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 6ceefefad..2f661dcc6 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -128,7 +128,7 @@ jobs: # manual workflow_dispatch runs stay quiet so a debugging run never files a # spurious alert. if: always() && github.event_name == 'schedule' && contains(needs.*.result, 'failure') - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 permissions: contents: read diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 1908933b7..5235ff438 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: ubuntu-latest + runs-on: sm-standard-2 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: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 30 permissions: contents: read @@ -559,7 +559,7 @@ jobs: name: Sync Docker Hub Description needs: [ build-check, build-docker ] if: needs.build-check.outputs.should_build == 'true' && needs.build-check.outputs.should_push == 'true' - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 steps: - name: Checkout repository @@ -604,7 +604,7 @@ jobs: name: Docker Build Summary needs: [ build-check, build-docker ] if: always() && needs.build-check.outputs.should_build == 'true' - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 steps: - name: Docker build completion summary diff --git a/.github/workflows/e2e-distributed.yml b/.github/workflows/e2e-distributed.yml index 889d84733..b438a20f7 100644 --- a/.github/workflows/e2e-distributed.yml +++ b/.github/workflows/e2e-distributed.yml @@ -80,7 +80,7 @@ jobs: name: Distributed 4-node 4-disk e2e # GitHub-hosted VM: loop and tmpfs mounts work here. sm-standard-4 is an # ARC pod and rejects both (`mount -o loop` ENOENT, tmpfs "read-only"). - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 180 env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" @@ -200,7 +200,7 @@ jobs: name: Alert on scheduled failure needs: [distributed] if: always() && github.event_name == 'schedule' && contains(needs.*.result, 'failure') - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 permissions: contents: read diff --git a/.github/workflows/e2e-replication-nightly.yml b/.github/workflows/e2e-replication-nightly.yml index b2f5b33ba..ed63c21a8 100644 --- a/.github/workflows/e2e-replication-nightly.yml +++ b/.github/workflows/e2e-replication-nightly.yml @@ -230,7 +230,7 @@ jobs: # manual workflow_dispatch runs stay quiet so a debugging run never files a # spurious alert. if: always() && github.event_name == 'schedule' && contains(needs.*.result, 'failure') - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 permissions: contents: read diff --git a/.github/workflows/e2e-s3tests.yml b/.github/workflows/e2e-s3tests.yml index 6c0416815..448b77150 100644 --- a/.github/workflows/e2e-s3tests.yml +++ b/.github/workflows/e2e-s3tests.yml @@ -146,7 +146,7 @@ jobs: # GitHub-hosted: reliably provides Docker + docker compose + python3/pip. # See the header note (ci-1) for why the self-hosted sm-standard-4 label # was abandoned. Scheduled failures are handled by alert-on-failure below. - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 180 strategy: fail-fast: false @@ -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: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 20 steps: - uses: actions/checkout@f548e57e544e1ff5a4c46bf1e1b8685f8e4a348a # v7 @@ -453,7 +453,7 @@ jobs: # job fails. Alerts only for scheduled runs (backlog#1149 ci-8) — manual # dispatch failures are already watched by a human. if: always() && github.event_name == 'schedule' && contains(needs.*.result, 'failure') - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 permissions: contents: read diff --git a/.github/workflows/e2e-upgrade.yml b/.github/workflows/e2e-upgrade.yml index c05f0a40d..59779003e 100644 --- a/.github/workflows/e2e-upgrade.yml +++ b/.github/workflows/e2e-upgrade.yml @@ -90,7 +90,7 @@ jobs: cache_key: e2e-multipart-layout-baseline test: rc5_baseline_replicates_multipart_layouts artifact: multipart-layout-baseline - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 60 env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" diff --git a/.github/workflows/functional-chain-health.yml b/.github/workflows/functional-chain-health.yml index bc1937ebb..f6f4f3bda 100644 --- a/.github/workflows/functional-chain-health.yml +++ b/.github/workflows/functional-chain-health.yml @@ -11,7 +11,7 @@ concurrency: cancel-in-progress: false jobs: collect: - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 15 steps: - uses: actions/checkout@f548e57e544e1ff5a4c46bf1e1b8685f8e4a348a # v7 diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml index 7c73d4b81..0ad25ce1d 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: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 steps: - name: Explain cancellation run @@ -240,7 +240,7 @@ jobs: # job fails. Alerts only for scheduled (nightly) runs (backlog#1149 # ci-8); PR and manual dispatch failures are already watched by a human. if: always() && github.event_name == 'schedule' && contains(needs.*.result, 'failure') - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 permissions: contents: read diff --git a/.github/workflows/helm-package.yml b/.github/workflows/helm-package.yml index fa40dc023..8538f04fd 100644 --- a/.github/workflows/helm-package.yml +++ b/.github/workflows/helm-package.yml @@ -31,7 +31,7 @@ permissions: jobs: build-helm-package: - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 30 if: | (github.event_name == 'workflow_dispatch' && !contains(github.event.inputs.version, '-preview')) || @@ -114,7 +114,7 @@ jobs: retention-days: 1 publish-helm-package: - runs-on: ubuntu-latest + runs-on: sm-standard-2 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 04a57563d..8a48906e2 100644 --- a/.github/workflows/issue-translator.yml +++ b/.github/workflows/issue-translator.yml @@ -32,7 +32,7 @@ permissions: jobs: build: - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 steps: - uses: usthe/issues-translate-action@b41f55ddc81d7d54bd542a4f289fe28ec081898e # v2.7 diff --git a/.github/workflows/minio-interop.yml b/.github/workflows/minio-interop.yml index 9a5315c7c..c6af0b2f2 100644 --- a/.github/workflows/minio-interop.yml +++ b/.github/workflows/minio-interop.yml @@ -62,7 +62,7 @@ jobs: name: MinIO interop (EC + SSE read parity) # Skip on forks: needs the repo's runners and is not a contributor gate. if: github.repository == 'rustfs/rustfs' - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 40 env: # Fixed 32-byte test KMS key baked into the fixture lab; not a secret. @@ -131,7 +131,7 @@ jobs: name: Alert on scheduled failure needs: [minio-interop] if: always() && github.event_name == 'schedule' && contains(needs.*.result, 'failure') - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 permissions: contents: read diff --git a/.github/workflows/mint.yml b/.github/workflows/mint.yml index 87e0de0c9..5849c1de2 100644 --- a/.github/workflows/mint.yml +++ b/.github/workflows/mint.yml @@ -114,7 +114,7 @@ jobs: # label was abandoned (no docker.sock on the pod its only run landed on). # TODO(ci-8): scheduled-failure alerting (auto-open issue on a red weekly # run) is added by the ci-8 composite action; do not implement it here. - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 120 steps: - uses: actions/checkout@f548e57e544e1ff5a4c46bf1e1b8685f8e4a348a # v7 @@ -258,7 +258,7 @@ jobs: # job fails. Alerts only for scheduled runs (backlog#1149 ci-8) — manual # dispatch failures are already watched by a human. if: always() && github.event_name == 'schedule' && contains(needs.*.result, 'failure') - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 permissions: contents: read diff --git a/.github/workflows/nightly-gnu.yml b/.github/workflows/nightly-gnu.yml index f7c1654aa..757539340 100644 --- a/.github/workflows/nightly-gnu.yml +++ b/.github/workflows/nightly-gnu.yml @@ -44,7 +44,7 @@ env: jobs: resolve-source: name: Resolve nightly source - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 outputs: source_sha: ${{ steps.source.outputs.sha }} @@ -366,7 +366,7 @@ jobs: kms-vault-lane: needs: resolve-source name: KMS live Vault lane - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 90 env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" @@ -466,7 +466,7 @@ jobs: kms-vault-ha-failover: needs: resolve-source name: KMS Vault HA failover lane - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 60 env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" @@ -495,7 +495,7 @@ jobs: if: >- always() && github.event_name == 'schedule' && (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 permissions: contents: read diff --git a/.github/workflows/nix-flake-update.yml b/.github/workflows/nix-flake-update.yml index 87b114d96..de674d446 100644 --- a/.github/workflows/nix-flake-update.yml +++ b/.github/workflows/nix-flake-update.yml @@ -33,7 +33,7 @@ concurrency: jobs: update-flake: name: Update flake.lock - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 90 env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml index ed8183232..42e2644f0 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: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 steps: - name: Explain cancellation run @@ -63,7 +63,7 @@ jobs: nix-validation: name: Nix Build & Check if: github.event_name != 'pull_request' || github.event.action != 'closed' - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 60 permissions: contents: read diff --git a/.github/workflows/oidc-keycloak.yml b/.github/workflows/oidc-keycloak.yml index eaa141043..94cbe3f1c 100644 --- a/.github/workflows/oidc-keycloak.yml +++ b/.github/workflows/oidc-keycloak.yml @@ -51,7 +51,7 @@ concurrency: jobs: oidc-keycloak-live: name: OIDC Keycloak live gate - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 60 env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" @@ -95,7 +95,7 @@ jobs: if: >- always() && github.event_name == 'schedule' && (needs.oidc-keycloak-live.result == 'failure' || needs.oidc-keycloak-live.result == 'cancelled') - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 permissions: contents: read diff --git a/.github/workflows/on-demand-migration-interop.yml b/.github/workflows/on-demand-migration-interop.yml index 9c2278283..a4eb9fe4e 100644 --- a/.github/workflows/on-demand-migration-interop.yml +++ b/.github/workflows/on-demand-migration-interop.yml @@ -72,7 +72,7 @@ jobs: # Skip on forks: needs this repository's runners and is not a contributor # gate. if: github.repository == 'rustfs/rustfs' - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 90 env: NO_PROXY: 127.0.0.1,localhost @@ -183,7 +183,7 @@ jobs: cloud-source: name: ${{ matrix.provider }} source (three-case minimum) if: github.repository == 'rustfs/rustfs' - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 45 strategy: fail-fast: false @@ -300,7 +300,7 @@ jobs: if: >- always() && github.event_name == 'schedule' && (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 permissions: contents: read diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index 3cb2ba25e..3dca43f24 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -77,7 +77,7 @@ jobs: (github.event.workflow_run.conclusion == 'success' && github.event.workflow_run.event == 'push' && github.event.workflow_run.head_branch != 'main') - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 outputs: version: ${{ steps.resolve.outputs.version }} @@ -229,7 +229,7 @@ jobs: package: name: Package (${{ matrix.arch }}-${{ matrix.libc }}) needs: resolve - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 30 strategy: fail-fast: false @@ -619,7 +619,7 @@ jobs: name: Summary needs: [ resolve, package ] if: always() - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 5 steps: - name: Print summary diff --git a/.github/workflows/performance-ab.yml b/.github/workflows/performance-ab.yml index d402ca636..886e83674 100644 --- a/.github/workflows/performance-ab.yml +++ b/.github/workflows/performance-ab.yml @@ -366,7 +366,7 @@ jobs: if: >- always() && github.event_name == 'schedule' && (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 permissions: contents: read diff --git a/.github/workflows/runner-hygiene.yml b/.github/workflows/runner-hygiene.yml index 22d797d5f..3bd9b76f4 100644 --- a/.github/workflows/runner-hygiene.yml +++ b/.github/workflows/runner-hygiene.yml @@ -43,7 +43,7 @@ concurrency: jobs: check-ephemerality: name: Check runner ephemerality - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 15 steps: - name: Checkout repository @@ -66,7 +66,7 @@ jobs: # scheduled runs file a tracking issue, manual dispatch stays quiet so # debugging never produces a spurious alert. if: always() && github.event_name == 'schedule' && contains(needs.*.result, 'failure') - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 permissions: contents: read diff --git a/.github/workflows/rustfs-functional-chain.yml b/.github/workflows/rustfs-functional-chain.yml index 3e14e17b2..9885fdb2b 100644 --- a/.github/workflows/rustfs-functional-chain.yml +++ b/.github/workflows/rustfs-functional-chain.yml @@ -42,7 +42,7 @@ concurrency: jobs: prepare: if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.event == 'schedule' }} - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 outputs: manifest: ${{ steps.candidate.outputs.manifest }} @@ -188,7 +188,7 @@ jobs: complete-chain: needs: [prepare, upgrade, s3, kms, tier, storage, heal, pool, security, replication, fault-tolerance, table, performance] if: ${{ always() && needs.prepare.result != 'skipped' }} - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 steps: - uses: actions/checkout@f548e57e544e1ff5a4c46bf1e1b8685f8e4a348a # v7 diff --git a/.github/workflows/rustfs-performance-test.yml b/.github/workflows/rustfs-performance-test.yml index 9c8bb90a0..64e87cfc6 100644 --- a/.github/workflows/rustfs-performance-test.yml +++ b/.github/workflows/rustfs-performance-test.yml @@ -90,7 +90,7 @@ env: jobs: runner-check: if: ${{ inputs.chain_manifest != '' || github.event_name == 'workflow_dispatch' || github.event_name == 'repository_dispatch' }} - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 5 steps: - uses: actions/checkout@f548e57e544e1ff5a4c46bf1e1b8685f8e4a348a # v7 diff --git a/.github/workflows/schedule-failure-alert-drill.yml b/.github/workflows/schedule-failure-alert-drill.yml index 17cf13058..e00d2ddf3 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: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 5 steps: - name: Fail on purpose @@ -58,7 +58,7 @@ jobs: # Mirrors the consumer wiring, minus the schedule-event guard (this # workflow is dispatch-only by design). if: always() && contains(needs.*.result, 'failure') - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 permissions: contents: read diff --git a/.github/workflows/scheduled-validation-freshness.yml b/.github/workflows/scheduled-validation-freshness.yml index 59f891cce..cf9a99d47 100644 --- a/.github/workflows/scheduled-validation-freshness.yml +++ b/.github/workflows/scheduled-validation-freshness.yml @@ -29,6 +29,9 @@ concurrency: jobs: check-freshness: name: Check scheduled validation freshness + # Stay on GitHub-hosted runners: this monitor must keep running when the + # self-hosted sm-standard-* pool is down, which is exactly when the + # scheduled validations it watches stall. runs-on: ubuntu-latest timeout-minutes: 10 permissions: diff --git a/.github/workflows/scheduled-validation-watchdog.yml b/.github/workflows/scheduled-validation-watchdog.yml index 9927e7310..e0092be92 100644 --- a/.github/workflows/scheduled-validation-watchdog.yml +++ b/.github/workflows/scheduled-validation-watchdog.yml @@ -42,6 +42,9 @@ jobs: github.event.workflow_run.event == 'schedule' && github.event.workflow_run.conclusion != 'success' && github.event.workflow_run.conclusion != 'failure' + # Stay on GitHub-hosted runners: this monitor must keep running when the + # self-hosted sm-standard-* pool is down, which is exactly when the + # scheduled validations it watches stall. runs-on: ubuntu-latest timeout-minutes: 10 permissions: diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index b1d54e00f..f719227e9 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -26,7 +26,7 @@ on: jobs: stale: - runs-on: ubuntu-latest + runs-on: sm-standard-2 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 a0aca90e8..3debd4017 100644 --- a/.github/workflows/star-history.yml +++ b/.github/workflows/star-history.yml @@ -14,7 +14,7 @@ concurrency: jobs: update: - runs-on: ubuntu-latest + runs-on: sm-standard-2 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 c5354d254..fdefb7d7b 100644 --- a/.github/workflows/targets-integration.yml +++ b/.github/workflows/targets-integration.yml @@ -41,7 +41,7 @@ env: jobs: targets-live: name: PostgreSQL, MySQL, AMQP, and NATS - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 90 env: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" @@ -177,7 +177,7 @@ jobs: if: >- always() && github.event_name == 'schedule' && (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) - runs-on: ubuntu-latest + runs-on: sm-standard-2 timeout-minutes: 10 permissions: contents: read