build-image: serialize host-wide with flock, clean up stale mounts/devices
build-image / validate (push) Successful in 10s
ci / cook (push) Successful in 11s
build-image / build-image (phyllomeos-headless, 8192) (push) Successful in 23m38s
build-image / build-image (phyllomeos, 16384) (push) Successful in 32m1s

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>
This commit is contained in:
Lukas Greve
2026-09-23 12:46:08 +02:00
co-authored by Claude Sonnet 5
parent 67316d9852
commit b8cd2966f4
2 changed files with 29 additions and 3 deletions
+2 -2
View File
@@ -42,8 +42,8 @@ jobs:
runs-on: fedora
strategy:
fail-fast: false
# One image at a time: each build takes loop devices, RAM and tens of GiB
max-parallel: 1
# NB: Gitea runs every matrix entry as its own task, so `max-parallel`
# does not serialize them; build-image.sh takes a host-wide flock instead.
matrix:
include:
- edition: phyllomeos