The installer ISO (installer/, task build-installer-iso) was our own: a
fedora-bootc:rawhide Anaconda environment with a vendored anaconda-webui,
assembled by bootc-image-builder's bootc-installer type. Tested on zeus it
installed unattended, wiping the first disk without asking, and then failed
(systemd-tmpfiles refused /mnt/sysroot because /mnt is a symlink in bootc
images). Aurora ships one installer, its live ISO, which live/ follows.
Also drops task build-iso and the two rawhide images only the installer used.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every commit's installer ISO (~7 GB each) was kept, and they filled the
forge VM's data disk. Tagged releases keep their own copies.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
live/: quine-linux plus the live session and Anaconda WebUI, adapted from
Aurora's live ISO (get-aurora-dev/iso); Titanoboa's script packs it into
the ISO. The installer installs quine-linux:latest from inside the ISO, and
plasma-setup creates the first user at first boot, as on the disk image.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bootc-image-builder's qcow2, with no user: Aurora's plasma-setup creates
the first one at first boot. Daily builds upload it to MinIO's
disk/latest/; tagged releases include it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The files go to MinIO's public releases/<tag>/ and a Forgejo release
links to them; the container image is tagged with the version too.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Stage 0 now comes from quine-global-labs/aurora's workflow, at
forge.quinefoundation.com/quine-global-labs/aurora:stable, instead of
being rebuilt here from the submodule. The workflow logs in to the
registry, pulls it with the other bases, builds quine-linux on it, pushes
forge.quinefoundation.com/quine-global-labs/quine-linux (latest, date,
commit), then builds and uploads the ISO as before. On the generic
runner-x86-linux label.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Run 8 found it there: bootc-image-builder names the folder after its
export. Fix the Taskfile's generates and the docs.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The build succeeded, but the upload looked for
output/bootc-installer/install.iso, which doesn't exist; the builder
names the folder after its export. Find install.iso under output/ and
print where it was.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
quay.io's CDN cut off a multi-GB fedora-bootc layer mid-download, and
buildah's pull inside the build gives up after one reconnect. Pull the
images the installer image and the ISO need beforehand, retrying.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
runner-x86-linux has task, just, yq, cosign and mc from nixpkgs. The
earlier failures were dl.min.io answering 410 Gone for mc (MinIO no
longer publishes community binaries), not GitHub refusing just; drop the
GITHUB_TOKEN workaround that was based on that misreading.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The installer sends $GITHUB_TOKEN to GitHub; in a Forgejo job that's
Forgejo's own token, so GitHub refused the download (410).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On a host-mode runner $HOME persists between jobs, so the second run
failed with 'just already exists'.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
stage-0/ is a submodule holding our fork of Aurora (upstream for now),
built with Aurora's own `just build` by the new `task build-base` into
localhost/aurora:stable. The Containerfile (stage 1) now builds FROM
${BASE_IMAGE}, which defaults to that image, instead of a pinned upstream
digest; the pin is now the submodule commit. build-image builds stage 0
first when needed, and BASE_IMAGE=ghcr.io/ublue-os/aurora:stable skips it
(the only option on macOS).
CI checks out submodules, fetches just, yq and cosign, and gets a longer
timeout for the Aurora build.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
.forgejo/workflows/iso.yml runs `task build-installer-iso` on a runner
labelled iso-builder (x86_64, root podman) and uploads the ISO to MinIO
under installer/<commit>/ and installer/latest/.
For unattended runs, the Taskfile now only uses sudo when not already root
(CI runners often lack it), and OUTPUT_DIR is absolute so the bind mount
into bootc-image-builder doesn't depend on relative-path support.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>