mirror of
https://github.com/theupriser/steamify-cachyos-live-iso.git
synced 2026-10-02 15:10:26 +02:00
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:
1 parent
34e3d2ae4a
commit
85205dd614
2 files changed
+12
-18
No files matched your search
@@ -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)
|
||||||
|
|||||||
@@ -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.
|
||||||
Reference in new issue
Block a user