From f1195a7a7aad02f80f5ca6f14b5f14cf21d78021 Mon Sep 17 00:00:00 2001 From: Scott Robinson Date: Thu, 1 Oct 2026 23:10:35 +0000 Subject: [PATCH] ci: move the remaining CI workflows to the dedicated runner pool MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Same three changes #379 made to integration.yml, applied to integration-mongodb, test, clippy, fmt, and licenses: runs-on extenddb_ubuntu-2404_4-core (pinned Ubuntu 24.04), a per-job timeout (30 min for the MongoDB suite whose longest job is 18 min; 15 min for the sub-5-minute workflows; licenses keeps its existing 20), and the corrected concurrency block — per-PR supersede on pull_request, run_id-unique groups for everything else so merge-group runs can never cancel one another. --- .github/workflows/clippy.yml | 16 ++++++++++++++- .github/workflows/fmt.yml | 16 ++++++++++++++- .github/workflows/integration-mongodb.yml | 25 +++++++++++++++++++---- .github/workflows/licenses.yml | 15 +++++++++++++- .github/workflows/test.yml | 19 +++++++++++++++-- 5 files changed, 82 insertions(+), 9 deletions(-) diff --git a/.github/workflows/clippy.yml b/.github/workflows/clippy.yml index 0594d12c6..ca3ad0281 100644 --- a/.github/workflows/clippy.yml +++ b/.github/workflows/clippy.yml @@ -5,9 +5,23 @@ on: push: branches: [main] +# Supersede an in-flight run of the SAME pull request when a new push arrives, +# so repeated pushes do not stack up on a capped pool. Non-PR runs get a group +# unique to the run (run_id): merge-group runs reuse a ref across re-queues, +# and GitHub concurrency replaces a PENDING run in a group even with +# cancel-in-progress false, so keying them by ref would let one merge-group +# run cancel another and evict its queue entry. +concurrency: + group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.event.pull_request.number || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: clippy: - runs-on: ubuntu-latest + # Dedicated ExtendDB runner group (Ubuntu 24.04, 4 vCPU / 16 GB, capped at + # 20 concurrent). ubuntu-latest is an Amazon-wide shared pool where our jobs + # waited 10-90 minutes to start (2026-09-29/30); see integration.yml. + runs-on: extenddb_ubuntu-2404_4-core + timeout-minutes: 15 steps: - uses: actions/checkout@v6 - uses: dtolnay/rust-toolchain@1.97.0 diff --git a/.github/workflows/fmt.yml b/.github/workflows/fmt.yml index ac5451b83..b0a847efe 100644 --- a/.github/workflows/fmt.yml +++ b/.github/workflows/fmt.yml @@ -5,9 +5,23 @@ on: push: branches: [main] +# Supersede an in-flight run of the SAME pull request when a new push arrives, +# so repeated pushes do not stack up on a capped pool. Non-PR runs get a group +# unique to the run (run_id): merge-group runs reuse a ref across re-queues, +# and GitHub concurrency replaces a PENDING run in a group even with +# cancel-in-progress false, so keying them by ref would let one merge-group +# run cancel another and evict its queue entry. +concurrency: + group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.event.pull_request.number || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: fmt: - runs-on: ubuntu-latest + # Dedicated ExtendDB runner group (Ubuntu 24.04, 4 vCPU / 16 GB, capped at + # 20 concurrent). ubuntu-latest is an Amazon-wide shared pool where our jobs + # waited 10-90 minutes to start (2026-09-29/30); see integration.yml. + runs-on: extenddb_ubuntu-2404_4-core + timeout-minutes: 15 steps: - uses: actions/checkout@v6 - uses: dtolnay/rust-toolchain@1.97.0 diff --git a/.github/workflows/integration-mongodb.yml b/.github/workflows/integration-mongodb.yml index 912df8bf7..a830d0962 100644 --- a/.github/workflows/integration-mongodb.yml +++ b/.github/workflows/integration-mongodb.yml @@ -18,9 +18,23 @@ permissions: # `run-tests --backend mongodb`, tearing everything down on exit. Both jobs # reuse it so CI runs the exact path developers run locally (no drift), while # splitting pytest and rust into parallel jobs the way integration.yml does. +# Supersede an in-flight run of the SAME pull request when a new push arrives, +# so repeated pushes do not stack up on a capped pool. Non-PR runs get a group +# unique to the run (run_id): merge-group runs reuse a ref across re-queues, +# and GitHub concurrency replaces a PENDING run in a group even with +# cancel-in-progress false, so keying them by ref would let one merge-group +# run cancel another and evict its queue entry. +concurrency: + group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.event.pull_request.number || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: mongodb-pytest: - runs-on: ubuntu-latest + # Dedicated ExtendDB runner group (Ubuntu 24.04, 4 vCPU / 16 GB, capped at + # 20 concurrent). ubuntu-latest is an Amazon-wide shared pool where our jobs + # waited 10-90 minutes to start (2026-09-29/30); see integration.yml. + runs-on: extenddb_ubuntu-2404_4-core + timeout-minutes: 30 steps: - uses: actions/checkout@v6 - uses: dtolnay/rust-toolchain@stable @@ -38,7 +52,8 @@ jobs: run: devtools/run-mongodb-tests -- --pytest --comprehensive --parallel mongodb-rust: - runs-on: ubuntu-latest + runs-on: extenddb_ubuntu-2404_4-core + timeout-minutes: 30 steps: - uses: actions/checkout@v6 - uses: dtolnay/rust-toolchain@stable @@ -56,7 +71,8 @@ jobs: run: devtools/run-mongodb-tests -- --rust --rust-integration mongodb-production-build: - runs-on: ubuntu-latest + runs-on: extenddb_ubuntu-2404_4-core + timeout-minutes: 30 steps: - uses: actions/checkout@v6 - uses: dtolnay/rust-toolchain@stable @@ -67,7 +83,8 @@ jobs: run: cargo check --release --no-default-features --features mongodb mongodb-integration: - runs-on: ubuntu-latest + runs-on: extenddb_ubuntu-2404_4-core + timeout-minutes: 30 needs: [mongodb-pytest, mongodb-rust, mongodb-production-build] if: always() steps: diff --git a/.github/workflows/licenses.yml b/.github/workflows/licenses.yml index 75d1ff2a6..e466004d2 100644 --- a/.github/workflows/licenses.yml +++ b/.github/workflows/licenses.yml @@ -40,9 +40,22 @@ on: permissions: contents: read +# Supersede an in-flight run of the SAME pull request when a new push arrives, +# so repeated pushes do not stack up on a capped pool. Non-PR runs get a group +# unique to the run (run_id): merge-group runs reuse a ref across re-queues, +# and GitHub concurrency replaces a PENDING run in a group even with +# cancel-in-progress false, so keying them by ref would let one merge-group +# run cancel another and evict its queue entry. +concurrency: + group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.event.pull_request.number || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: notices-current: - runs-on: ubuntu-latest + # Dedicated ExtendDB runner group (Ubuntu 24.04, 4 vCPU / 16 GB, capped at + # 20 concurrent). ubuntu-latest is an Amazon-wide shared pool where our jobs + # waited 10-90 minutes to start (2026-09-29/30); see integration.yml. + runs-on: extenddb_ubuntu-2404_4-core timeout-minutes: 20 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 73bbdb510..70325655d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,9 +8,23 @@ on: permissions: contents: read +# Supersede an in-flight run of the SAME pull request when a new push arrives, +# so repeated pushes do not stack up on a capped pool. Non-PR runs get a group +# unique to the run (run_id): merge-group runs reuse a ref across re-queues, +# and GitHub concurrency replaces a PENDING run in a group even with +# cancel-in-progress false, so keying them by ref would let one merge-group +# run cancel another and evict its queue entry. +concurrency: + group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.event.pull_request.number || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + jobs: run-tests: - runs-on: ubuntu-latest + # Dedicated ExtendDB runner group (Ubuntu 24.04, 4 vCPU / 16 GB, capped at + # 20 concurrent). ubuntu-latest is an Amazon-wide shared pool where our jobs + # waited 10-90 minutes to start (2026-09-29/30); see integration.yml. + runs-on: extenddb_ubuntu-2404_4-core + timeout-minutes: 15 strategy: matrix: toolchain: [stable, "1.88.0"] @@ -23,7 +37,8 @@ jobs: - run: cargo test --workspace test: - runs-on: ubuntu-latest + runs-on: extenddb_ubuntu-2404_4-core + timeout-minutes: 15 needs: run-tests if: always() steps: