Repository navigation
Queue pull request CI runs per author and workflow #1426
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
cf76307
68e005b
3d448f9
a752e1d
b1ecfa6
7074ec1
600f6a9
5068110
2206d5c
32523f1
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -8,11 +8,24 @@ on: | |
| branches: [main] | ||
| pull_request: | ||
|
|
||
| # New pushes cancel older runs for the same pull request. Each job queues by | ||
| # workflow, job, and author, so one author runs one copy of each job at a time. | ||
| # GitHub orders jobs by when they start waiting, but does not guarantee FIFO. | ||
| # Each queue holds up to 100 pending jobs; later arrivals are canceled. | ||
| # Timeouts release queues after hung jobs. Bots and non-PR events use unique | ||
| # run IDs and do not queue together. | ||
| concurrency: | ||
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} | ||
| cancel-in-progress: true | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ❓ question — In the earlier thread you planned to confirm in your throwaway repo that cancelling a superseded run also drops its jobs still waiting in a job-level queue, and to report back before merge. This PR can't show it yet: the three rework commits went up in one push, so its own history has no cancelled run. Could you post the result here? A run link is enough. |
||
|
|
||
| jobs: | ||
| test-rust: | ||
| name: cargo test | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 45 | ||
| concurrency: | ||
| group: ${{ github.workflow }}-test-rust-${{ github.event_name == 'pull_request' && github.event.pull_request.user.type != 'Bot' && github.event.pull_request.user.login || github.run_id }} | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🤔 thinking — Following up on the bot thread with this week's data. On Oct 29 Dependabot opened 13 PRs (#1466 to #1478) within minutes, and 58 bot-authored jobs ran at once at 16:04Z across the PR workflows. Under this design one human author tops out at 24 concurrent jobs (one per job name across the five workflows), and all human authors together peaked at 59 since Oct 19. So the exempt Dependabot batch is now the largest single source of runner load. Keying bots on their login like everyone else (one |
||
| queue: max | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
|
|
@@ -71,6 +84,9 @@ jobs: | |
| name: HTML EOF runtime (Fastly) | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 25 | ||
| concurrency: | ||
| group: ${{ github.workflow }}-test-fastly-eof-${{ github.event_name == 'pull_request' && github.event.pull_request.user.type != 'Bot' && github.event.pull_request.user.login || github.run_id }} | ||
| queue: max | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
|
|
@@ -119,6 +135,10 @@ jobs: | |
| test-axum: | ||
| name: cargo test (axum native) | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 30 | ||
|
dhruv8sh marked this conversation as resolved.
Resolved
|
||
| concurrency: | ||
| group: ${{ github.workflow }}-test-axum-${{ github.event_name == 'pull_request' && github.event.pull_request.user.type != 'Bot' && github.event.pull_request.user.login || github.run_id }} | ||
| queue: max | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
|
|
@@ -192,6 +212,10 @@ jobs: | |
| test-cloudflare: | ||
| name: cargo check (cloudflare native + wasm32-unknown-unknown) | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 15 | ||
| concurrency: | ||
| group: ${{ github.workflow }}-test-cloudflare-${{ github.event_name == 'pull_request' && github.event.pull_request.user.type != 'Bot' && github.event.pull_request.user.login || github.run_id }} | ||
| queue: max | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
|
|
@@ -226,6 +250,10 @@ jobs: | |
| test-spin: | ||
| name: cargo check/build/test (spin native + wasm32-wasip1) | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 20 | ||
| concurrency: | ||
| group: ${{ github.workflow }}-test-spin-${{ github.event_name == 'pull_request' && github.event.pull_request.user.type != 'Bot' && github.event.pull_request.user.login || github.run_id }} | ||
| queue: max | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
|
|
@@ -272,6 +300,10 @@ jobs: | |
| test-parity: | ||
| name: cargo test (cross-adapter parity) | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 15 | ||
| concurrency: | ||
| group: ${{ github.workflow }}-test-parity-${{ github.event_name == 'pull_request' && github.event.pull_request.user.type != 'Bot' && github.event.pull_request.user.login || github.run_id }} | ||
| queue: max | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
|
|
@@ -306,6 +338,10 @@ jobs: | |
| matrix: | ||
| os: [ubuntu-latest, macos-latest] | ||
| runs-on: ${{ matrix.os }} | ||
| timeout-minutes: 45 | ||
| concurrency: | ||
| group: ${{ github.workflow }}-test-cli-${{ matrix.os }}-${{ github.event_name == 'pull_request' && github.event.pull_request.user.type != 'Bot' && github.event.pull_request.user.login || github.run_id }} | ||
| queue: max | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
|
|
@@ -378,6 +414,10 @@ jobs: | |
| name: ts dev lint domains (changed lines) | ||
| if: github.event_name == 'pull_request' | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 10 | ||
| concurrency: | ||
| group: ${{ github.workflow }}-lint-domains-${{ github.event_name == 'pull_request' && github.event.pull_request.user.type != 'Bot' && github.event.pull_request.user.login || github.run_id }} | ||
| queue: max | ||
| steps: | ||
| # A PR checkout is GitHub's merge commit; depth 2 also fetches its | ||
| # parents, so `HEAD^1` is the exact base commit the PR merges into. | ||
|
|
@@ -412,6 +452,10 @@ jobs: | |
| test-typescript: | ||
| name: vitest | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 10 | ||
| concurrency: | ||
| group: ${{ github.workflow }}-test-typescript-${{ github.event_name == 'pull_request' && github.event.pull_request.user.type != 'Bot' && github.event.pull_request.user.login || github.run_id }} | ||
| queue: max | ||
| defaults: | ||
| run: | ||
| working-directory: crates/trusted-server-js/lib | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.