Merge pull request #971 from pikasTech/fix/issue955-web-renderer-ci-dep
fix: include trace renderer in cloud web rollout plan
This commit is contained in:
@@ -253,6 +253,53 @@ test("planner scopes cloud-web runtime changes to cloud-web", async () => {
|
||||
assert.deepEqual(cloudWeb.reason, ["component-path-changed"]);
|
||||
});
|
||||
|
||||
test("v02 planner treats shared trace renderer changes as cloud-web code rollout inputs", async () => {
|
||||
const repo = await createFixtureRepo();
|
||||
const initialSha = (await git(repo, ["rev-parse", "HEAD"])).stdout.trim();
|
||||
const initialPlan = await createG14CiPlan({
|
||||
repoRoot: repo,
|
||||
lane: "v02",
|
||||
baseRef: "HEAD",
|
||||
targetRef: initialSha,
|
||||
artifactCatalogPath: "deploy/artifact-catalog.v02.json",
|
||||
services: ["hwlab-cloud-api", "hwlab-cloud-web"]
|
||||
});
|
||||
const initialCloudWeb = initialPlan.services.find((service) => service.serviceId === "hwlab-cloud-web");
|
||||
const initialHashes = Object.fromEntries(initialPlan.services.map((service) => [service.serviceId, service.componentInputHash]));
|
||||
await writeFile(path.join(repo, "deploy/artifact-catalog.v02.json"), JSON.stringify(createCatalogFixture("ready", {
|
||||
sourceCommitId: initialPlan.sourceCommitId,
|
||||
componentInputHashes: initialHashes,
|
||||
cloudWebEnvironmentInputHash: initialCloudWeb.environmentInputHash,
|
||||
cloudWebCodeInputHash: initialCloudWeb.codeInputHash,
|
||||
cloudWebBootCommit: initialPlan.sourceCommitId
|
||||
}), null, 2));
|
||||
await git(repo, ["add", "deploy/artifact-catalog.v02.json"]);
|
||||
await git(repo, ["commit", "-m", "seed v02 catalog with trace renderer"]);
|
||||
|
||||
await mkdir(path.join(repo, "tools/src/hwlab-cli"), { recursive: true });
|
||||
await writeFile(path.join(repo, "tools/src/hwlab-cli/trace-renderer.ts"), "export const traceRenderer = 2;\n");
|
||||
await git(repo, ["add", "tools/src/hwlab-cli/trace-renderer.ts"]);
|
||||
await git(repo, ["commit", "-m", "change shared trace renderer"]);
|
||||
|
||||
const plan = await createG14CiPlan({
|
||||
repoRoot: repo,
|
||||
lane: "v02",
|
||||
baseRef: "HEAD~1",
|
||||
targetRef: "HEAD",
|
||||
artifactCatalogPath: "deploy/artifact-catalog.v02.json",
|
||||
services: ["hwlab-cloud-api", "hwlab-cloud-web"]
|
||||
});
|
||||
const cloudApi = plan.services.find((service) => service.serviceId === "hwlab-cloud-api");
|
||||
const cloudWeb = plan.services.find((service) => service.serviceId === "hwlab-cloud-web");
|
||||
assert.deepEqual(plan.affectedServices, ["hwlab-cloud-web"]);
|
||||
assert.deepEqual(plan.rolloutServices, ["hwlab-cloud-web"]);
|
||||
assert.deepEqual(plan.buildServices, []);
|
||||
assert.equal(cloudApi.affected, false);
|
||||
assert.equal(cloudWeb.codeChanged, true);
|
||||
assert.deepEqual(cloudWeb.codeChangedPaths, ["tools/src/hwlab-cli/trace-renderer.ts"]);
|
||||
assert.deepEqual(cloudWeb.reason, ["code-input-changed", "component-path-changed"]);
|
||||
});
|
||||
|
||||
test("planner ignores package script cleanup for runtime images", async () => {
|
||||
const repo = await createFixtureRepo();
|
||||
await writeFile(path.join(repo, "package.json"), JSON.stringify({
|
||||
|
||||
@@ -86,7 +86,8 @@ const serviceSpecificPaths = Object.freeze({
|
||||
"web/hwlab-cloud-web/",
|
||||
"internal/dev-entrypoint/cloud-web-runtime.mjs",
|
||||
"internal/dev-entrypoint/cloud-web-proxy.mjs",
|
||||
"internal/dev-entrypoint/cloud-web-routes.mjs"
|
||||
"internal/dev-entrypoint/cloud-web-routes.mjs",
|
||||
"tools/src/hwlab-cli/trace-renderer.ts"
|
||||
],
|
||||
"hwlab-gateway": ["cmd/hwlab-gateway/"],
|
||||
"hwlab-edge-proxy": ["cmd/hwlab-edge-proxy/", "internal/dev-entrypoint/http.mjs"],
|
||||
|
||||
Reference in New Issue
Block a user