ci(installer): add macOS install proof

This commit is contained in:
Peter Steinberger
2026-05-10 01:28:24 -04:00
committed by GitHub
parent ccbf2dae17
commit 66a8ff178c
5 changed files with 29 additions and 10 deletions
@@ -99,9 +99,22 @@ jobs:
- name: Checkout
uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: 24
- name: install.sh dry run
run: bash scripts/install.sh --dry-run --no-onboard --no-prompt
- name: install.sh on macOS
env:
OPENCLAW_NO_ONBOARD: "1"
OPENCLAW_NO_PROMPT: "1"
run: |
bash scripts/install.sh --no-onboard --no-prompt --version latest
openclaw --version
windows-installer:
runs-on: windows-latest
steps:
+1
View File
@@ -1762,6 +1762,7 @@ fix_npm_permissions() {
npm config set prefix "$HOME/.npm-global"
ui_warn "Avoid sudo npm i -g for future OpenClaw updates; use npm i -g openclaw@latest so npm keeps using this user prefix instead of a different global prefix."
# shellcheck disable=SC2016
persist_shell_path_prepend "$HOME/.npm-global/bin" '$HOME/.npm-global/bin' || true
export PATH="$HOME/.npm-global/bin:$PATH"
@@ -473,7 +473,7 @@ describe("/model chat UX", () => {
cfg: {
...baseConfig(),
plugins: { allow: ["workspace-model-list"] },
} as OpenClawConfig,
} as unknown as OpenClawConfig,
});
expect(reply?.text).toContain("- anthropic");
@@ -630,7 +630,7 @@ describe("/model chat UX", () => {
},
},
},
} as OpenClawConfig,
} as unknown as OpenClawConfig,
allowedModelCatalog: [{ provider: "openai", id: "gpt-5.5", name: "GPT-5.5" }],
});
@@ -673,7 +673,7 @@ describe("/model chat UX", () => {
},
},
},
} as OpenClawConfig,
} as unknown as OpenClawConfig,
allowedModelCatalog: [{ provider: "openai", id: "gpt-5.5", name: "GPT-5.5" }],
});
@@ -711,7 +711,7 @@ describe("/model chat UX", () => {
},
},
},
} as OpenClawConfig,
} as unknown as OpenClawConfig,
allowedModelCatalog: [{ provider: "openai", id: "gpt-5.5", name: "GPT-5.5" }],
});
@@ -779,7 +779,7 @@ describe("/model chat UX", () => {
},
},
},
} as OpenClawConfig,
} as unknown as OpenClawConfig,
allowedModelCatalog: [
{ provider: "anthropic", id: "claude-opus-4-6", name: "Claude Opus 4.6" },
],
@@ -1041,7 +1041,7 @@ describe("/model chat UX", () => {
},
},
},
} as OpenClawConfig,
} as unknown as OpenClawConfig,
});
expect(persisted.provider).toBe("openai");
+4 -4
View File
@@ -386,14 +386,14 @@ describe("createModelSelectionState catalog loading", () => {
describe("resolveContextTokens", () => {
it("prefers provider-qualified cache keys over bare model ids", () => {
MODEL_CONTEXT_TOKEN_CACHE.set("claude-opus-4-6", 200_000);
MODEL_CONTEXT_TOKEN_CACHE.set("anthropic/claude-opus-4-6", 1_000_000);
MODEL_CONTEXT_TOKEN_CACHE.set("gemini-3.1-pro-preview", 200_000);
MODEL_CONTEXT_TOKEN_CACHE.set("google-gemini-cli/gemini-3.1-pro-preview", 1_000_000);
const result = resolveContextTokens({
cfg: {} as OpenClawConfig,
agentCfg: undefined,
provider: "anthropic",
model: "claude-opus-4-6",
provider: "google-gemini-cli",
model: "gemini-3.1-pro-preview",
});
expect(result).toBe(1_000_000);
@@ -32,6 +32,11 @@ describe("website installer sync workflow", () => {
expect(workflow).toContain("bash /tmp/install-cli.sh --prefix /tmp/openclaw");
expect(workflow).toContain("macos-installer:");
expect(workflow).toContain("runs-on: macos-latest");
expect(workflow).toContain("node-version: 24");
expect(workflow).toContain('OPENCLAW_NO_ONBOARD: "1"');
expect(workflow).toContain('OPENCLAW_NO_PROMPT: "1"');
expect(workflow).toContain("bash scripts/install.sh --no-onboard --no-prompt --version latest");
expect(workflow).toContain("openclaw --version");
expect(workflow).toContain("windows-installer:");
expect(workflow).toContain("runs-on: windows-latest");
expect(workflow).toContain(".\\scripts\\install.ps1 -DryRun");