Skip to content

docs(mirror): clarify compat-only operator paths #343

docs(mirror): clarify compat-only operator paths

docs(mirror): clarify compat-only operator paths #343

Workflow file for this run

name: Install Smoke
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
concurrency:
group: install-smoke-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
docs-scope:
runs-on: ubuntu-latest
outputs:
docs_only: ${{ steps.check.outputs.docs_only }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Detect docs-only changes
id: check
uses: ./.github/actions/detect-docs-changes
install-scope:
needs: [docs-scope]
if: needs.docs-scope.outputs.docs_only != 'true'
runs-on: ubuntu-latest
outputs:
run_install_smoke: ${{ steps.scope.outputs.run_install_smoke }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Detect install-smoke scope
id: scope
shell: bash
run: |
set -euo pipefail
if [ "${{ github.event_name }}" != "pull_request" ]; then
echo "run_install_smoke=true" >> "$GITHUB_OUTPUT"
exit 0
fi
BASE="${{ github.event.pull_request.base.sha }}"
CHANGED="$(git diff --name-only "$BASE" HEAD 2>/dev/null || echo "UNKNOWN")"
if [ "$CHANGED" = "UNKNOWN" ] || [ -z "$CHANGED" ]; then
# Fail-safe: keep install smoke in the PR path if change detection fails.
echo "run_install_smoke=true" >> "$GITHUB_OUTPUT"
exit 0
fi
run_install_smoke=false
while IFS= read -r path; do
[ -z "$path" ] && continue
case "$path" in
.github/workflows/install-smoke.yml|.github/actions/setup-node-env/*|.github/actions/setup-pnpm-store-cache/*|package.json|pnpm-lock.yaml|pnpm-workspace.yaml|mirror.mjs|tsdown.mirror.config.ts|scripts/copy-mirror-runtime-assets.ts|src/mirror-entry.ts|src/mirror-package.ts|src/mirrordaemon/*|src/mirror-runtime/*|src/mirror-service/*)
run_install_smoke=true
break
;;
esac
done <<< "$CHANGED"
echo "run_install_smoke=${run_install_smoke}" >> "$GITHUB_OUTPUT"
install-smoke:
needs: [docs-scope, install-scope]
if: needs.docs-scope.outputs.docs_only != 'true' && needs.install-scope.outputs.run_install_smoke == 'true'
runs-on: ubuntu-latest
steps:
- name: Checkout CLI
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: 22.x
check-latest: true
- name: Setup pnpm + cache store
uses: ./.github/actions/setup-pnpm-store-cache
with:
pnpm-version: "10.23.0"
cache-key-suffix: "node22"
- name: Install pnpm deps (minimal)
run: pnpm install --ignore-scripts --frozen-lockfile
- name: Run installer docker tests
env:
CLAWDBOT_INSTALL_URL: https://openclaw.ai/install.sh
CLAWDBOT_INSTALL_CLI_URL: https://openclaw.ai/install-cli.sh
CLAWDBOT_NO_ONBOARD: "1"
CLAWDBOT_INSTALL_SMOKE_SKIP_CLI: "1"
CLAWDBOT_INSTALL_SMOKE_SKIP_NONROOT: ${{ github.event_name == 'pull_request' && '1' || '0' }}
CLAWDBOT_INSTALL_SMOKE_SKIP_PREVIOUS: "1"
run: pnpm test:install:smoke