Commit Graph

53 Commits

Author SHA1 Message Date
joshp123
44ae6995de Trigger CI after yolo promotion
What:
- let the yolo promote job dispatch the CI workflow after pushing main
- grant the promote job actions:write for workflow_dispatch

Why:
- GitHub suppresses push-triggered workflows created by GITHUB_TOKEN, so yolo-promoted commits otherwise lack a CI run on the final main SHA

Tests:
- scripts/check-flake-lock-owners.sh
- node scripts/select-openclaw-release.test.mjs
- bash -n scripts/update-pins.sh
- ruby -e 'require "yaml"; ARGV.each { |f| YAML.load_file(f) }' .github/workflows/*.yml
- GITHUB_ACTIONS=true scripts/update-pins.sh select
- nix flake show --accept-flake-config

Co-authored-by: Codex <noreply@openai.com>
2026-05-07 11:04:00 +02:00
joshp123
8c6267b2c3 fix: decouple source and mac app release pins
Select the latest stable OpenClaw source release independently from the newest public macOS app artifact. Report app lag instead of skipping source releases without desktop assets, and teach yolo to materialize source/app pins separately.

Tests: bash -n scripts/update-pins.sh; node --check scripts/select-openclaw-release.mjs scripts/select-openclaw-release.test.mjs; node scripts/select-openclaw-release.test.mjs; GITHUB_ACTIONS=true scripts/update-pins.sh select; ruby -e 'require "yaml"; YAML.load_file(".github/workflows/yolo-update.yml")'; nix flake show --accept-flake-config --json; git diff --check
2026-05-05 18:22:33 +02:00
joshp123
ecfb1dc936 ci: update GitHub Actions runtimes
What:
- bump actions/checkout from v4 to v6 in CI and yolo workflows
- bump DeterminateSystems/nix-installer-action from v13 to v22

Why:
- remove Node 20 action runtime warnings before GitHub's Node 24 migration window
- keep the packaging pipelines on maintained action runtimes

Tests:
- ruby -e 'require "yaml"; YAML.load_file(".github/workflows/ci.yml"); YAML.load_file(".github/workflows/yolo-update.yml")'
- git diff --check
2026-05-05 10:59:39 +02:00
joshp123
ba7d1573a4 ci: focus OpenClaw checks on Nix package contract
What:
- replace the misleading gateway test check with a source-checks build/config-options check
- remove the full upstream Vitest suite from the hard Nix promotion gate
- document that yolo validates the Nix-owned package contract, not upstream source test health

Why:
- the current full packageable upstream release builds as a package but has failing upstream Vitest cases when rebuilt from source
- nix-openclaw should block on packaging, smoke startup, config generation, module activation, and app artifacts rather than an upstream-owned unit test suite

Tests:
- git diff --check
- bash -n scripts/update-pins.sh scripts/hm-activation-macos.sh nix/modules/home-manager/openclaw-launchd-relink.sh nix/scripts/source-checks-build.sh nix/scripts/source-checks-check.sh nix/scripts/config-options-check.sh
- ruby -e 'require "yaml"; YAML.load_file(".github/workflows/ci.yml"); YAML.load_file(".github/workflows/yolo-update.yml")'
- nix eval --accept-flake-config --raw .#checks.x86_64-linux.source-checks.drvPath
- nix eval --accept-flake-config --raw .#checks.x86_64-linux.ci.drvPath
- nix flake show --accept-flake-config --all-systems --json
- scripts/check-flake-lock-owners.sh
- node scripts/select-openclaw-release.test.mjs
- scripts/hm-activation-macos.sh
- nix build --accept-flake-config -L .#checks.aarch64-darwin.ci
2026-05-05 10:52:55 +02:00
joshp123
94fa2e2ef3 ci: use standard Linux runners
Blacksmith Linux hung twice during final verification while the same check passed once in between. Move Linux validation back to ubuntu-latest and keep explicit timeouts so the packaging gate favors reliability over runner speed.

Verification: git diff --check; ruby YAML parse
2026-05-05 10:34:18 +02:00
joshp123
9c2b207501 ci: bound yolo release validation
Apply the same timeout discipline to the automated OpenClaw pin updater so release validation cannot hang indefinitely before rewriting main.

Verification: git diff --check; ruby YAML parse
2026-05-05 10:17:17 +02:00
joshp123
c8782f7631 ci: bound OpenClaw packaging checks
Add explicit CI timeouts around the Linux and macOS packaging gates so a wedged OpenClaw build fails inspectably instead of hanging indefinitely.

Verification: git diff --check; ruby YAML parse
2026-05-05 10:07:08 +02:00
joshp123
a468354c55 fix: harden OpenClaw Nix release packaging
What:
- make openclaw the canonical agent-first package surface and document the maintainer automation contract
- select the newest full packageable OpenClaw stable release and report newer assetless stable releases
- validate public CLI config, smoke-test gateway runtime, and share source checks across gateway tests/config option generation
- fix Nix-store hardlink runtime handling and Linux builder scratch space
- add daily Codex maintainer automation for direct-to-main repair after full gates
- block yolo promotion if promote materializes a different diff than validation

Why:
- keep nix-openclaw reliable for macOS and Linux users while upstream release assets lag source tags
- make yolo and daily automation uphold one clean Nix package contract

Tests:
- node scripts/select-openclaw-release.test.mjs
- bash -n scripts/update-pins.sh
- sh -n nix/scripts/build-root.sh nix/scripts/gateway-install.sh nix/scripts/gateway-prebuild.sh nix/scripts/gateway-tests-check.sh nix/scripts/source-checks-check.sh
- ruby -e 'require "yaml"; YAML.load_file(".github/workflows/yolo-update.yml")'
- scripts/check-flake-lock-owners.sh
- GITHUB_ACTIONS=true scripts/update-pins.sh select
- nix flake show --accept-flake-config
- nix build .#checks.aarch64-darwin.ci --accept-flake-config --max-jobs 1 -L
- nix build .#checks.x86_64-linux.ci --accept-flake-config --max-jobs 1 -L
2026-05-05 08:00:13 +02:00
joshp123
34e5f011b9 fix(ci): validate stable release bumps before promotion
What:
- split the stable-release updater into read-only selection and pin materialization modes
- rewrite yolo into select, validate-linux, validate-macos, and promote jobs
- fail yolo when the newest stable release is incomplete instead of silently sticking
- update maintainer docs to describe the new safe promotion policy

Why:
- stop direct yolo pushes from moving main without the same Linux and macOS proof as CI
- keep mirroring the newest stable release while making broken upstream releases visible

Tests:
- bash -n scripts/update-pins.sh
- ruby -e 'require "yaml"; YAML.load_file(".github/workflows/yolo-update.yml"); puts "yaml-ok"'
- GITHUB_ACTIONS=true GH_TOKEN="$(gh auth token)" scripts/update-pins.sh select
- temp copy pinned to v2026.4.11: scripts/update-pins.sh select emits v2026.4.14 tuple
2026-04-14 18:10:25 +02:00
joshp123
4e93f4ac56 feat(releases): mirror OpenClaw stable releases
What:
- switch the pin updater from upstream-main commit selection to upstream stable release selection
- restore Yolo Update Pins as an hourly stable-release poller
- update maintainer and README docs to describe stable-release mirroring and the recovery lesson

Why:
- OpenClaw stable is already tag-based upstream, and nix-openclaw should mirror that release line directly
- this removes the old latest-green-main churn model and keeps source + app pins tied to one published upstream release

Tests:
- bash -n scripts/update-pins.sh
- GITHUB_ACTIONS=true GH_TOKEN="$(gh auth token)" scripts/update-pins.sh
2026-04-10 16:05:01 +02:00
joshp123
88a4647384 fix(ci): move linux onto the larger blacksmith runner
What:
- move the Linux CI job to blacksmith-16vcpu-ubuntu-2404
- switch Linux Nix installation to cachix/install-nix-action

Why:
- the recovery line exhausted disk on ubuntu-latest during the Linux aggregator build
- the larger runner kept the normal parallel build graph intact and the cachix installer worked reliably there

Tests:
- final green CI run on main: 24217118174
2026-04-10 16:02:46 +02:00
joshp123
e97594cd50 ci: reset main onto clean recovery line
What:
- restore one visible CI workflow
- add CI concurrency and Linux failure-log dumping
- disable yolo during release recovery
- delete the old split workflow_run files

Why:
- cut away the post-reset churn immediately
- keep one readable contract on main
- prevent any updater mutation during recovery

Tests:
- git diff --check
2026-04-09 19:31:45 +02:00
joshp123
d1314e9c5c 🤖 nix: keep gateway speedups and drop cache-only workflow
What:
- set `dontFixup = true` for `openclaw-gateway`
- speed install phase by moving build outputs instead of deep-copying node_modules
- add lightweight dangling-symlink integrity check in gateway install script
- remove `.github/workflows/cache-only.yml`

Why:
- keep the high-value packaging/build speed improvements
- keep one minimal safety guard when fixup is skipped
- remove flaky cache orchestration that adds CI latency and merge-SHA timeout failures

Tests:
- not run locally (per-request: CI-only validation due local NixOS issues)
- will validate via GitHub Actions/Garnix on push to main
2026-02-15 21:12:21 -08:00
joshp123
2b3c43d1d0 revert: pause cachix migration; restore garnix CI 2026-02-14 11:38:43 -08:00
joshp123
d6e127d1ba ci: build and push nix outputs to cachix 2026-02-13 23:33:43 -08:00
joshp123
876af1e732 ci: rename cache warming workflow 2026-02-13 23:29:47 -08:00
joshp123
ae0c7fbafa ci: add nix build cache smoke workflow 2026-02-13 23:29:21 -08:00
joshp123
03d4e8403e ci: debug workflow parse (smoke only) 2026-02-13 23:27:46 -08:00
joshp123
8f42d20c1c ci: simplify workflow name 2026-02-13 23:26:32 -08:00
joshp123
a7bbec254e ci: simplify build-and-cache workflow (push only) 2026-02-13 23:25:33 -08:00
joshp123
d7dd0aa144 ci: fix workflow name parsing and cache-only trigger 2026-02-13 23:23:11 -08:00
joshp123
a93112edb7 ci: fix nix build & cache workflow parsing/push gating 2026-02-13 23:21:01 -08:00
joshp123
33f8b9b73c ci: run cache-warming builds only on main/yolo 2026-02-13 23:13:36 -08:00
joshp123
507b50a853 ci: replace garnix cache warmup with github actions + cachix
- Add Nix Build & Cache workflow (linux + macOS) to build repo targets and optionally push to Cachix
- Rework Cache Only to verify Cachix outputs after build workflow completes
- Update README pipeline docs to reflect GHA + Cachix
2026-02-13 23:12:42 -08:00
DJTBOT
9d8751d092 🤖 ci: add linux hm activation workflow
What:
- add GitHub Actions workflow for x86_64-linux HM activation check

Why:
- unify HM coverage in CI alongside macOS
- avoid relying on Garnix for test signal

Tests:
- nix build .#checks.x86_64-linux.hm-activation --print-build-logs --accept-flake-config (ok; eval warnings)
2026-02-03 13:49:14 -08:00
DJTBOT
5ee2f8190c ci: add HM activation tests
Add a Linux nixosTest for Home Manager activation and a macOS CI workflow to run the activation script.

Wire the new Linux check into flake checks and Garnix.

Tests: not run (CI wiring).
2026-02-01 00:15:26 +01:00
DJTBOT
8cfba3bc3c ci: verify Garnix cache availability
Cache-only now checks cache.garnix.io for all required outputs with retries, ensuring green means cached.

Tests: not run (CI change).
2026-01-31 15:05:16 +01:00
DJTBOT
39537a4667 🐛 fix: rename moltbot → openclaw in CI workflows 2026-01-30 14:53:48 +01:00
DJTBOT
9d8bafc4a8 🔄 rebrand: moltbot → openclaw
Rename all packages, modules, scripts, docs from moltbot to openclaw.

- Packages: moltbot-gateway → openclaw-gateway, moltbot → openclaw
- Binary: mainProgram now 'openclaw' (matches upstream package.json)
- Modules: homeManagerModules.openclaw, darwinModules.openclaw
- Programs: programs.openclaw
- Paths: ~/.openclaw, /tmp/openclaw, lib/openclaw
- Env vars: OPENCLAW_LOG_DIR, OPENCLAW_RELOAD_HM_CMD
- Launchd: com.steipete.openclaw.*
- Plugin API: openclawPlugin
- Kept: CLAWDBOT_* env vars (upstream still uses these)
- Kept: upstream source patch match string in gateway-postpatch.sh

Tests: not run locally (x86_64-linux; CI will validate)
2026-01-30 14:34:49 +01:00
DJTBOT
6a6ca672e5 CI: run cache/config guards after yolo pins
What: trigger Cache Only + Config Options Guard via workflow_run on Yolo Update Pins
Why: Yolo uses GITHUB_TOKEN so push workflows don't fire; ensures guardrails run on pin bumps
Tests: not run (CI config change)
2026-01-29 21:37:29 +01:00
DJTBOT
c47927fdb3 🤖 stabilize gateway tests + cache-only targets
What:
- bypass DNS lookup in SSRF resolver when MOLTBOT_DNS_BYPASS=1
- set DNS bypass env vars for gateway tests
- update cache-only workflow to moltbot package names

Why:
- fix Garnix gateway-tests in no-DNS environments
- keep cache-only checks aligned with renamed packages

Tests:
- not run (CI/Garnix)
2026-01-29 10:13:36 +01:00
DJTBOT
48930e35b2 🤖 add flake.lock owner allowlist
What:
- add flake.lock GitHub owner allowlist + check script
- run allowlist check in config-options CI

Why:
- guard against unexpected supply-chain inputs

Tests:
- scripts/check-flake-lock-owners.sh flake.lock scripts/allowed-flake-lock-owners.txt
2026-01-28 16:09:54 +01:00
DJTBOT
f0482a8a0c 🤖 rename nix-moltbot surfaces to moltbot
What:
- rename Clawdbot modules/packages/scripts/docs to Moltbot naming
- update yolo updater + config generation for Moltbot schema
- keep Clawdbot app asset names + env exports for upstream compatibility

Why:
- align Nix packaging with moltbot org rename
- fix hourly pin update failures after schema rename

Tests:
- not run (blocked on updated nix-moltbot remote for full nixos-config build)
2026-01-28 12:21:06 +01:00
DJTBOT
6086fae266 ci: wait for garnix in cache-only
What: add wait loop for Garnix check completion.

Why: avoid cache-only race before Garnix uploads substitutes.

Tests: not run (CI change)
2026-01-14 15:32:52 +01:00
DJTBOT
91386cade1 ci: add cache-only check
what: add cache-only workflow to require substituter hits
why: fail fast when cache misses would trigger builds

tests: not run (CI)
2026-01-14 12:50:05 +01:00
DJTBOT
942f05228d 🤖 codex: keep config options fresh on pin bumps 2026-01-11 16:40:39 +01:00
DJTBOT
7b4ffc2443 🤖 codex: add yolo pin updater (no-issue)
What:
- add hourly GitHub Action to update clawdbot source/app pins
- add updater script to resolve main SHA, release asset, and hashes

Why:
- keep nix-clawdbot tracking upstream main automatically

Tests:
- nix flake check --accept-flake-config
2026-01-09 01:34:14 +01:00
DJTBOT
bad94c1b40 Simplify CI to stable Linux+macOS builds 2026-01-07 16:55:30 +01:00
DJTBOT
2aaf9b47a6 ci: disable docker publish on push 2026-01-07 15:49:32 +01:00
DJTBOT
9796b3d388 Build and push multi-arch docker tags 2026-01-04 22:24:58 +01:00
DJTBOT
67f8252709 Use arm64 runner for docker build in CI 2026-01-04 21:55:17 +01:00
DJTBOT
f24d5da407 Source nix-daemon profile after install 2026-01-04 21:09:50 +01:00
DJTBOT
c67917ef10 Fix determinate nix installer flags 2026-01-04 20:51:11 +01:00
DJTBOT
584e6a5471 Build aarch64 docker image via single-user Nix 2026-01-04 20:42:51 +01:00
DJTBOT
e3a5fe9c40 Use arm64 runner for docker build 2026-01-04 19:23:58 +01:00
DJTBOT
f485e722ac Use grep for rev parsing in CI 2026-01-04 19:11:57 +01:00
DJTBOT
a116bd794d Make Nix install non-interactive in CI 2026-01-04 19:11:02 +01:00
DJTBOT
5523b51113 Fix GH Actions workflow rev parsing 2026-01-04 19:10:09 +01:00
DJTBOT
24c12d4228 Fix workflow yaml indentation 2026-01-04 19:06:03 +01:00
DJTBOT
84dda6ee7c Use ubuntu-latest runner for docker publish 2026-01-04 19:02:27 +01:00