In your workflow YAML, add a concurrency block with a group key that identifies the shared resource or environment you want to protect.
Set queue: max inside the concurrency block and omit cancel-in-progress (or set it to false); this tells GitHub Actions to queue up to 100 pending runs per group rather than cancelling them.
Verify the processing order: runs in the same concurrency group are dequeued in FIFO order based on when each run entered the queue, not when it was dispatched.
Subscribe to the terminal-announce mailing list or watch the GitHub Changelog to stay informed if queue capacity limits change; the current cap is 100 queued runs per group.
Test by triggering several rapid pushes and confirming in the Actions UI that each run waits in the queue and executes in order rather than being cancelled.
Known gotchas
queue: max was introduced in May 2026; earlier Actions runner versions do not recognize the parameter and will produce a workflow validation error.
Combining queue: max with cancel-in-progress: true is explicitly disallowed and causes a validation error; they are mutually exclusive options.
Once the 100-run queue limit is reached, any additional runs are cancelled immediately; size your concurrency groups and trigger frequency to stay within that cap.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp