refactor: remove legacy dev cd scripts

This commit is contained in:
Codex
2026-05-26 05:31:57 +08:00
parent f3191736fa
commit e6ac2898fe
32 changed files with 56 additions and 11242 deletions
+8 -77
View File
@@ -1,7 +1,4 @@
import assert from "node:assert/strict";
import { mkdtemp, readFile, writeFile } from "node:fs/promises";
import os from "node:os";
import path from "node:path";
import test from "node:test";
import {
@@ -34,80 +31,14 @@ async function captureCli(args, options = {}) {
return { exitCode, stdout, stderr };
}
test("repo hwlab-cli cicd submit is non-blocking and records follow-up commands", async () => {
const cwd = await mkdtemp(path.join(os.tmpdir(), "hwlab-cli-cicd-"));
const launched = [];
const result = await captureCli(
["cicd", "submit", "--kind", "ci-publish", "--services", "hwlab-cloud-web", "--concurrency", "2"],
{
cwd,
spawnDetached: async (job) => {
launched.push(job);
return { pid: 123456 };
}
}
);
assert.equal(result.exitCode, 0, result.stderr);
const body = JSON.parse(result.stdout);
assert.equal(body.ok, true);
assert.equal(body.nonBlocking, true);
assert.equal(body.kind, "ci-publish");
assert.match(body.jobId, /^ci-publish-/u);
assert.equal(body.pid, 123456);
assert.equal(body.followup.status, `hwlab-cli cicd status ${body.jobId}`);
assert.equal(launched.length, 1);
const spec = JSON.parse(await readFile(path.join(cwd, ".state", "hwlab-cicd", "jobs", body.jobId, "spec.json"), "utf8"));
assert.deepEqual(spec.args.slice(0, 4), ["scripts/dev-artifact-publish.mjs", "--publish", "--report", body.reportPath]);
assert.ok(spec.args.includes("--quiet-build"));
assert.equal(spec.envPatch.HWLAB_CI_ARTIFACT_RUN_ID, body.jobId);
});
test("repo hwlab-cli cicd status/logs/report disclose bounded job state", async () => {
const cwd = await mkdtemp(path.join(os.tmpdir(), "hwlab-cli-cicd-"));
const submit = await captureCli(["cicd", "submit", "--kind", "ci-publish"], {
cwd,
spawnDetached: async () => ({ pid: 123457 })
});
const submitted = JSON.parse(submit.stdout);
const jobDir = path.join(cwd, ".state", "hwlab-cicd", "jobs", submitted.jobId);
await writeFile(path.join(jobDir, "stdout.log"), "build line 1\nbuild line 2\n", "utf8");
await writeFile(path.join(jobDir, "stderr.log"), "warning line\n", "utf8");
await writeFile(
path.join(jobDir, "report.json"),
`${JSON.stringify({
sourceCommitId: "abc123",
artifactPublish: {
status: "published",
serviceCount: 1,
requiredServiceCount: 1,
publishedCount: 1,
timings: { durationMs: 42 }
},
blockers: []
})}\n`,
"utf8"
);
const status = await captureCli(["cicd", "status", submitted.jobId], { cwd });
assert.equal(status.exitCode, 0, status.stderr);
assert.equal(JSON.parse(status.stdout).status, "submitted");
const logs = await captureCli(["cicd", "logs", submitted.jobId, "--tail-bytes", "12"], { cwd });
assert.equal(logs.exitCode, 0, logs.stderr);
const logBody = JSON.parse(logs.stdout);
assert.equal(logBody.stdout.returnedBytes, 12);
assert.equal(logBody.stdout.truncated, true);
assert.ok(logBody.stdout.text.includes("line 2"));
const report = await captureCli(["cicd", "report", submitted.jobId], { cwd });
assert.equal(report.exitCode, 0, report.stderr);
const reportBody = JSON.parse(report.stdout);
assert.equal(reportBody.summary.kind, "ci-publish");
assert.equal(reportBody.summary.status, "published");
assert.equal(reportBody.summary.publishedCount, 1);
assert.equal(Object.hasOwn(reportBody, "report"), false);
test("repo hwlab-cli cicd is removed from the active G14 release path", async () => {
const result = await captureCli(["cicd", "submit", "--kind", "ci-publish"]);
assert.equal(result.exitCode, 2);
const body = JSON.parse(result.stderr);
assert.equal(body.ok, false);
assert.equal(body.code, "legacy-cicd-removed");
assert.match(body.message, /G14 release path/u);
assert.match(body.replacement.observePipelineRuns, /tran G14:k3s/u);
});
test("repo hwlab-cli m3 status uses Skill CLI and calls only HWLAB API /v1/m3/status", async () => {