Commit graph

8 commits

Author SHA1 Message Date
veilor-org
2782b72ead sre: release pipeline w/ ISO split, GPG sig, MOK signing scaffold
- build-iso.yml: on tag push (v*.*.*), split ISO into 1.9G parts, GPG-sign
  the sha256 with GPG_PRIVATE_KEY secret, and auto-create release with
  softprops/action-gh-release@v2 attaching part files + sig + reassembly
  instructions. Falls back to legacy release.published path.
- build-iso.yml: optional EFI Secure Boot signing step. If MOK_PRIVATE_KEY
  + MOK_CERT secrets are present, sbsign each .efi inside the ISO and
  repack with xorriso; otherwise warn and ship unsigned. Refresh sha256.
- release-checksums.yml: new PR-time gate. Validates source + generated
  CI kickstart, shellchecks scripts, parses every workflow YAML, and
  asserts the split size stays under GitHub'''s 2 GiB asset cap.
- scripts/gen-mok-key.sh: idempotent MOK keypair generator (RSA-4096,
  10y), outputs to gitignored build/keys/. Header documents mokutil
  enrollment and gh secret upload. exec bit set in index.
- .gitignore: add build/keys/, *.priv, *.der.

User must add GitHub secrets before the next tagged release:
  GPG_PRIVATE_KEY  — armored private key for sha256 signing
  MOK_PRIVATE_KEY  — sbsign EFI signing key (PEM)
  MOK_CERT         — public cert (DER) for sbsign + mokutil enrollment
2026-05-01 23:39:19 +01:00
veilor-org
a23ce6310a ci: patch livecd-creator __get_efi_image_stanza LABEL → CDLABEL
Upstream bug in /usr/lib/python3.14/site-packages/imgcreate/live.py:
  if self._isDracut:
      args["rootlabel"] = "live:LABEL=%(fslabel)s"   # WRONG
  else:
      args["rootlabel"] = "CDLABEL=%(fslabel)s"

For dracut path on EFI grub it writes `root=live:LABEL=...` but
dracut needs `live:CDLABEL=...` to look up ISO9660 by CD volume id.
Result: parse-livenet hook stalls indefinitely.

CI now sed-patches the file in-place before build. Reported upstream
livecd-tools as separate task.
2026-05-01 21:26:34 +01:00
veilor-org
7c4a94d763 ci: tmpdir on /var (host ext4, 80GB+) instead of /tmp tmpfs (16GB cap)
POSTTRANS ldconfig hit ENOSPC/ROFS — KDE install + dnf cache + scriptlet
working set exceeds 16G tmpfs. Move livecd-creator tmpdir to /var/lmc on
runner's host ext4 disk.
2026-04-30 17:55:08 +01:00
veilor-org
1daaefd857 v0.3 theme: strip onyx refs from comments (use 'reference system'); lint: filter self-referencing grep patterns 2026-04-30 17:19:12 +01:00
veilor-org
3e6cd79f81 ci: switch livemedia-creator → livecd-creator (purpose-built for live ISOs, handles EFI/BOOT) 2026-04-30 16:38:49 +01:00
veilor-org
c62a5489f2 ci: pre-create /tmp/veilor-lmc, strip fix-repo line for CI run
Local builds need fix-repo because host has stale libselinux vs newer pcre2.
CI fresh container has matched libs, fix-repo unnecessary and refs invalid
(file:///tmp/veilor-fix-repo not present in CI). sed strips that ks line.
2026-04-30 14:04:18 +01:00
veilor-org
86b3a6fa7a ci: switch refs from veilorveilor-org (GH org slug); domain veilor.org 2026-04-30 13:59:20 +01:00
veilor
d44e9bbdd9 ci: github actions workflow (build-iso + lint), CONTRIBUTING, CODEOWNERS, PR template
CI builds in fresh Fedora 43 container — matched pcre2/libselinux/selinux-policy
versions, no fix-repo hack needed. Container starts every run from clean
state, no zombie collisions. Fastest path to first green ISO.
2026-04-30 13:56:03 +01:00