clawdie-iso/runner
Sam & Claude 799f5a0701 docs(runner): cron as primary, Forgejo Actions as future option
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-04 20:04:21 +02:00
..
README.md docs(runner): cron as primary, Forgejo Actions as future option 2026-06-04 20:04:21 +02:00

Build Automation

Primary: cron job on controlplane

The simplest automation — runs weekly, no external dependencies.

# /etc/cron.d/clawdie-iso
# Rebuild ISO every Sunday at 03:00, publish to CMS nginx downloads
0 3 * * 0 root /home/clawdie/clawdie-iso/build.sh && \
              /home/clawdie/clawdie-iso/scripts/publish.sh \
              >> /var/log/clawdie-iso-build.log 2>&1

Enable:

echo '0 3 * * 0 root /home/clawdie/clawdie-iso/build.sh && /home/clawdie/clawdie-iso/scripts/publish.sh >> /var/log/clawdie-iso-build.log 2>&1' \
    > /etc/cron.d/clawdie-iso

Manual trigger:

cd /home/clawdie/clawdie-iso && sudo ./build.sh && sudo ./scripts/publish.sh

Future: Forgejo Actions (push-triggered CI/CD)

When the ISO build is stable and you want push-triggered rebuilds, add a self-hosted Forgejo runner on the controlplane. Codeberg runs Forgejo — no new account needed.

Install runner

pkg install forgejo-runner
# or fetch binary from codeberg.org/forgejo/runner/releases

Register

  1. Codeberg → Clawdie/Clawdie-ISO → Settings → Actions → Runners → Create Runner → copy token
  2. Run:
forgejo-runner register \
    --url https://codeberg.org \
    --token <TOKEN> \
    --name clawdie-build \
    --labels freebsd \
    --no-interactive

Sudo scope (build.sh + publish.sh only)

cat > /usr/local/etc/sudoers.d/forgejo-runner <<EOF
forgejo-runner ALL=(root) NOPASSWD: /home/clawdie/clawdie-iso/build.sh
forgejo-runner ALL=(root) NOPASSWD: /home/clawdie/clawdie-iso/scripts/publish.sh
EOF
chmod 440 /usr/local/etc/sudoers.d/forgejo-runner

Enable rc.d service

sysrc forgejo_runner_enable=YES
service forgejo-runner start

Add workflow file

Once the runner is online, add .forgejo/workflows/build.yml to trigger builds on push to main and weekly on schedule. See git history for the workflow template (commit message: feat: CI/CD pipeline, package lists, offline pkg-cache seeding).