ci: expand Linux installer verification (#123849)

This commit is contained in:
Peter Steinberger
2026-08-14 14:45:39 -07:00
committed by GitHub
parent 386b12ba9c
commit dc55a7d08d
2 changed files with 181 additions and 4 deletions
@@ -16,9 +16,22 @@ describe("website installer sync workflow", () => {
}
});
it("verifies installers on Linux Docker plus native macOS and Windows runners", () => {
it("verifies installers across Linux privilege and package-manager paths", () => {
expect(workflow).toContain("linux-docker:");
expect(workflow.match(/timeout --kill-after=30s 20m docker run --rm/g)?.length).toBe(2);
expect(workflow.match(/timeout --kill-after=30s 20m docker run --rm/g)?.length).toBe(5);
expect(workflow).toContain("linux-build-tools-failure:");
expect(workflow).toContain("/tmp/build-tools-stub-triggered");
expect(workflow).toContain('grep -aFq "Installing build tools failed"');
expect(workflow).toContain('grep -aFq "Build tools installed"');
expect(workflow).toContain("linux-non-root:");
expect(workflow).toContain("sudo -u installer -H bash");
expect(workflow).toContain('test "$(npm config get prefix)" = "$HOME/.npm-global"');
expect(workflow).toContain(
`grep -Fxq 'export PATH="$HOME/.npm-global/bin:$PATH"' "$HOME/.bashrc"`,
);
expect(workflow).toContain("fedora-installer:");
expect(workflow).toContain("user: [root, non-root]");
expect(workflow.match(/fedora:44/g)?.length).toBe(2);
expect(workflow).not.toContain("timeout 20m docker run --rm");
expect(workflow).not.toMatch(/(^|\n)\s+docker run --rm/u);
expect(workflow).toContain("bash /tmp/install.sh --version latest && openclaw --version");
@@ -39,7 +52,20 @@ describe("website installer sync workflow", () => {
});
it("syncs verified scripts to openclaw.ai only after all installer checks pass", () => {
expect(workflow).toContain("needs: [static, linux-docker, macos-installer, windows-installer]");
const syncNeeds = workflow.match(/ sync-website:\n needs:\n((?: - [^\n]+\n)+)/u);
expect(syncNeeds?.[1]).toBe(
[
"static",
"linux-docker",
"linux-build-tools-failure",
"linux-non-root",
"fedora-installer",
"macos-installer",
"windows-installer",
]
.map((job) => ` - ${job}\n`)
.join(""),
);
expect(workflow).toContain("repository: openclaw/openclaw.ai");
expect(workflow).toContain("OPENCLAW_GH_TOKEN: ${{ secrets.OPENCLAW_GH_TOKEN }}");
expect(workflow).toContain("OPENCLAW_GH_TOKEN is not configured");