fix(cicd): 收敛运行面 rollout 计划范围
This commit is contained in:
@@ -419,7 +419,7 @@ test("artifact catalog restore rejects a non-bootstrap source catalog when GitOp
|
||||
);
|
||||
});
|
||||
|
||||
test("node CI planner reports runtime config rendering as full rollout without image builds", async () => {
|
||||
test("node CI planner scopes runtime config rendering to the changed service without image builds", async () => {
|
||||
const repo = await createFixtureRepo();
|
||||
const deployPath = path.join(repo, "deploy/deploy.yaml");
|
||||
const deploy = await readStructuredFile(repo, deployPath);
|
||||
@@ -429,18 +429,32 @@ test("node CI planner reports runtime config rendering as full rollout without i
|
||||
await git(repo, ["commit", "-m", "change cloud api runtime env"]);
|
||||
|
||||
const plan = await planV02CoreServices(repo, { baseRef: "HEAD~1", targetRef: "HEAD" });
|
||||
assert.deepEqual(plan.affectedServices, ["hwlab-cloud-api", "hwlab-cloud-web"]);
|
||||
assert.deepEqual(plan.rolloutServices, ["hwlab-cloud-api", "hwlab-cloud-web"]);
|
||||
assert.deepEqual(plan.affectedServices, ["hwlab-cloud-api"]);
|
||||
assert.deepEqual(plan.rolloutServices, ["hwlab-cloud-api"]);
|
||||
assert.deepEqual(plan.buildServices, []);
|
||||
assert.deepEqual(plan.rolloutWithoutImageBuildServices, ["hwlab-cloud-api", "hwlab-cloud-web"]);
|
||||
assert.deepEqual(plan.rolloutWithoutImageBuildServices, ["hwlab-cloud-api"]);
|
||||
assert.equal(plan.imageBuildRequired, false);
|
||||
const cloudApi = plan.services.find((service) => service.serviceId === "hwlab-cloud-api");
|
||||
const cloudWeb = plan.services.find((service) => service.serviceId === "hwlab-cloud-web");
|
||||
assert.equal(cloudApi.runtimeConfigChanged, true);
|
||||
assert.equal(cloudApi.envChanged, false);
|
||||
assert.deepEqual(cloudApi.reason, ["runtime-config-changed"]);
|
||||
assert.deepEqual(cloudWeb.reason, ["gitops-render-input-changed"]);
|
||||
assert.equal(plan.ciCdPlan.noImageBuildReason, "gitops-render-only-change");
|
||||
assert.equal(cloudWeb.affected, false);
|
||||
assert.equal(plan.ciCdPlan.noImageBuildReason, "runtime-config-only-change");
|
||||
});
|
||||
|
||||
test("node CI planner keeps Tekton renderer changes out of runtime rollout scope", async () => {
|
||||
const repo = await createFixtureRepo();
|
||||
await mkdir(path.join(repo, "scripts/src/gitops-render"), { recursive: true });
|
||||
await writeFile(path.join(repo, "scripts/src/gitops-render/tekton-manifests.mjs"), "export const pipeline = 2;\n");
|
||||
await git(repo, ["add", "scripts/src/gitops-render/tekton-manifests.mjs"]);
|
||||
await git(repo, ["commit", "-m", "change Tekton renderer"]);
|
||||
|
||||
const plan = await planV02CoreServices(repo, { baseRef: "HEAD~1", targetRef: "HEAD" });
|
||||
assert.deepEqual(plan.affectedServices, []);
|
||||
assert.deepEqual(plan.rolloutServices, []);
|
||||
assert.deepEqual(plan.buildServices, []);
|
||||
assert.equal(plan.ciCdPlan.willRunGitopsPromote, true);
|
||||
});
|
||||
|
||||
test("planner rebuilds when catalog digest is missing instead of blocking reuse", async () => {
|
||||
|
||||
Reference in New Issue
Block a user