feat(ci): serialize matrix entries across branches

Workspace, instructions and the compose, host and swarm deploy matrices now carry a job-level concurrency group, so one entry at a time runs repository-wide instead of per branch. Job level is required: only there does the matrix context exist. The deploy key joins apps and variant_slug with '#' because both fields contain hyphens themselves and a hyphen would make the pair ambiguous; apps alone is not unique, swarm expands one entry per variant and compose splits large roles into bundles. queue: max lifts the pending slot from one to a hundred, so a third concurrent run queues instead of cancelling the waiting one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
kevinveenbirkenbachandClaude Opus 5 committed 2026-08-07 17:05:51 +02:00
1 parent 11ee28aa66
commit ae9d7c2fd3
5 files changed
+24

No files matched your search

@@ -120,6 +120,11 @@ jobs:
timeout-minutes: 355
needs: discover
concurrency:
group: "infinito-deploy-compose-${{ matrix.apps }}#${{ matrix.variant_slug }}"
cancel-in-progress: false
queue: max
strategy:
fail-fast: false
matrix:
+5
View File
@@ -126,6 +126,11 @@ jobs:
timeout-minutes: 355
needs: discover
concurrency:
group: "infinito-deploy-host-${{ matrix.apps }}#${{ matrix.variant_slug }}"
cancel-in-progress: false
queue: max
strategy:
fail-fast: false
matrix:
+5
View File
@@ -150,6 +150,11 @@ jobs:
timeout-minutes: 355
needs: discover
concurrency:
group: "infinito-deploy-swarm-${{ matrix.apps }}#${{ matrix.variant_slug }}"
cancel-in-progress: false
queue: max
strategy:
fail-fast: false
matrix:
+4
View File
@@ -53,6 +53,10 @@ jobs:
name: 📖 Instructions
runs-on: ubuntu-latest
timeout-minutes: 345
concurrency:
group: infinito-instructions
cancel-in-progress: false
queue: max
env:
INFINITO_IMAGE_TAG: ci-${{ github.sha }}
INFINITO_DISTROS: ${{ inputs.distros }}
+5
View File
@@ -35,6 +35,11 @@ jobs:
timeout-minutes: 345
needs: prepare
concurrency:
group: infinito-workspace-${{ matrix.dev_runtime_image }}
cancel-in-progress: false
queue: max
strategy:
fail-fast: false
matrix: