mirror of
https://github.com/theupriser/steamify-cachyos-live-iso.git
synced 2026-10-02 15:10:26 +02:00
- iso-release.yml -> iso-1-github-tag.yml (ISO 1/2: tag and release, GitHub) - steamify-iso.yml -> iso-2-gitea-build.yml (ISO 2/2: build and publish, Gitea) - the mirror sync takes its URL and token from GIT_UPRISER_URL / GIT_UPRISER_TOKEN and retries - docs and comments follow the new names
142 lines
4.1 KiB
YAML
142 lines
4.1 KiB
YAML
name: Desktop ISO
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
|
|
concurrency:
|
|
group: ${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
build:
|
|
# CachyOS's plain ISO and its quicktest matrix: only in CachyOS's own repo, not in this fork
|
|
# (the Steamify ISO is iso-2-gitea-build.yml).
|
|
if: github.repository == 'CachyOS/CachyOS-Live-ISO'
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: archlinux:base-devel
|
|
options: --privileged
|
|
name: Build
|
|
outputs:
|
|
builddate: ${{ steps.date.outputs.builddate }}
|
|
steps:
|
|
- name: Get build date
|
|
id: date
|
|
run: |
|
|
echo "builddate=$(date +'%y%m%d')" >> $GITHUB_OUTPUT
|
|
|
|
- name: Clone CachyOS-Live-ISO
|
|
id: clone
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Add CachyOS keyring
|
|
id: keyring
|
|
run: |
|
|
pacman-key --init
|
|
pacman-key --recv-keys F3B607488DB35A47 --keyserver keyserver.ubuntu.com
|
|
pacman-key --lsign-key F3B607488DB35A47
|
|
|
|
sed -i '/^\[core\]$/i[cachyos]\nServer = https://mirror.cachyos.org/repo/$arch/$repo\n' /etc/pacman.conf
|
|
|
|
- name: Install dependencies
|
|
id: dependencies
|
|
run: |
|
|
sudo pacman -Syu --noconfirm archiso cachyos-keyring mkinitcpio-archiso squashfs-tools grub
|
|
|
|
- name: Create build user
|
|
id: user-archiso
|
|
run: |
|
|
useradd builder -m
|
|
echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
|
chmod -R a+rw .
|
|
|
|
- name: Build ISO (${{ steps.date.outputs.builddate }})
|
|
id: build
|
|
run: |
|
|
sudo -H -E -u builder ./buildiso.sh
|
|
|
|
- name: Upload ISO to artifacts
|
|
id: upload
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: cachyos-desktop-linux-${{ steps.date.outputs.builddate }}
|
|
path: out/desktop/*
|
|
quicktest:
|
|
name: Testing (${{ matrix.bootloader }} / ${{ matrix.filesystem }})
|
|
runs-on: ubuntu-latest
|
|
needs: build
|
|
container:
|
|
image: archlinux:base-devel
|
|
options: --privileged
|
|
strategy:
|
|
fail-fast: false
|
|
max-parallel: 4
|
|
matrix:
|
|
bootloader: [grub, systemd-boot, refind, limine]
|
|
filesystem: [btrfs, xfs, ext4, f2fs, zfs]
|
|
steps:
|
|
- name: Clone CachyOS-Live-ISO
|
|
id: clone
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Install dependencies
|
|
id: dependencies
|
|
run: |
|
|
pacman -Syu --noconfirm git ffmpeg imagemagick tesseract-data-eng qemu-desktop
|
|
|
|
- name: Create build user
|
|
id: user
|
|
run: |
|
|
useradd builder -m
|
|
echo "builder ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
|
|
chmod -R a+rw .
|
|
|
|
- name: Build quickemu
|
|
id: quickemu
|
|
run: |
|
|
sudo -u builder git clone https://aur.archlinux.org/quickemu.git
|
|
cd quickemu
|
|
sudo -H -E -u builder makepkg --syncdeps --noconfirm
|
|
pacman -U --noconfirm quickemu*.pkg.tar.zst
|
|
cd ..
|
|
|
|
- name: Clone quicktest
|
|
id: clone-quicktest
|
|
uses: actions/checkout@v6
|
|
with:
|
|
repository: 'quickemu-project/quicktest'
|
|
path: 'quicktest'
|
|
|
|
- name: Download ISO
|
|
id: download
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
path: machines/cachyos-dailylive
|
|
merge-multiple: true
|
|
|
|
- name: Run quicktest
|
|
id: quicktest
|
|
run: |
|
|
./quicktest/quicktest test_install_calamares cachyos dailylive
|
|
env:
|
|
QT_NOTIFY: "false"
|
|
QT_OPEN_RESULTS: "false"
|
|
QT_QUICKGET_SKIP: "true"
|
|
QT_TESTCASES_DIR: "./testcases"
|
|
QUICKEMU_DISPLAY: "none"
|
|
QUICKEMU_VM_DIR: "./machines"
|
|
TEST_BOOTLOADER: "${{ matrix.bootloader }}"
|
|
TEST_FILESYSTEM: "${{ matrix.filesystem }}"
|
|
|
|
- name: Upload results to artifacts
|
|
id: upload-results
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: cachyos-desktop-linux-results-${{needs.build.outputs.builddate}}-${{ matrix.bootloader }}-${{ matrix.filesystem }}
|
|
path: results/*
|