Commit Graph
100 Commits
Author SHA1 Message Date
theupriser e430e0bb01 Merge pull request #20 from theupriser/feature/iso-release-notes
Sync git.upriser.nl mirror / sync (push) Skipped
feat(ci): generated release notes (Steamify changelog and commits since the last release)
2026-09-30 13:30:21 +02:00
theupriser dac15ff9e4 feat(ci): release notes: wording when there is no earlier release to compare with
Sync git.upriser.nl mirror / sync (push) Skipped
2026-09-30 13:23:02 +02:00
theupriser 71d429915e feat(ci): release notes: clearer wording, workflow (ci) and docs commits left out of the ISO's change list, checksum section
Sync git.upriser.nl mirror / sync (push) Skipped
2026-09-30 13:22:47 +02:00
theupriser acde716b86 feat(ci): release notes are generated: the base version, Steamify's changelog section and the commits since the previous release; the mirror's release uses the same text 2026-09-30 13:20:22 +02:00
theupriser d077348ca2 Merge pull request #19 from theupriser/feature/iso-build-badge
Sync git.upriser.nl mirror / sync (push) Skipped
feat(ci): build badge in the GitHub release (running, succeeded, failed)
2026-09-30 13:07:49 +02:00
theupriser 2686b20fd6 feat(ci): a build badge in the GitHub release: running, then succeeded / failed / cancelled from the mirror's build
Sync git.upriser.nl mirror / sync (push) Skipped
2026-09-30 13:07:30 +02:00
theupriser f1689f5c6c Merge pull request #18 from theupriser/feature/iso-steamify-ref
Sync git.upriser.nl mirror / sync (push) Skipped
feat(ci): build the ISO with a Steamify branch (steamify_ref)
2026-09-30 13:06:52 +02:00
theupriser 2494c1ad2e feat(ci): build the ISO with a Steamify branch (input steamify_ref): a release branch tests its own version before it is released 2026-09-30 12:44:49 +02:00
theupriser 46ecbac514 Merge pull request #17 from theupriser/bugfix/iso-dispatch-build
Sync git.upriser.nl mirror / sync (push) Skipped
fix(ci): start the mirror's build by dispatch (a replaced tag starts no run)
2026-09-30 12:42:25 +02:00
theupriser bc75c692c6 fix(ci): dispatch the mirror's build with the full ref (refs/tags/<tag>) and show the server's error
Sync git.upriser.nl mirror / sync (push) Skipped
2026-09-30 12:40:28 +02:00
theupriser a0fcce57e8 fix(ci): the mirror's build is started by dispatch after the mirror has the tag (a replaced tag starts no run by itself)
Sync git.upriser.nl mirror / sync (push) Skipped
2026-09-30 12:38:22 +02:00
theupriser d6b63937ae Merge pull request #16 from theupriser/bugfix/iso-mirror-wait
Sync git.upriser.nl mirror / sync (push) Skipped
fix(ci): wait for the mirror to drop the replaced tag
2026-09-30 12:37:06 +02:00
theupriser 6222bf7c5c fix(ci): wait for the mirror to drop the old tag by the tag list (the single-tag URL always answers 404 there) 2026-09-30 12:35:46 +02:00
theupriser 38bc1c1aa9 Merge pull request #15 from theupriser/feature/iso-kind-input
Sync git.upriser.nl mirror / sync (push) Skipped
feat(ci): the kind of ISO build as an input, daily names, 10 releases per kind
2026-09-30 11:39:30 +02:00
theupriser 588627a14d feat(ci): ISOs are named by the day like CachyOS (steamify-cachyos-<ver>-<YYMMDD>), one per day and kind, at most 10 dev and 10 real releases kept
Sync git.upriser.nl mirror / sync (push) Skipped
2026-09-30 11:35:22 +02:00
theupriser 38ac8f1cba feat(ci): iso-1-github-tag.yml takes the kind of build (release, dev, auto) so it always runs from master 2026-09-30 11:32:25 +02:00
theupriser ceadf20a1b Merge pull request #14 from theupriser/feat/steamify
Sync git.upriser.nl mirror / sync (push) Skipped
Feat/steamify
2026-09-30 10:43:25 +02:00
theupriser 11e2ba62e9 ci: the Gitea flow only builds and releases; the VM tests run on GitHub
Sync git.upriser.nl mirror / sync (push) Skipped
2026-09-30 10:27:07 +02:00
theupriser 504f066a3f ci: the ISO's install test runs on Steam Machine hardware and on a plain PC (3 VMs at a time each, the plain PC after)
Sync git.upriser.nl mirror / sync (push) Skipped
2026-09-30 10:12:52 +02:00
theupriser a7f84cd5a0 ci: the test jobs use no actions (the runner's shared action clone broke parallel jobs); logs go into the job log
Sync git.upriser.nl mirror / sync (push) Skipped
2026-09-30 10:03:17 +02:00
theupriser 21e52ec81c ci: keep the install and serial logs of the boot loader VMs
Sync git.upriser.nl mirror / sync (push) Skipped
2026-09-30 09:43:12 +02:00
theupriser f37dcf6aa6 ci: the ISO's install test is a plain matrix again (one job per loader, 5 GB to install)
Sync git.upriser.nl mirror / sync (push) Skipped
2026-09-30 09:40:59 +02:00
theupriser 5dea6ac7d9 ci: the ISO flow only tests that the ISO installs correctly (vmbootloadertest.sh --quick)
Sync git.upriser.nl mirror / sync (push) Skipped
2026-09-30 09:38:42 +02:00
theupriser ea7cbfd179 ci: drop the suites stage from the ISO flow (steamify-cachyos tests steamify.sh in its own vmtest.yml)
Sync git.upriser.nl mirror / sync (push) Skipped
2026-09-30 09:33:09 +02:00
theupriser 02c207c9e5 ci: two fixed boot loader lanes (the runner ignores max-parallel)
Sync git.upriser.nl mirror / sync (push) Skipped
2026-09-30 09:02:23 +02:00
theupriser 13e4bbd0d6 ci: sync the git.upriser.nl mirror on every branch and tag
Sync git.upriser.nl mirror / sync (push) Skipped
2026-09-30 08:54:43 +02:00
theupriser 55a1c6ab61 ci: sync the git.upriser.nl mirror on pushes to master, feat/steamify and release branches (the mirror has no interval of its own)
Sync git.upriser.nl mirror / sync (push) Skipped
2026-09-30 08:54:06 +02:00
theupriser 85205dd614 ci: the suites' base VM is installed from the ISO this run built (Steamify step skipped); no CachyOS ISO download or cache 2026-09-30 08:46:11 +02:00
theupriser 34e3d2ae4a ci: the CachyOS ISO cache per CachyOS release again (the Steamify ISO of the run goes to the jobs as an artifact) 2026-09-30 08:43:23 +02:00
theupriser 448e2a5d79 ci: the CachyOS ISO cache gets an entry per workflow run 2026-09-30 08:43:07 +02:00
theupriser 2b72d90d30 ci: cache keys per ISO week instead of per run (no new multi-GB entry on every run) 2026-09-30 08:38:04 +02:00
theupriser af30018bd9 ci: cache pacman packages (build, test, suites), the VMs' packages and the CachyOS ISO 2026-09-30 08:29:41 +02:00
theupriser a74500b692 ci: a new run of the ISO workflow cancels the running one (one concurrency group, not per tag) 2026-09-30 08:28:27 +02:00
theupriser 779ee972cf ci: a suites stage after the boot loader tests (vmtest.sh: cli, menu, hw, installer, toggles on a plain CachyOS VM) 2026-09-30 08:27:34 +02:00
theupriser cfacfb2493 ci: 6 GB to install, 4 GB to test, 2 vCPUs: lean with headroom 2026-09-30 08:25:53 +02:00
theupriser d002c7d332 ci: lean test VMs: 2 vCPUs and 4 GB each, also to install 2026-09-30 08:25:28 +02:00
theupriser 028416b760 ci: 6 GB for the installer VM (VM_INSTALL_MEM) 2026-09-30 08:25:14 +02:00
theupriser 29ec7d2cde ci: boot loader test VMs keep their own RAM defaults (8 GB to install, 4 GB to test) 2026-09-30 08:24:27 +02:00
theupriser 8a98315bd5 ci: boot loader test VMs with 3 vCPUs each (the runner has 8 threads) 2026-09-30 08:24:06 +02:00
theupriser edb58b5ba9 ci: boot loader tests two at a time (8 GB VMs, ~20 GB of RAM) 2026-09-30 08:21:08 +02:00
theupriser e165202075 feat(ci): Gitea flow is build -> test (boot loader test per loader, parallel) -> release; drop upstream build.yml
iso-2-gitea-build.yml now has three jobs. The ISO goes between them as an artifact; the test job runs steamify-cachyos-dev's vmbootloadertest.sh --install for limine, systemd-boot and grub (needs /dev/kvm on the runner, fails at once with a reason without it); the release is only made when every test passed.
2026-09-30 08:20:51 +02:00
theupriser 2b7d2cde83 Merge pull request #13 from theupriser/feat/steamify
Desktop ISO / Build (push) Skipped
Desktop ISO / Testing (grub / btrfs) (push) Skipped
Desktop ISO / Testing (grub / ext4) (push) Skipped
Desktop ISO / Testing (grub / f2fs) (push) Skipped
Desktop ISO / Testing (grub / xfs) (push) Skipped
Desktop ISO / Testing (grub / zfs) (push) Skipped
Desktop ISO / Testing (limine / btrfs) (push) Skipped
Desktop ISO / Testing (limine / ext4) (push) Skipped
Desktop ISO / Testing (limine / f2fs) (push) Skipped
Desktop ISO / Testing (limine / xfs) (push) Skipped
Desktop ISO / Testing (limine / zfs) (push) Skipped
Desktop ISO / Testing (refind / btrfs) (push) Skipped
Desktop ISO / Testing (refind / ext4) (push) Skipped
Desktop ISO / Testing (refind / f2fs) (push) Skipped
Desktop ISO / Testing (refind / xfs) (push) Skipped
Desktop ISO / Testing (refind / zfs) (push) Skipped
Desktop ISO / Testing (systemd-boot / btrfs) (push) Skipped
Desktop ISO / Testing (systemd-boot / ext4) (push) Skipped
Desktop ISO / Testing (systemd-boot / f2fs) (push) Skipped
Desktop ISO / Testing (systemd-boot / xfs) (push) Skipped
Desktop ISO / Testing (systemd-boot / zfs) (push) Skipped
Release feat/steamify: renamed ISO workflows, mirror sync via secrets
2026-09-30 08:14:57 +02:00
theupriser 44354f99fa refactor(ci): name the ISO workflows after their order and host, secrets for the mirror's URL and token
- 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
2026-09-30 08:11:31 +02:00
theupriser f408f70e76 docs: use the renamed steamify-cachyos-live-iso repo name
- README clone instructions and the packagechooserq patch comment
2026-09-30 07:47:47 +02:00
theupriser c421549151 Merge pull request #12 from theupriser/bugfix/agents-release-pipeline
docs: AGENTS: the release pipeline
2026-09-29 23:05:57 +02:00
theupriser 7b7f3e6485 docs: AGENTS: the release pipeline (GitHub tag, ISO built and attached on the Gitea mirror) 2026-09-29 23:05:50 +02:00
theupriser fbbc22472e Merge pull request #11 from theupriser/bugfix/iso-sudo-env
fix: sudo mkarchiso keeps the release tag's variables
2026-09-29 22:39:46 +02:00
theupriser 85d49cf5c5 fix: sudo mkarchiso keeps STEAMIFY_ISO_VERSION and STEAMIFY_BUILD_STAMP (sudo dropped them: the ISO was named local, labelled LOCAL) 2026-09-29 22:39:39 +02:00
theupriser 68764f39d2 Merge pull request #10 from theupriser/bugfix/iso-no-own-clock
fix: the ISO build reads no clock of its own
2026-09-29 22:19:35 +02:00
theupriser 3ab89a638d fix: the ISO build reads no clock of its own: file name, label and boot menu come from the release tag only (GitHub's time); without a tag: local 2026-09-29 22:19:28 +02:00
theupriser 81961beaed Merge pull request #9 from theupriser/bugfix/iso-time-utc
fix(ci): the ISO release's time in UTC
2026-09-29 22:18:38 +02:00
theupriser 0a413a3d95 fix(ci): the ISO release's time in UTC again (GitHub's clock when the release starts; the name says UTC) 2026-09-29 22:18:31 +02:00
theupriser e78bbb2660 Merge pull request #8 from theupriser/bugfix/iso-step-name
feat(ci): ISO releases: not on every push, Dutch time, annotated tags
2026-09-29 22:14:37 +02:00
theupriser d3956eef17 feat: the ISO's boot menu and /etc/steammachine-iso-build name its release tag too (were the build date): the tag decides everything 2026-09-29 22:12:12 +02:00
theupriser f19dd0867a feat: the ISO's file is named after its release tag (steamify-cachyos-2.9.3-dev.2026.09.29-2230-x86_64.iso), so the GitHub release links straight to the ISO and its SHA-256 on the mirror 2026-09-29 22:11:32 +02:00
theupriser fc4c3ec95d feat(ci): ISO releases by a Steamify release or by hand (not every push), Dutch time in the name, tag and label, annotated tags (their own date: the mirror sorts releases on the same commit in order) 2026-09-29 22:09:33 +02:00
theupriser 1ca1a71ed2 fix(ci): the Steamify step's name (the version isn't known yet when Gitea evaluates it) 2026-09-29 21:57:34 +02:00
theupriser 5837d7343a Merge pull request #7 from theupriser/feature/iso-release-from-github-tag
Steamify ISO release (tag) / tag (push) Skipped
feat(ci): ISO releases start on GitHub, the Gitea mirror attaches the ISO
2026-09-29 21:39:08 +02:00
theupriser ff0ec9f11e feat(ci): ISO releases start on GitHub (tag + notes, iso-release.yml); the Gitea mirror builds on that tag and attaches the ISO (a release on the mirror survives its syncs only with a tag from GitHub); steamify-prepare.sh takes an exact STEAMIFY_VERSION 2026-09-29 21:39:00 +02:00
theupriser da1524961b Merge pull request #6 from theupriser/feature/iso-label
Steamify ISO (Gitea release) / iso (push) Successful in 17m41s
feat: the ISO's label follows the Steamify version and the build time
2026-09-29 20:53:29 +02:00
theupriser a11266e2b7 feat: the ISO's label follows the Steamify version on it and the build time (STEAMIFY_2_9_1_20260929_1432, was COS_<year><month>); the release workflow names the same moment 2026-09-29 20:53:22 +02:00
theupriser 1a55d5bb02 Merge pull request #5 from theupriser/feature/iso-version-follows-steamify
feat(ci): the ISO's version follows Steamify, and master releases
2026-09-29 20:51:44 +02:00
theupriser 5a62fc818c feat(ci): the ISO's release name gets the build time too (v<steamify>-<date>-<HHMM>, UTC): every build its own release 2026-09-29 20:51:37 +02:00
theupriser a0ffe148f5 feat(ci): the ISO's version follows Steamify: master releases v<steamify>-<date>, feat/steamify a test build v<steamify>-dev.<date>; CachyOS's own ISO workflow only runs in CachyOS's repo 2026-09-29 20:51:13 +02:00
theupriser d5c7085b82 Merge pull request #4 from theupriser/feature/gitea-iso-release
feat(ci): build and release the Steamify ISO on the Gitea mirror
2026-09-29 20:44:47 +02:00
theupriser ac79172c51 feat(ci): the Steamify ISO is built and released on the Gitea mirror (v<date>, notes from CHANGELOG.md; GitHub skips it) 2026-09-29 20:44:32 +02:00
theupriser f71ef695db Merge pull request #3 from theupriser/fix/steamify-install-var-log
fix: Steamify's install-time logs are readable after the first boot
2026-09-29 19:08:54 +02:00
theupriser 631a4e4dd8 fix: steamify-install leaves /var/log mounted (the caller reads its log afterwards; unmounting it hid the log again) 2026-09-29 18:47:59 +02:00
theupriser faa57cdb7f fix: steamify-install mounts the new system's /var/log (@log) first, so its logs aren't hidden under the mount after boot 2026-09-29 18:13:00 +02:00
theupriser ca74e10eee Merge pull request #2 from theupriser/fix/systemd-boot-efi-entry
fix: systemd-boot gets a working EFI boot entry
2026-09-29 17:45:38 +02:00
theupriser df50367973 fix: the systemd-boot entry is made with efibootmgr from the live system (bootctl in the chroot wrote HD(0,GPT,0000...), which the firmware can't load) 2026-09-29 17:10:15 +02:00
theupriser d325209317 docs: CHANGELOG: CachyOS's 26.08 notes as they were, the Steamify Live ISO 1.0.0 notes as a subsection under it 2026-09-29 16:58:00 +02:00
theupriser 9a58cf7c00 docs: CHANGELOG: Steamify's changes go in the CachyOS version they are built on (26.08), not a version of their own 2026-09-29 16:56:30 +02:00
theupriser 1d25d1c7f6 docs: CHANGELOG: the name is CachyOS with Steamify Live ISO 2026-09-29 16:54:39 +02:00
theupriser 40a6b89610 docs: CHANGELOG: Steamify ISO 1.0.0 (unreleased), with the systemd-boot boot entry fix 2026-09-29 16:54:20 +02:00
theupriser 5a8bec572e fix: systemd-boot gets its EFI boot entry (bootctl skips the EFI variables in the installer's chroot) 2026-09-29 16:52:29 +02:00
theupriser e6148f9b5d Merge pull request #1 from theupriser/feature/limit-desktop-bootloader
feat: The installer only offers KDE Plasma and the supported boot loaders
2026-09-29 08:14:05 +02:00
theupriser 3cf29a814e feat: The installer only offers KDE Plasma, and the boot loaders Steamify supports (Limine, systemd-boot, GRUB; not rEFInd) 2026-09-29 07:57:50 +02:00
theupriser d52cd58420 docs: README: other desktops are not supported (was "don't work yet") 2026-09-28 19:47:37 +02:00
theupriser 112b9bf5d6 docs: README: choose KDE Plasma, other desktops don't work with Steamify yet 2026-09-28 19:46:45 +02:00
theupriser 02e75027e1 docs: README: how to build the Steamify ISO yourself (podman) 2026-09-28 19:33:54 +02:00
theupriser e3000ce8c7 fix: Only the installer says Steamify (CachyOS with Steamify Installer); the live session keeps CachyOS's own name 2026-09-28 19:14:17 +02:00
theupriser ce1cf71498 fix: The live session's About this System keeps CachyOS's own name (no renaming) 2026-09-28 19:12:35 +02:00
theupriser 8e7ec49a15 feat: The live session's About this System says CachyOS Linux with Steamify 2026-09-28 18:21:29 +02:00
theupriser 06d2fb564c feat: The installer is called CachyOS - Steamify Installer (branding productName, set after the launcher's reinstall); TODO: Hello's title, radio buttons stay 2026-09-28 18:18:09 +02:00
theupriser f33c47ec49 docs: TODO: the boot choice switch is still open (misread) 2026-09-28 18:13:38 +02:00
theupriser 95e05a577c docs: TODO: the boot choice switch is done 2026-09-28 18:13:25 +02:00
theupriser f46596d8e0 docs: TODO: full ISO install with the Steamify page passed 2026-09-28 18:12:16 +02:00
theupriser 6917f3d8e4 docs: TODO: the Steamify Summary works 2026-09-28 17:56:09 +02:00
theupriser 37aff659bd docs: AGENTS: qmptype.py types > and friends now 2026-09-28 17:38:10 +02:00
theupriser 0cc736776a fix: The launcher downloads Steamify and writes the page's rows (Items.qml, items.json) where the page reads them ($sdir was empty in its own local); --list errors go to its log 2026-09-28 17:37:48 +02:00
theupriser a817b8a558 feat: The Steamify page's Summary is an unordered list: every chosen item's name and where it starts (gaming mode or desktop) 2026-09-28 16:57:45 +02:00
theupriser 8246209a7e feat: The Steamify page's Summary line shows the chosen items' labels and where it starts, not raw ids (patch on packagechooserq, applied by build-calamares-modules.sh) 2026-09-28 16:56:45 +02:00
theupriser 62402ce4c8 feat: packagechooserq is built with the ISO (build-calamares-modules.sh) instead of a committed .so; the Steamify page is left out when Calamares' version differs from the one it was built for 2026-09-28 16:41:06 +02:00
theupriser ad246253c7 docs: move operational lessons from TODO.md into a new AGENTS.md
TODO.md should stay a plain task list; the Calamares module/build
gotchas, QMP-driving quirks, ISO permission pitfall and build-VM SSH
flakiness notes now live in AGENTS.md instead.
2026-09-28 15:42:57 +02:00
theupriser 5133323237 docs: TODO - note 2.7.0/2.8.0 are released, ISO builder already tracks latest 2026-09-28 15:40:45 +02:00
theupriser 17ecdc1a26 docs: update TODO with today's packagechooserq work and lessons learned 2026-09-28 15:39:18 +02:00
theupriser 219aef176a fix: make steamify.sh executable on the ISO
steamify-prepare.sh fetches it with curl -o, which doesn't carry the
executable bit, and profiledef.sh's file_permissions never listed this
path. calamares-online.sh execs it directly ("$sbin" --defaults --list)
to regenerate Items.qml/items.json at boot; without +x that failed
silently (stderr redirected), so items.json was never written and the
Summary step's prettyStatus() override always fell back to the raw,
comma-joined id list.
2026-09-28 15:28:56 +02:00
theupriser eb58ef24b4 feat: bake packagechooserq module into the ISO, fix Steamify page styling
packagechooserq is excluded from cachyos-calamares-next's own build, so its
.so + module.desc are added straight into airootfs (matching the module
built against the current cachyos-calamares-next). Also:

- SteamifyPage.qml: border-only row highlight (was a translucent teal fill
  that made white text unreadable), themed page background (was falling
  through to Calamares' default white), a sub-option "└" marker, more right
  padding so the row border clears the scrollbar.
- calamares-online.sh: also write items.json next to Items.qml, so
  packagechooserq's prettyStatus() can show the Summary step's choice as
  labels instead of raw, comma-joined ids.
2026-09-28 14:56:15 +02:00
theupriser 71c2ef0459 docs: TODO: packagechooser multi-select needs Shift/Ctrl-click, not usable 2026-09-28 13:45:19 +02:00