feat: add Fedora 44 support alongside Fedora 43

- add fedora-44-mirrors ingredient and register it in the repository choices
- expand the desktop variant matrix to [43, 44, rawhide] (48 dishes)
- bump CI workflows and deploy fallback URL to Fedora 44
- cover both release repositories in tests
This commit is contained in:
Lukas Greve
2026-09-04 13:55:24 +02:00
parent c7142ac43a
commit 8ad3589223
8 changed files with 36 additions and 21 deletions
+8 -8
View File
@@ -39,11 +39,11 @@ jobs:
- name: Initialize mock
run: |
mock -r fedora-43-x86_64 --init
mock -r fedora-44-x86_64 --init
- name: Install required packages
run: |
mock -r fedora-43-x86_64 --install lorax-lmc-novirt vim-minimal pykickstart livecd-tools
mock -r fedora-44-x86_64 --install lorax-lmc-novirt vim-minimal pykickstart livecd-tools
- name: Generate dishes
run: |
@@ -52,23 +52,23 @@ jobs:
- name: Copy configuration file to mock
run: |
mock -r fedora-43-x86_64 --copyin dishes/desktop_43_standard_grub_gnome_guest-agents.cfg /builddir
mock -r fedora-44-x86_64 --copyin dishes/desktop_44_standard_grub_gnome_guest-agents.cfg /builddir
- name: Build ISO with livemedia-creator
run: |
mock -r fedora-43-x86_64 --shell --enable-network --isolation=simple << 'EOF'
mock -r fedora-44-x86_64 --shell --enable-network --isolation=simple << 'EOF'
cd /builddir
livemedia-creator --ks desktop_43_standard_grub_gnome_guest-agents.cfg --no-virt --resultdir /var/lmc --project phyllomeos --make-iso --volid phyllomeos --iso-only --iso-name desktop-43.iso --releasever 43 --macboot
livemedia-creator --ks desktop_44_standard_grub_gnome_guest-agents.cfg --no-virt --resultdir /var/lmc --project phyllomeos --make-iso --volid phyllomeos --iso-only --iso-name desktop-44.iso --releasever 44 --macboot
EOF
- name: Upload ISO as artifact
uses: actions/upload-artifact@v3
with:
name: desktop-43.iso
path: /var/lmc/desktop-43.iso
name: desktop-44.iso
path: /var/lmc/desktop-44.iso
if-no-files-found: error
- name: Cleanup mock environment
if: always()
run: |
mock -r fedora-43-x86_64 --clean
mock -r fedora-44-x86_64 --clean
+2 -2
View File
@@ -6,8 +6,8 @@ on:
- "v*.*.*"
env:
FEDORA_VERSION: 43
KICKSTART_FILE: desktop_43_standard_grub_gnome_guest-agents
FEDORA_VERSION: 44
KICKSTART_FILE: desktop_44_standard_grub_gnome_guest-agents
jobs:
checkout:
+6 -6
View File
@@ -10,7 +10,7 @@ Provided that some dependencies are met (`libvirt` is running on your computer,
chmod +x deploy.sh
```
- Execute it and pick a dish, e.g. `desktop_43_standard_grub_gnome_guest-agents`, when prompted:
- Execute it and pick a dish, e.g. `desktop_44_standard_grub_gnome_guest-agents`, when prompted:
```
./deploy.sh
@@ -19,19 +19,19 @@ Executing: ./deploy/core-count.sh
System has more than 2 core (nproc --all: 6).
[...]
Available files:
1. desktop_43_standard_grub_gnome
1. desktop_44_standard_grub_gnome
[...]
8. desktop_43_standard_grub_gnome_guest-agents
8. desktop_44_standard_grub_gnome_guest-agents
[...]
Enter the number of the file you want to select: 8
You selected: desktop_43_standard_grub_gnome_guest-agents
You selected: desktop_44_standard_grub_gnome_guest-agents
Starting install...
Retrieving 'vmlinuz' | 16 MB 00:00:00
Retrieving 'initrd.img' | 161 MB 00:00:05
Allocating 'virtinst-n0km88yy-vmlinuz' | 16 MB 00:00:00
Transferring 'virtinst-qxr2jxcb-initrd.img' | 161 MB 00:00:00
Allocating 'desktop_43_standard_grub_gnome_guest-agents.img' | 10 GB 00:00:00
Allocating 'desktop_44_standard_grub_gnome_guest-agents.img' | 10 GB 00:00:00
Creating domain...
```
@@ -95,7 +95,7 @@ cd cook && make all
Alternatively, for a bespoke dish not part of the matrix, append the ingredient directly to an existing recipe and re-flatten it:
```
echo "%include ../ingredients/extra-luanti.ks # Sandbox video game engine" >> cook/recipes/desktop_43_standard_grub_gnome.cfg
echo "%include ../ingredients/extra-luanti.ks # Sandbox video game engine" >> cook/recipes/desktop_44_standard_grub_gnome.cfg
cd cook && make generate
```
@@ -0,0 +1,5 @@
# Fedora 44 repositories
repo --name=fedora --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-44&arch=x86_64 # Official Fedora mirror
repo --name=updates --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f44&arch=x86_64 # Official Fedora updates mirror
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-44&arch=x86_64 # Official Fedora updates mirror
+1
View File
@@ -30,6 +30,7 @@ base:
choices:
repository:
"43": repo/fedora-43-mirrors.ks
"44": repo/fedora-44-mirrors.ks
rawhide: repo/rawhide-mirrors.ks
storage:
standard: storage/standard.ks
+5 -4
View File
@@ -4,12 +4,13 @@
#
# Syntax:
# - Single values: repository: "43"
# - List values: repository: ["43", "rawhide"] (expands to multiple variants)
# - List values: repository: ["43", "44", "rawhide"] (expands to multiple variants)
# - Booleans: hardware-support: true / false (feature flags)
#
# NOTE: List values create a cartesian product.
# Example: repository: ["43", "rawhide"] + storage: ["standard", "encrypted"]
# creates 4 variants: (43,standard), (43,encrypted), (rawhide,standard), (rawhide,encrypted)
# Example: repository: ["43", "44", "rawhide"] + storage: ["standard", "encrypted"]
# creates 6 variants: (43,standard), (43,encrypted), (44,standard), (44,encrypted),
# (rawhide,standard), (rawhide,encrypted)
#
# NOTE: The 'name' field prefixes every generated dish/recipe filename, e.g.
# the group below yields dishes like desktop_43_gnome_standard_grub_guest-agents.cfg.
@@ -18,7 +19,7 @@ recipes:
# Desktop variants
- name: desktop
variants:
- repository: ["43", "rawhide"]
- repository: ["43", "44", "rawhide"]
desktop: gnome
storage: ["standard", "encrypted"]
bootloader: ["grub", "systemd-boot"]
+8
View File
@@ -99,6 +99,14 @@ def test_collect_fragments_gnome_standard(templates):
assert slug in fragments
@pytest.mark.parametrize("release", ["43", "44"])
def test_collect_fragments_release_repository(templates, release):
variant = {"repository": release}
fragments, problems = gen.collect_fragments(templates, variant)
assert problems == []
assert f"repo/fedora-{release}-mirrors.ks" in fragments
def test_collect_fragments_choices_default_to_first(templates):
variant = {"repository": "43"}
fragments, problems = gen.collect_fragments(templates, variant)
+1 -1
View File
@@ -183,7 +183,7 @@ else
location_param="$fedora_iso"
echo "Using local ISO: $fedora_iso"
else
location_param="https://download.fedoraproject.org/pub/fedora/linux/releases/43/Everything/x86_64/os/"
location_param="https://download.fedoraproject.org/pub/fedora/linux/releases/44/Everything/x86_64/os/"
echo "Using default online repository"
fi
fi