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; # 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. # 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 - uses: christopherhx/gitea-download-artifact@v4
# 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
with: with:
path: | name: iso
steamify-cachyos-dev/cachyos.iso path: iso
steamify-cachyos-dev/cachyos.iso.version
key: cachyos-iso-${{ steps.cachyos.outputs.release }}
- 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: env:
CI: "1" CI: "1"
VM_TIMEZONE: UTC VM_TIMEZONE: UTC
@@ -273,9 +267,9 @@ jobs:
run: | run: |
mkdir -p ~/.ssh ~/vms/pkg-cache mkdir -p ~/.ssh ~/vms/pkg-cache
ssh-keygen -q -t ed25519 -N "" -C steamify-vm -f ~/.ssh/steamify-vm_ed25519 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 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 "$iso"
VM_DIR="$HOME/vms/steamify-vm" scripts/vminstall.sh --iso cachyos.iso
# Two suites at a time, 4 GB and 2 vCPUs each (vmsuite.sh). # Two suites at a time, 4 GB and 2 vCPUs each (vmsuite.sh).
- name: vmtest.sh (every suite) - 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 - `.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, 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 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 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 (`STEAMIFY_BUILD_STAMP`), boot menu and `/etc/steammachine-iso-build`. The build reads no clock; without a
tag everything says `local`. 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). 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 - 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. `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. - CachyOS's own `Desktop ISO` workflow (`build.yml`) is removed here; the test job of iso-2-gitea-build.yml replaces it.