From 41eb18cc702686a3bcb95e5788a71147580bc275 Mon Sep 17 00:00:00 2001 From: Lukas Greve Date: Wed, 23 Sep 2026 13:42:39 +0200 Subject: [PATCH 1/3] ci: build images only on release tags, not on every push to main A full build of both editions takes ~25 min on the fedora:host runner (run 237: 10:46-11:10), too costly to repeat on every push to main. build-image.yaml now triggers only on v*.*.* tags; the tag path already publishes the image and kickstart as a release, so the main-only upload-artifact step is dropped. Recipes are still linted and validated on every push by ci.yml. Co-Authored-By: Claude Opus 5.5 --- .gitea/workflows/build-image.yaml | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/.gitea/workflows/build-image.yaml b/.gitea/workflows/build-image.yaml index 760304f..314cf75 100644 --- a/.gitea/workflows/build-image.yaml +++ b/.gitea/workflows/build-image.yaml @@ -1,8 +1,10 @@ name: build-image +# Only a release tag builds images: a full build takes ~25 min on the runner, +# too costly to repeat on every push to main. Recipes are still linted and +# validated on every push by ci.yml. on: push: - branches: [main] tags: ["v*.*.*"] # Builds raw disk images of the two default-tier editions (see @@ -85,16 +87,6 @@ jobs: ./build-image.sh --dish "$dish" --root-size ${{ matrix.root_size }} xz -T0 "build/$dish.img" - - name: Upload image and kickstart as artifact - if: github.ref == 'refs/heads/main' - uses: actions/upload-artifact@v3 - with: - name: ${{ matrix.edition }} - path: | - build/${{ env.DISH }}.img.xz - cook/dishes/${{ env.DISH }}.cfg - if-no-files-found: error - - name: Publish image and kickstart as release if: startsWith(github.ref, 'refs/tags/') uses: https://git.phyllo.me/devops/action-gh-release@v2 From 6931039809abc87587471815be0e42d8350961b5 Mon Sep 17 00:00:00 2001 From: Lukas Greve Date: Wed, 23 Sep 2026 13:43:00 +0200 Subject: [PATCH 2/3] core/locale: set the console keymap too (--vckeymap=ch-fr) Only --xlayouts was set, so images got no /etc/vconsole.conf and the text console used a US keymap. On the headless edition that is the login prompt: a password typed in ch-fr during Initial Setup did not match what the US-keymap tty login produced. Found testing the phyllomeos-headless image from CI run 237 under wonder-vm. Co-Authored-By: Claude Opus 5.5 --- cook/ingredients/core/locale.ks | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cook/ingredients/core/locale.ks b/cook/ingredients/core/locale.ks index 7ae59e6..b9f7191 100644 --- a/cook/ingredients/core/locale.ks +++ b/cook/ingredients/core/locale.ks @@ -1,5 +1,5 @@ # Keyboard, language, and timezone configuration -keyboard --xlayouts='ch (fr)' # Set keyboard layouts for Romandy +keyboard --vckeymap=ch-fr --xlayouts='ch (fr)' # Set keyboard layouts for Romandy: --vckeymap for the text console (tty login, headless), --xlayouts for graphical sessions lang en_US.UTF-8 # Set system language to American English. More languages could be supported: --addsupport=cs_CZ,de_DE,en_UK timezone Europe/Zurich --utc # Set system timezone to Zurich From c611bbf2c24c474926f4651772cc90110a4871b0 Mon Sep 17 00:00:00 2001 From: Lukas Greve Date: Wed, 23 Sep 2026 13:43:00 +0200 Subject: [PATCH 3/3] core/network: generic default hostname instead of phyllome-alpha phyllome-alpha is the name of one specific deployed machine; baking it into every image gives each new install a name that collides with it on the LAN. Default to a generic 'phyllomeos', renamed per machine after install. Co-Authored-By: Claude Opus 5.5 --- cook/ingredients/core/network.ks | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cook/ingredients/core/network.ks b/cook/ingredients/core/network.ks index 5c14534..f86f58e 100644 --- a/cook/ingredients/core/network.ks +++ b/cook/ingredients/core/network.ks @@ -1,3 +1,3 @@ # Network configuration -network --onboot=yes --bootproto=dhcp --device=link --activate --hostname=phyllome-alpha # Configure network devices, enable them at boot time device and sets a particular hostname. "link" selects the first device reaching an up state +network --onboot=yes --bootproto=dhcp --device=link --activate --hostname=phyllomeos # Configure network devices, enable them at boot time device and sets a generic hostname (rename per machine after install). "link" selects the first device reaching an up state