Skip to content

Commit 5c224d6

Browse files
committed
ci(e2e): isolate concurrent integration rounds
Signed-off-by: Drew Newberry <anewberry@nvidia.com>
1 parent 0fbc69a commit 5c224d6

4 files changed

Lines changed: 14 additions & 4 deletions

File tree

‎.github/workflows/branch-e2e.yml‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@ jobs:
242242
uses: ./.github/workflows/integration-runner.yml
243243
with:
244244
category: conformance
245+
stability-campaign: ${{ inputs.stability_campaign }}
245246
source-sha: ${{ needs.prepare-integration.outputs.source_sha }}
246247
integration-inputs-artifact-id: ${{ needs.prepare-integration.outputs.integration_inputs_artifact_id }}
247248
test-matrix: >-
@@ -261,6 +262,7 @@ jobs:
261262
uses: ./.github/workflows/integration-runner.yml
262263
with:
263264
category: feature-specific
265+
stability-campaign: ${{ inputs.stability_campaign }}
264266
source-sha: ${{ needs.prepare-integration.outputs.source_sha }}
265267
integration-inputs-artifact-id: ${{ needs.prepare-integration.outputs.integration_inputs_artifact_id }}
266268
test-matrix: >-
@@ -279,6 +281,7 @@ jobs:
279281
uses: ./.github/workflows/integration-runner.yml
280282
with:
281283
category: driver-specific
284+
stability-campaign: ${{ inputs.stability_campaign }}
282285
source-sha: ${{ needs.prepare-integration.outputs.source_sha }}
283286
integration-inputs-artifact-id: ${{ needs.prepare-integration.outputs.integration_inputs_artifact_id }}
284287
test-matrix: >-

‎.github/workflows/integration-runner.yml‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@ on:
1818
description: Integration-test category, used for the job name and concurrency key
1919
required: false
2020
type: string
21+
stability-campaign:
22+
description: Keep concurrent stability rounds independent
23+
required: false
24+
type: boolean
25+
default: false
2126
test-matrix:
2227
description: JSON array of environment, installer, and testsuite combinations
2328
required: false
@@ -35,8 +40,8 @@ permissions:
3540
packages: read
3641

3742
concurrency:
38-
group: ${{ github.workflow }}-integration-${{ inputs.category }}-${{ github.ref }}
39-
cancel-in-progress: true
43+
group: ${{ github.workflow }}-integration-${{ inputs.category }}-${{ github.ref }}-${{ inputs.stability-campaign && github.run_id || 'normal' }}
44+
cancel-in-progress: ${{ !inputs.stability-campaign }}
4045

4146
jobs:
4247
integration:

‎CI.md‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ database scenarios, TypeScript interactive exec, mechanistic policy checks, and
4242
the gateway-without-drivers contract. It excludes the experimental WSL GPU job. The standard
4343
PR and merge-queue E2E selection is unchanged. Each campaign dispatch gets a
4444
unique concurrency key and runtime-image tag, so up to five runs can execute
45-
at once without sharing mutable image tags. Dispatch ten runs in two waves of
45+
at once without sharing mutable image tags. The reusable integration runner
46+
also keys its conformance, feature, and driver jobs by run ID in stability mode;
47+
ordinary PR runs retain their existing cancellation behavior. Dispatch ten runs in two waves of
4648
five, retain each run ID and per-job result, and count failures and skips.
4749
Run `mise run test` once on the same commit before the E2E rounds.
4850

‎architecture/build.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ The branch E2E workflow composes reusable integration, Docker, Podman, VM,
106106
Kubernetes, and GPU jobs from commit-addressed build artifacts. Its manual
107107
stability mode adds the normally optional Kubernetes HA and credential-driver
108108
lanes and limits GPU jobs to Linux runners. Each dispatch gets its own image
109-
tag and concurrency key, allowing bounded parallel runs against one immutable
109+
tag and concurrency key, including in the integration runner, allowing bounded parallel runs against one immutable
110110
candidate commit without changing PR or merge-queue gates. Stability mode adds
111111
the managed Podman driver path, Kubernetes database scenarios, and Docker-hosted
112112
SDK and policy-advisor E2E checks.

0 commit comments

Comments
 (0)