A full build of both editions takes ~25 min on the fedora:host runner
(run 237: 10:46-11:10), too costly to repeat on every push to main.
build-image.yaml now triggers only on v*.*.* tags; the tag path already
publishes the image and kickstart as a release, so the main-only
upload-artifact step is dropped. Recipes are still linted and validated
on every push by ci.yml.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Gitea runs each matrix entry as its own task, so build-image.yaml's
`max-parallel: 1` never serialized the two editions -- both builds started
at once on the fedora:host runner and corrupted each other's global
anaconda/livemedia-creator state (/mnt/sysroot, /mnt/sysimage, loop and
device-mapper devices), surfacing as bootctl failing with "Couldn't find
EFI system partition" even though the dish's EFI partition was fine.
build-image.sh now takes a host-wide flock around livemedia-creator, and
under the lock first clears any stale mount/dm/loop device a previously
failed build left behind. Verified on the runner: both editions launched
concurrently now run serially under the lock and build successfully.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Manifest groups get a tier; only `default` is generated (make all TIER=...,
--tier). Default: phyllomeos (GNOME + virt-manager) and phyllomeos-headless,
Fedora 44, systemd-boot, CPU-agnostic hypervisor ingredient (hypervisor_type:
any). guest tier: guest-server, guest-desktop. experimental: biosboot/grub,
encrypted, rawhide. Generator clears stale recipes/dishes before writing.
build-image.sh: --dish and --tier; deploy.sh: --tier. build-iso.yaml replaced
by build-image.yaml: raw images for both editions on the fedora:host runner
(TMPDIR=/var/tmp, max-parallel 1), attached with the flattened kickstarts to
tagged releases. Live edition no longer built.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>