Commit graph

20 commits

Author SHA1 Message Date
Philip Peterson
c22aae0591 Installs follow registry.quineglobal.com/quine-linux
Some checks failed
Image, disk image and live ISO / iso (push) Has been cancelled
The live ISO's installs now pull and update from
registry.quineglobal.com/quine-linux:latest (Taskfile's UPDATE_IMAGE),
our own pull-only name for the forge's image, instead of the forge's
hostname, so the update source outlives where the images are stored. CI
still pushes to the forge.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 04:19:24 -09:00
Philip Peterson
1831c21089 Drop the homegrown installer ISO; the live ISO is the installer, as Aurora's
All checks were successful
Image, disk image and live ISO / iso (push) Successful in 26m30s
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>
2026-10-31 04:11:12 -08:00
Philip Peterson
f4c57a09a6 iso.yml: keep only the latest build's files in MinIO
All checks were successful
Image, installer ISO, disk image and live ISO / iso (push) Successful in 21m33s
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>
2026-10-31 02:59:33 -08:00
Philip Peterson
79457c2a4b Build a live ISO too, and put it in releases
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>
2026-10-31 01:48:11 -08:00
Philip Peterson
a17dfb8f2f Build a disk image (qcow2) too, and put it in releases
All checks were successful
Image, installer ISO and disk image / iso (push) Successful in 14m30s
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>
2026-10-31 01:30:21 -08:00
Philip Peterson
5daf1b5101 iso.yml: a v* tag publishes a release
Some checks failed
Image and installer ISO / iso (push) Has been cancelled
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>
2026-10-31 01:24:26 -08:00
Philip Peterson
e7b5bfc4d6 iso.yml: register the daily schedule (it came in with [skip ci], which Forgejo ignores)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 23:44:09 -08:00
Philip Peterson
c830a9f889 iso.yml: actions/checkout from our pull mirror [skip ci]
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 22:23:33 -08:00
Philip Peterson
5a1c89b705 Vendor upstream images into the forge's mirror/ before pulling [skip ci]
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 19:57:21 -08:00
Philip Peterson
a18d70910e iso.yml: also build daily, after Aurora's daily build [skip ci]
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 13:47:58 -08:00
Philip Peterson
4f7ee58922 Build on the published Aurora image, and publish ours
All checks were successful
Image and installer ISO / iso (push) Successful in 6m55s
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>
2026-10-30 05:28:34 -08:00
Philip Peterson
799fb72647 The installer ISO lands in output/bootiso/, not output/bootc-installer/ [skip ci]
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>
2026-10-30 05:07:57 -08:00
Philip Peterson
dedd12c319 iso.yml: find the ISO bootc-image-builder wrote
All checks were successful
Installer ISO / iso (push) Successful in 10m5s
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>
2026-10-30 04:56:45 -08:00
Philip Peterson
fe4d36135c iso.yml: pull the base images first, with retries
Some checks failed
Installer ISO / iso (push) Failing after 8m49s
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>
2026-10-30 04:35:57 -08:00
Philip Peterson
2326d0b106 iso.yml: install only the tools the runner lacks
Some checks failed
Installer ISO / iso (push) Failing after 15s
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>
2026-10-30 04:03:55 -08:00
Philip Peterson
a4452530e0 iso.yml: don't hand Forgejo's token to just's installer
Some checks failed
Installer ISO / iso (push) Failing after 33s
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>
2026-10-30 03:56:17 -08:00
Philip Peterson
b744a378e4 iso.yml: let just's installer overwrite an earlier run's binary
Some checks failed
Installer ISO / iso (push) Failing after 33s
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>
2026-10-30 03:53:32 -08:00
Philip Peterson
2d969753d6 iso.yml: take MINIO_ACCESS_KEY from a variable too
Some checks failed
Installer ISO / iso (push) Failing after 22s
It's the MinIO user's name, not a secret, and it's set as a
quine-global-labs org variable.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 03:49:58 -08:00
Philip Peterson
a3316eb2a4 Build Aurora from source as stage 0
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>
2026-09-28 00:47:44 -08:00
Philip Peterson
8ad5e45dc2 Build the installer ISO on Forgejo and upload it to MinIO
.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>
2026-09-27 20:34:46 -08:00