rig/commands
cluade-reviewer-andresmgsl cc5f478e77 fix(ci): the check job installs the tools its image does not ship
rig's own `ci / check` failed 9 times out of 27 ci.yml tasks on the first
Forgejo runner, every one on `shellcheck: command not found`. `ubuntu-latest`
maps to catthehacker's SLIM act image, and workflows written for GitHub
reasonably assume GitHub's tool surface.

Measured before choosing (2026-08-01, streaming ghcr layer blobs rather than
pulling): the parity image is 18.67 GB on the wire and 54.52 GB extracted,
against a box-class ci tenant with ~34-40 GB free. There is no cheap middle —
runner-22.04 is the same slim class, tool for tool, and ships no shellcheck
either. `apt-get install -y shellcheck` costs 7s and yields the same
ShellCheck 0.8.0 that full-22.04 carries.

So the slim default stays and the workflow equips itself. The `command -v`
short-circuit keeps either forge from paying for the other; the sudo is a
no-op on the act path and load-bearing on GitHub's.

`ubuntu-latest-full` ships in the default map beside it: a mapping pulls
nothing until a job matches it, and Forgejo freezes labels at registration,
so a label absent then cannot be added without re-registering.

A plain converge now warns when a runner carries a SUPERSEDED default —
matched against the exact strings rig has shipped, so a map the operator
chose stays silent. The message says plainly that nothing is broken.

Refs #144
2026-08-01 21:22:01 +00:00
..
lib fix: the --version read cannot die ahead of its own refusal 2026-07-28 09:26:17 +00:00
bootstrap-tenant.sh test: drive cron converge against stubbed systemctl 2026-07-25 19:11:13 +00:00
bootstrap-undo.sh feat: Forgejo-native CI — a ci-box tenant and a forgejo-runner family 2026-07-27 20:40:54 +00:00
bootstrap.sh fix: emit BOX_MANUAL line-by-line; bare command for single candidate 2026-07-29 22:38:32 +00:00
coolify-backup-install.sh fix: release channel is tag-only; revert coolify Documentation= 2026-07-29 14:45:40 +00:00
coolify-install.sh feat(bootstrap)!: machine roles carry a -server suffix; staging-server restored 2026-07-20 00:36:00 +00:00
db.sh feat(db): bring ad-hoc dump/restore on-box as rig db 2026-07-17 15:16:35 +00:00
forgejo-runner-install.sh fix(ci): the check job installs the tools its image does not ship 2026-08-01 21:22:01 +00:00
forgejo-runner-remove.sh fix: one checksum policy, labeler coverage, orphaned-unit removal 2026-07-27 21:19:33 +00:00
forgejo-runner-status.sh test(forgejo-runner): drive the liveness note's state boundary 2026-07-31 20:13:23 +00:00
manifest.sh feat: /etc/rig/manifest — which rig converged this machine, and when 2026-07-20 12:48:39 +00:00
platform.sh feat(platform): ID names the machine — a namespaced sha256 of /etc/machine-id, computed at run time, stored nowhere (#95) 2026-07-24 07:48:45 +00:00
runner-install.sh fix: headless credential prompts refuse loudly, naming their variable (#42) 2026-07-19 12:15:08 +00:00
runner-remove.sh fix: headless credential prompts refuse loudly, naming their variable (#42) 2026-07-19 12:15:08 +00:00
runner-repoint.sh fix: headless credential prompts refuse loudly, naming their variable (#42) 2026-07-19 12:15:08 +00:00
runner-status.sh fix(runner): install refuses a box registered to another repo 2026-07-13 14:57:28 +00:00
template-lint.sh test: cover machine template registry 2026-07-25 11:00:21 +00:00
users-apply.sh fix: gate 'users apply' on an empty file that would revoke everyone 2026-07-20 12:25:09 +00:00
users-close-root.sh fix: don't read a missing /run/sshd as a broken sshd config 2026-07-20 17:58:10 +00:00
users-status.sh fix(users): review findings — invoker gate, real SSH revocation, StrictModes-shaped close-root gate, trait-aware box role 2026-07-17 20:01:19 +00:00