-
-
Notifications
You must be signed in to change notification settings - Fork 203
168 lines (136 loc) · 5.4 KB
/
Copy pathinstall-smoke.yml
File metadata and controls
168 lines (136 loc) · 5.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
name: Install Smoke
concurrency:
group: install-smoke-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
jobs:
install-scripts-cross-platform:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: install.sh dry run
if: runner.os != 'Windows'
run: bash public/install.sh --dry-run --no-onboard --no-prompt
- name: install.ps1 dry run
if: runner.os == 'Windows'
shell: pwsh
run: .\\public\\install.ps1 -DryRun -NoOnboard -InstallMethod npm
macos-install-verify:
# GitHub-hosted macOS runners are frequently capacity constrained.
# Keep this check available for manual verification without blocking
# normal push/PR CI on an unstarted job.
if: github.event_name == 'workflow_dispatch'
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 24
- name: install.sh dry run
run: bash public/install.sh --dry-run --no-onboard --no-prompt
- name: Install via install.sh
env:
OPENCLAW_NO_ONBOARD: "1"
OPENCLAW_NO_PROMPT: "1"
run: bash public/install.sh --no-onboard --no-prompt --version latest
- name: Verify openclaw
run: openclaw --version
shellcheck:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Install ShellCheck
run: sudo apt-get update -y && sudo apt-get install -y shellcheck
- name: ShellCheck
run: shellcheck -e SC1091 public/install.sh public/install-cli.sh scripts/test-install-matrix.sh scripts/docker/*/run.sh
install-sh-unit:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Installer syntax
run: bash -n public/install.sh public/install-cli.sh
- name: Installer help
run: |
bash public/install.sh --help >/tmp/install-help.txt
bash public/install-cli.sh --help >/tmp/install-cli-help.txt
install-smoke:
runs-on: ubuntu-latest
steps:
- name: Checkout installer
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Build smoke image (root)
run: docker build -t clawdbot-install-smoke:ci -f scripts/docker/install-sh-smoke/Dockerfile .
- name: Run install smoke (root)
env:
CLAWDBOT_NO_ONBOARD: "1"
run: docker run --rm -t -e CLAWDBOT_NO_ONBOARD clawdbot-install-smoke:ci
- name: Build non-root image
run: docker build -t clawdbot-install-nonroot:ci -f scripts/docker/install-sh-nonroot/Dockerfile .
- name: Run install smoke (non-root + CLI)
env:
CLAWDBOT_NO_ONBOARD: "1"
run: |
docker run --rm -t \
-e CLAWDBOT_NO_ONBOARD \
clawdbot-install-nonroot:ci
install-sh-git-smoke:
runs-on: ubuntu-latest
steps:
- name: Checkout installer
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Build git smoke image (install.sh)
run: docker build -t clawdbot-install-git-smoke:ci -f scripts/docker/install-sh-git-smoke/Dockerfile .
- name: Run git smoke (install.sh)
env:
CLAWDBOT_NO_ONBOARD: "1"
CLAWDBOT_NO_PROMPT: "1"
run: docker run --rm -t -e CLAWDBOT_NO_ONBOARD -e CLAWDBOT_NO_PROMPT clawdbot-install-git-smoke:ci
install-cli-git-smoke:
runs-on: ubuntu-latest
steps:
- name: Checkout installer
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Build git smoke image (install-cli.sh)
run: docker build -t openclaw-install-cli-git-smoke:ci -f scripts/docker/install-cli-git-smoke/Dockerfile .
- name: Run git smoke (install-cli.sh)
run: docker run --rm -t openclaw-install-cli-git-smoke:ci
windows-install-verify:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-2022, windows-latest]
node: [22, 24]
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: ${{ matrix.node }}
- name: Install via install.ps1
shell: pwsh
run: .\public\install.ps1 -NoOnboard -InstallMethod npm
- name: Verify command resolution and shim location
shell: pwsh
run: |
$cmd = Get-Command openclaw.cmd -ErrorAction Stop
& $cmd.Source --version
$prefix = (npm config get prefix 2>$null).Trim()
$rootShim = Join-Path $prefix "openclaw.cmd"
$binShim = Join-Path (Join-Path $prefix "bin") "openclaw.cmd"
if (-not ((Test-Path $rootShim) -or (Test-Path $binShim))) {
throw "openclaw.cmd was not found in npm global prefix candidates."
}