-
-
Notifications
You must be signed in to change notification settings - Fork 203
159 lines (129 loc) · 5.22 KB
/
Copy pathinstall-smoke.yml
File metadata and controls
159 lines (129 loc) · 5.22 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
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
- name: install.cmd dry run
if: runner.os == 'Windows'
shell: cmd
run: set "OPENCLAW_INSTALL_PS1_URL=%GITHUB_WORKSPACE%\\public\\install.ps1" && .\\public\\install.cmd --dry-run --no-onboard --npm
install-scripts-macos:
# 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: install.sh dry run
run: bash public/install.sh --dry-run --no-onboard --no-prompt
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."
}