Advance M7 workflows and release operations
This commit is contained in:
26
tools/web/check-ci-failure-report.mjs
Normal file
26
tools/web/check-ci-failure-report.mjs
Normal file
@@ -0,0 +1,26 @@
|
||||
import assert from "node:assert/strict";
|
||||
import fs from "node:fs";
|
||||
import os from "node:os";
|
||||
import path from "node:path";
|
||||
import { spawnSync } from "node:child_process";
|
||||
|
||||
const temporary = fs.mkdtempSync(path.join(os.tmpdir(), "blender-ci-failure-"));
|
||||
const reportPath = path.join(temporary, "quick-failure.json");
|
||||
try {
|
||||
const result = spawnSync(process.execPath, [new URL("./run-ci-lane.mjs", import.meta.url).pathname, "quick", "--self-test-failure"], {
|
||||
encoding: "utf8",
|
||||
env: { ...process.env, CI_REPORT_PATH: reportPath },
|
||||
});
|
||||
assert.notEqual(result.status, 0, "injected lane failure returned success");
|
||||
const report = JSON.parse(fs.readFileSync(reportPath, "utf8"));
|
||||
assert.equal(report.status, "FAILED");
|
||||
assert.equal(report.records.length, 1);
|
||||
assert.equal(report.records[0].id, "injected-failure");
|
||||
assert.equal(report.records[0].exitCode, 17);
|
||||
assert.ok(fs.existsSync(`${reportPath}.sha256`));
|
||||
process.stdout.write("ci-failure-report-ok status=FAILED exitCode=17 staleReady=false\n");
|
||||
}
|
||||
finally {
|
||||
fs.rmSync(temporary, { recursive: true, force: true });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user