ci: the suites' base VM is installed from the ISO this run built (Steamify step skipped); no CachyOS ISO download or cache

This commit is contained in:
theupriser committed 2026-09-30 08:46:11 +02:00
1 parent 34e3d2ae4a
commit 85205dd614
2 files changed
+12 -18

No files matched your search

+10 -16
View File
@@ -248,22 +248,16 @@ jobs:
# The suites run on a plain CachyOS VM (Plasma, no Steamify): the newest CachyOS ISO, installed once;
# every block then starts from a fresh overlay of that VM.
# The CachyOS ISO (~3 GB), only the base of the suites' plain VM (not the Steamify ISO this run builds: that one
# goes to the other jobs as the artifact `iso`): cached per CachyOS release.
- name: CachyOS release
id: cachyos
run: |
rel="$(curl -fsL https://cachyos.org/download/ | grep -oE 'cachyos-desktop-linux-[0-9]+' | head -n 1)"
echo "release=${rel:?no CachyOS release found}" >> "$GITHUB_OUTPUT"
- name: Cache - the CachyOS ISO
uses: actions/cache@v4
- uses: christopherhx/gitea-download-artifact@v4
with:
path: |
steamify-cachyos-dev/cachyos.iso
steamify-cachyos-dev/cachyos.iso.version
key: cachyos-iso-${{ steps.cachyos.outputs.release }}
name: iso
path: iso
- name: Plain CachyOS VM
# The suites test steamify.sh from a plain system, so the base VM is installed from the ISO this run built
# with its Steamify step skipped (VM_STEAMIFY=skip): the ISO's installer, kernels, packages and boot loader
# are tested, every block then starts from a fresh overlay of that VM. (The boot loader jobs test the
# ISO with Steamify installed.)
- name: Base VM from the new ISO
env:
CI: "1"
VM_TIMEZONE: UTC
@@ -273,9 +267,9 @@ jobs:
run: |
mkdir -p ~/.ssh ~/vms/pkg-cache
ssh-keygen -q -t ed25519 -N "" -C steamify-vm -f ~/.ssh/steamify-vm_ed25519
iso="$(ls "$GITHUB_WORKSPACE"/iso/*.iso | head -n 1)"
cd steamify-cachyos-dev
./get-iso.sh # does nothing when the cached ISO is the current release
VM_DIR="$HOME/vms/steamify-vm" scripts/vminstall.sh --iso cachyos.iso
VM_DIR="$HOME/vms/steamify-vm" scripts/vminstall.sh --iso "$iso"
# Two suites at a time, 4 GB and 2 vCPUs each (vmsuite.sh).
- name: vmtest.sh (every suite)
+2 -2
View File
@@ -121,7 +121,7 @@ Full write-up, with every trap: `steamify-iso-release` in steamify-cachyos-dev.
- `.github/workflows/iso-2-gitea-build.yml` (Gitea, `on: push: tags: v*`, skipped on GitHub) runs four jobs for that
tag: build the ISO, test it (steamify-cachyos-dev's `scripts/vmbootloadertest.sh --install`, one job per boot loader,
parallel up to the runner's capacity; needs `/dev/kvm` on the runner and checks out steamify-cachyos-dev `main` and
steamify-cachyos at the ISO's version from the mirror), then, after those, the suites (`scripts/vmtest.sh cli menu hw installer toggles` on a plain CachyOS VM installed from the newest CachyOS ISO, two at a time), and only when all tests passed attach it to the mirror's release. The tag decides everything: Steamify version (`steamify-prepare.sh`
steamify-cachyos at the ISO's version from the mirror), then, after those, the suites (`scripts/vmtest.sh cli menu hw installer toggles` on a plain VM installed from the new ISO with `VM_STEAMIFY=skip`, two at a time), and only when all tests passed attach it to the mirror's release. The tag decides everything: Steamify version (`steamify-prepare.sh`
takes `STEAMIFY_VERSION`), file name (`STEAMIFY_ISO_VERSION` -> `iso_version` in `profiledef.sh`), label
(`STEAMIFY_BUILD_STAMP`), boot menu and `/etc/steammachine-iso-build`. The build reads no clock; without a
tag everything says `local`.
@@ -131,5 +131,5 @@ Full write-up, with every trap: `steamify-iso-release` in steamify-cachyos-dev.
GitHub doesn't have, and the release with them. GitHub releases can't hold the ISO (2 GB per file).
- Gitea needs `[repository.release] FILE_MAX_SIZE` above the ISO (413 otherwise) and the runner
`container: privileged: true` (archiso mounts `/proc`); the workflow's `--privileged` option is ignored.
- Caches (`actions/cache`, the runner's cache server): pacman's package cache per job kind (build, test), the VMs' packages (`VM_CACHE`, `~/vms/pkg-cache`) and the CachyOS ISO for the suites, per release. Each job first installs only node and git, restores the caches, then installs the rest.
- Caches (`actions/cache`, the runner's cache server): pacman's package cache per job kind (build, test) and the VMs' packages (`VM_CACHE`, `~/vms/pkg-cache`), keys per ISO week. Each job first installs only node and git, restores the caches, then installs the rest.
- CachyOS's own `Desktop ISO` workflow (`build.yml`) is removed here; the test job of iso-2-gitea-build.yml replaces it.