openclaw/.crabbox.yaml
Peter Steinberger c160ff1aec
chore(crabbox): default remote proof to Blacksmith Testbox
The azure coordinator has been timing out (10m, no lease) while delegated
Blacksmith Testbox leases in about a minute. Make blacksmith-testbox the
.crabbox.yaml default, keep --provider aws/azure for direct VM proof, and
refresh the crabbox/openclaw-testing skill text that still claimed an AWS
default. Formatting proof: sibling-checkout oxfmt --check passed (hook needs
node_modules this worktree lacks). Testbox proof: tbx_01kwp8h31773z2vphbcae1syzr
(node --version, exit 0, 1m07s) via
https://github.com/openclaw/openclaw/actions/runs/28702438266
2026-07-04 10:51:47 +01:00

137 lines
3.7 KiB
YAML

profile: openclaw-check
# Default OpenClaw remote proof to Blacksmith Testbox through Crabbox: the
# delegated CI environment owns checkout/hydration and leases reliably.
# Use `--provider aws` for direct AWS runner proof; `--provider azure` spends
# the Azure-backed credit account (its coordinator has stalled under load).
provider: blacksmith-testbox
class: standard
capacity:
# Class/capacity apply only to direct VM providers (`--provider aws|azure`);
# delegated Blacksmith runs ignore them. Keep explicit on-demand capacity
# instead of low-priority spot, whose regional quota is too small for broad
# maintainer proof or parallel Crabbox lanes.
market: on-demand
strategy: most-available
hints: true
actions:
workflow: .github/workflows/crabbox-hydrate.yml
# Default AWS hydration uses local Actions replay. Use
# `crabbox actions hydrate --github-runner --job hydrate-github` when the
# hydrate job needs GitHub secrets, or `--github-runner --job
# hydrate-windows-daemon` for focused native Windows daemon proof.
job: hydrate
ref: main
runnerLabels:
- crabbox
- openclaw
runnerVersion: latest
ephemeral: true
blacksmith:
org: openclaw
workflow: .github/workflows/ci-check-testbox.yml
job: check
ref: main
cache:
pnpm: true
npm: true
git: true
volumes:
- name: pnpm
key: openclaw-linux-node24-pnpm
path: /var/cache/crabbox/pnpm
sizeGB: 80
required: false
- name: npm
key: openclaw-linux-node24-npm
path: /var/cache/crabbox/npm
sizeGB: 40
required: false
aws:
# AWS-specific overrides still pin direct `--provider aws` runs without
# leaking AWS region names into the Azure default capacity fallback list.
region: eu-west-1
rootGB: 400
azure:
# The OpenClaw Azure subscription is reliable in eastus2; eastus rejects the
# same SKUs and can stall provisioning.
location: eastus2
sync:
delete: true
checksum: false
gitSeed: true
fingerprint: true
baseRef: main
exclude:
- .artifacts
- .codex
- .DS_Store
- playwright-report
- test-results
env:
allow:
- CI
- NODE_OPTIONS
- OPENCLAW_*
ssh:
user: crabbox
# Azure coordinator leases expose SSH on 22. The run wrapper can fall back
# from 2222, but `crabbox job run` hydrates via the configured port directly.
port: "22"
jobs:
prewarm:
provider: azure
target: linux
class: standard
type: Standard_D4ads_v6
market: on-demand
idleTimeout: 90m
hydrate:
actions: true
waitTimeout: 20m
actions:
workflow: .github/workflows/crabbox-hydrate.yml
job: hydrate
ref: main
noSync: true
shell: true
command: "true"
stop: never
changed:
provider: azure
target: linux
class: standard
type: Standard_D4ads_v6
market: on-demand
idleTimeout: 90m
hydrate:
actions: true
waitTimeout: 20m
actions:
workflow: .github/workflows/crabbox-hydrate.yml
job: hydrate
ref: main
shell: true
command: |
set -euo pipefail
if ! git status --short >/dev/null 2>&1; then
rm -rf .git
git init -q
git add -A
if ! git diff --cached --quiet; then
git -c user.name=OpenClaw -c user.email=ci@openclaw.local commit -q --no-gpg-sign -m remote-check-tree
fi
fi
env CI=1 corepack pnpm check --timed
stop: always
testbox-changed:
provider: blacksmith-testbox
target: linux
idleTimeout: 90m
hydrate:
actions: false
actions:
workflow: .github/workflows/ci-check-testbox.yml
job: check
ref: main
command: env OPENCLAW_CHECK_CHANGED_REMOTE_CHILD=1 OPENCLAW_CHANGED_LANES_RAW_SYNC=1 CI=1 corepack pnpm check:changed
stop: always