Seed bootapi templates + distro catalog
ci/woodpecker/pr/validate Pipeline failed
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/push/pre-commit Pipeline was successful
ci/woodpecker/push/validate Pipeline failed

Initial content for bootapi's git-synced template set: the kickstart and iPXE
templates and the distro catalog (almalinux9, fedora) ported from bootapi's
embedded defaults, plus CI that validates every template/catalog renders for
every distro (bootapi validate) and shellchecks the %post blocks.

Claude-Session: https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv
This commit is contained in:
2026-07-28 23:10:35 +10:00
parent 769c40e830
commit 24fd6b3ffa
14 changed files with 491 additions and 1 deletions
+18
View File
@@ -0,0 +1,18 @@
when:
- event: [pull_request, push]
steps:
- name: pre-commit
image: git.unkin.net/unkin/almalinux9-gobuilder:20260606
commands:
- uvx pre-commit run --all-files
backend_options:
kubernetes:
serviceAccountName: default
resources:
requests:
memory: 512Mi
cpu: 1
limits:
memory: 2Gi
cpu: 2
+44
View File
@@ -0,0 +1,44 @@
when:
- event: [pull_request, push]
steps:
# Render every kickstart + iPXE script for every catalog distro against a
# fixture host, failing on any parse/resolve error or unresolved value. Reuses
# the real bootapi engine via its `validate` subcommand (fetched @main).
- name: validate
image: golang:1.25
environment:
GOFLAGS: -buildvcs=false
GOPRIVATE: git.unkin.net
GONOSUMCHECK: "1"
GOSUMDB: "off"
GOPROXY: direct
commands:
- go run git.unkin.net/unkin/bootapi/cmd/bootapi@main validate .
backend_options:
kubernetes:
serviceAccountName: default
resources:
requests:
memory: 512Mi
cpu: 1
limits:
memory: 2Gi
cpu: 2
# Best-effort shellcheck of the %post blocks (template actions stripped first).
- name: shellcheck
image: koalaman/shellcheck-alpine:stable
commands:
- apk add --no-cache bash
- bash ci/shellcheck-post.sh
backend_options:
kubernetes:
serviceAccountName: default
resources:
requests:
memory: 128Mi
cpu: 100m
limits:
memory: 512Mi
cpu: 500m