mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-28 23:46:48 +00:00
56 lines
1.9 KiB
TypeScript
56 lines
1.9 KiB
TypeScript
import { readFileSync } from "node:fs";
|
|
import { describe, expect, it } from "vitest";
|
|
|
|
describe("ci workflow guards", () => {
|
|
it("kills timed manual checkout fetches after the grace period", () => {
|
|
const workflowPaths = [
|
|
".github/workflows/ci.yml",
|
|
".github/workflows/ci-check-testbox.yml",
|
|
".github/workflows/ci-build-artifacts-testbox.yml",
|
|
];
|
|
|
|
for (const workflowPath of workflowPaths) {
|
|
const workflow = readFileSync(workflowPath, "utf8");
|
|
const fetchTimeouts = workflow.match(
|
|
/timeout --signal=TERM[^\n]* 30s git -C "\$workdir"/g,
|
|
);
|
|
|
|
expect(fetchTimeouts?.length, workflowPath).toBeGreaterThan(0);
|
|
expect(fetchTimeouts, workflowPath).toEqual(
|
|
fetchTimeouts?.map(
|
|
() => 'timeout --signal=TERM --kill-after=10s 30s git -C "$workdir"',
|
|
),
|
|
);
|
|
}
|
|
});
|
|
|
|
it("runs dependency policy guards in PR CI preflight", () => {
|
|
const workflow = readFileSync(".github/workflows/ci.yml", "utf8");
|
|
const preflightGuards = workflow.slice(
|
|
workflow.indexOf("guards)"),
|
|
workflow.indexOf("prod-types)"),
|
|
);
|
|
|
|
expect(workflow).toContain("check-guards");
|
|
expect(preflightGuards).toContain("pnpm deps:shrinkwrap:check");
|
|
expect(preflightGuards).toContain("pnpm deps:patches:check");
|
|
});
|
|
|
|
it("keeps push docs validation ClawHub-backed", () => {
|
|
const workflow = readFileSync(".github/workflows/docs.yml", "utf8");
|
|
|
|
expect(workflow).toContain("repository: openclaw/clawhub");
|
|
expect(workflow).toContain("path: clawhub-source");
|
|
expect(workflow).toContain(
|
|
"OPENCLAW_DOCS_SYNC_CLAWHUB_REPO: ${{ github.workspace }}/clawhub-source",
|
|
);
|
|
});
|
|
|
|
it("runs dependency guards in full local checks", () => {
|
|
const checkScript = readFileSync("scripts/check.mjs", "utf8");
|
|
|
|
expect(checkScript).toContain('args: ["deps:pins:check"]');
|
|
expect(checkScript).toContain('args: ["deps:patches:check"]');
|
|
});
|
|
});
|