22 lines
1.0 KiB
JavaScript
22 lines
1.0 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import fs from "node:fs";
|
|
import path from "node:path";
|
|
import { evidencePath, root, sha256 } from "./v1-acceptance-lib.mjs";
|
|
|
|
assert.ok(fs.existsSync(evidencePath), "V1 acceptance evidence is missing");
|
|
const acceptanceSha256 = sha256(fs.readFileSync(evidencePath));
|
|
const releaseEvidence = JSON.parse(fs.readFileSync(path.join(root, "docs/status/release-evidence.json"), "utf8"));
|
|
const userLoopRecord = releaseEvidence.evidence?.records?.find((record) => record.id === "v1-user-loop");
|
|
|
|
assert.ok(userLoopRecord, "release evidence has no v1-user-loop record");
|
|
assert.equal(userLoopRecord.exitCode, 0, "release v1-user-loop record failed");
|
|
assert.ok(userLoopRecord.output?.trim().length > 0, "release v1-user-loop output is empty");
|
|
assert.ok(
|
|
userLoopRecord.artifactSha256?.includes(acceptanceSha256),
|
|
"current V1 acceptance evidence is not bound to release evidence",
|
|
);
|
|
|
|
process.stdout.write(
|
|
`v1-acceptance-release-binding-ok acceptanceSha256=${acceptanceSha256} releaseGeneratedAt=${releaseEvidence.generatedAt}\n`,
|
|
);
|