ci(release): parallelize runtime parity tiers (#105545)

This commit is contained in:
Peter Steinberger
2026-07-12 18:23:41 +01:00
committed by GitHub
parent 73ca64fca6
commit d5fd7ad6ff
2 changed files with 183 additions and 59 deletions

View File

@@ -86,8 +86,10 @@ type WorkflowJob = {
permissions?: Record<string, string>;
"runs-on"?: string;
strategy?: {
"fail-fast"?: boolean;
matrix?: {
include?: WorkflowMatrixEntry[];
tier?: string;
};
};
"timeout-minutes"?: number | string;
@@ -2171,6 +2173,42 @@ describe("package artifact reuse", () => {
expect(runtimeCoverageUpload.with?.["if-no-files-found"]).toBe("error");
});
it("runs runtime parity tiers in parallel and preserves one canonical gate", () => {
const tierJob = workflowJob(
RELEASE_CHECKS_WORKFLOW,
"qa_lab_runtime_parity_tier_release_checks",
);
const collectorJob = workflowJob(
RELEASE_CHECKS_WORKFLOW,
"qa_lab_runtime_parity_release_checks",
);
expect(tierJob.strategy?.["fail-fast"]).toBe(false);
expect(tierJob.strategy?.matrix?.tier).toContain('["agentic","standard","soak"]');
expect(tierJob.strategy?.matrix?.tier).toContain('["agentic","standard"]');
expect(workflowStep(tierJob, "Run runtime parity tier").run).toContain('"${tier_args[@]}"');
expect(workflowStep(tierJob, "Upload runtime parity tier artifacts").with?.name).toContain(
"${{ matrix.tier }}",
);
expect(collectorJob.needs).toEqual([
"resolve_target",
"qa_lab_runtime_parity_tier_release_checks",
]);
expect(collectorJob.name).toBe("Run QA Lab runtime parity lane");
expect(workflowStep(collectorJob, "Download runtime parity tier artifacts").with).toMatchObject(
{
pattern: "release-qa-runtime-parity-tier-*-${{ needs.resolve_target.outputs.revision }}",
"merge-multiple": true,
},
);
expect(workflowStep(collectorJob, "Verify runtime parity tier statuses").run).toContain(
"tiers=(agentic standard)",
);
expect(workflowStep(collectorJob, "Upload runtime parity artifacts").with?.name).toBe(
"release-qa-runtime-parity-${{ needs.resolve_target.outputs.revision }}",
);
});
it("requires live proof evidence artifacts when proof jobs run", () => {
const cases = [
{