feat: parallelize dev ci cd artifact flow

This commit is contained in:
Codex
2026-05-24 04:36:38 +00:00
parent 65583b79d7
commit 86e7df92a0
15 changed files with 1190 additions and 150 deletions
+55 -5
View File
@@ -587,6 +587,56 @@ test("dev-cd status accepts a published deploy-json promotion under a later cont
assertNoReadOnlySideEffects(commandLog);
});
test("dev-cd status treats stale CI artifact report as audit-only when desired state matches", async () => {
const repoRoot = await makeRepo({ commitId: "abc1234" });
await writeFile(
artifactReportFixturePath,
`${JSON.stringify({
status: "published",
commitId: "9999999",
artifactPublish: {
status: "published",
sourceCommitId: "9999999",
serviceCount: 0,
requiredServiceCount: 0,
publishedCount: 0,
services: []
}
}, null, 2)}\n`
);
const commandLog = [];
let output = "";
const code = await runDevCdApply(["--status", "--kubeconfig", "/etc/rancher/k3s/k3s.yaml"], {
repoRoot,
env: {},
runCommand: makeRunCommand({
commandLog,
targetCommitId: laterControlCommit,
headCommitId: laterControlCommit,
extraGitRefs: {
abc1234: publishedCommit
},
latestArtifactMergeCommit: artifactMergeCommit,
commitParents: {
[artifactMergeCommit]: [publishedCommit, artifactReportCommit],
[artifactReportCommit]: [publishedCommit]
}
}),
httpGetJson: makeHttpGetJson(),
now: () => new Date(iso(100000)),
stdout: { write: (chunk) => { output += chunk; } }
});
const status = JSON.parse(output);
assert.equal(code, 0);
assert.equal(status.status, "pass");
assert.equal(status.target.artifactBoundary.status, "pass");
assert.equal(status.target.artifactBoundary.reportStatus, "stale_or_unrelated");
assert.equal(status.target.artifactBoundary.reportIsReleaseGate, false);
assert.equal(commandLog.some((entry) => entry.args.includes("scripts/dev-artifact-publish.mjs")), false);
assertNoReadOnlySideEffects(commandLog);
});
test("dev-cd status exposes moving origin/main when checkout is behind a deploy-json promotion control ref", async () => {
const repoRoot = await makeRepo({ commitId: "abc1234" });
const commandLog = [];
@@ -603,8 +653,8 @@ test("dev-cd status exposes moving origin/main when checkout is behind a deploy-
},
latestArtifactMergeCommit: artifactMergeCommit,
commitParents: {
[artifactMergeCommit]: [publishedCommit, artifactReportCommit],
[artifactReportCommit]: [publishedCommit]
[artifactMergeCommit]: [laterControlCommit, artifactReportCommit],
[artifactReportCommit]: [laterControlCommit]
}
}),
httpGetJson: makeHttpGetJson(),
@@ -666,7 +716,7 @@ test("apply stops before lock acquisition when checkout is behind deploy-json pr
assert.equal(commandLog.some((entry) => entry.args.includes("scripts/dev-deploy-apply.mjs")), false);
});
test("dev-cd status degrades artifact merge provenance when catalog/report do not match deploy-json promotion", async () => {
test("dev-cd status degrades artifact merge provenance when catalog does not match deploy-json promotion", async () => {
const repoRoot = await makeRepo({ commitId: "abc1234" });
await writeFile(
path.join(repoRoot, "deploy/artifact-catalog.dev.json"),
@@ -751,8 +801,8 @@ test("apply stops before lock acquisition when artifact merge provenance mismatc
},
latestArtifactMergeCommit: artifactMergeCommit,
commitParents: {
[artifactMergeCommit]: [publishedCommit, artifactReportCommit],
[artifactReportCommit]: [publishedCommit]
[artifactMergeCommit]: [laterControlCommit, artifactReportCommit],
[artifactReportCommit]: [laterControlCommit]
}
}),
httpGetJson: makeHttpGetJson(),