Codifies the markdown format Sam applied in bd94b87 / 30cf590 as a project rule rather than per-file judgment. Prettier 3 defaults with proseWrap=preserve (no prose reflow), printWidth=80, embedded code formatting off so we don't touch fenced shell/JSON blocks. .prettierignore scopes Prettier to active docs: - excludes tmp/, cache/, node_modules/, build artifacts - excludes CHANGELOG.md + RELEASE-NOTES-*.md (hand-formatted, rigid) - excludes .archive/ and .opencode/ (historical / tooling internal) - excludes bundled bootstrap.html Reformatted 16 active .md files: padded markdown tables, blank line before lists (CommonMark-strict), `*emph*` -> `_emph_`. No content changes — diffs are all whitespace/alignment/emphasis style. Verified: `npx prettier@3 --check '**/*.md'` reports all clean. Build: not run — docs + tooling config only. Tests: pass — prettier --check is green; git diff confirms no content deletions, only formatting. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| README.md | ||
Build Automation
System Prerequisites
Before setting up automation, ensure the controlplane has bhyve support installed:
sudo pkg install edk2-bhyve
This is required for testing the ISO in bhyve VMs before deployment.
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
- Codeberg →
Clawdie/Clawdie-ISO→ Settings → Actions → Runners → Create Runner → copy token - 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).