forked from roots/phyllomeos
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:
@@ -39,11 +39,11 @@ jobs:
|
|||||||
|
|
||||||
- name: Initialize mock
|
- name: Initialize mock
|
||||||
run: |
|
run: |
|
||||||
mock -r fedora-43-x86_64 --init
|
mock -r fedora-44-x86_64 --init
|
||||||
|
|
||||||
- name: Install required packages
|
- name: Install required packages
|
||||||
run: |
|
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
|
- name: Generate dishes
|
||||||
run: |
|
run: |
|
||||||
@@ -52,23 +52,23 @@ jobs:
|
|||||||
|
|
||||||
- name: Copy configuration file to mock
|
- name: Copy configuration file to mock
|
||||||
run: |
|
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
|
- name: Build ISO with livemedia-creator
|
||||||
run: |
|
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
|
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
|
EOF
|
||||||
|
|
||||||
- name: Upload ISO as artifact
|
- name: Upload ISO as artifact
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: desktop-43.iso
|
name: desktop-44.iso
|
||||||
path: /var/lmc/desktop-43.iso
|
path: /var/lmc/desktop-44.iso
|
||||||
if-no-files-found: error
|
if-no-files-found: error
|
||||||
|
|
||||||
- name: Cleanup mock environment
|
- name: Cleanup mock environment
|
||||||
if: always()
|
if: always()
|
||||||
run: |
|
run: |
|
||||||
mock -r fedora-43-x86_64 --clean
|
mock -r fedora-44-x86_64 --clean
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ on:
|
|||||||
- "v*.*.*"
|
- "v*.*.*"
|
||||||
|
|
||||||
env:
|
env:
|
||||||
FEDORA_VERSION: 43
|
FEDORA_VERSION: 44
|
||||||
KICKSTART_FILE: desktop_43_standard_grub_gnome_guest-agents
|
KICKSTART_FILE: desktop_44_standard_grub_gnome_guest-agents
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
checkout:
|
checkout:
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ Provided that some dependencies are met (`libvirt` is running on your computer,
|
|||||||
chmod +x deploy.sh
|
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
|
./deploy.sh
|
||||||
@@ -19,19 +19,19 @@ Executing: ./deploy/core-count.sh
|
|||||||
System has more than 2 core (nproc --all: 6).
|
System has more than 2 core (nproc --all: 6).
|
||||||
[...]
|
[...]
|
||||||
Available files:
|
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
|
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...
|
Starting install...
|
||||||
Retrieving 'vmlinuz' | 16 MB 00:00:00
|
Retrieving 'vmlinuz' | 16 MB 00:00:00
|
||||||
Retrieving 'initrd.img' | 161 MB 00:00:05
|
Retrieving 'initrd.img' | 161 MB 00:00:05
|
||||||
Allocating 'virtinst-n0km88yy-vmlinuz' | 16 MB 00:00:00
|
Allocating 'virtinst-n0km88yy-vmlinuz' | 16 MB 00:00:00
|
||||||
Transferring 'virtinst-qxr2jxcb-initrd.img' | 161 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...
|
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:
|
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
|
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
|
||||||
@@ -30,6 +30,7 @@ base:
|
|||||||
choices:
|
choices:
|
||||||
repository:
|
repository:
|
||||||
"43": repo/fedora-43-mirrors.ks
|
"43": repo/fedora-43-mirrors.ks
|
||||||
|
"44": repo/fedora-44-mirrors.ks
|
||||||
rawhide: repo/rawhide-mirrors.ks
|
rawhide: repo/rawhide-mirrors.ks
|
||||||
storage:
|
storage:
|
||||||
standard: storage/standard.ks
|
standard: storage/standard.ks
|
||||||
|
|||||||
@@ -4,12 +4,13 @@
|
|||||||
#
|
#
|
||||||
# Syntax:
|
# Syntax:
|
||||||
# - Single values: repository: "43"
|
# - 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)
|
# - Booleans: hardware-support: true / false (feature flags)
|
||||||
#
|
#
|
||||||
# NOTE: List values create a cartesian product.
|
# NOTE: List values create a cartesian product.
|
||||||
# Example: repository: ["43", "rawhide"] + storage: ["standard", "encrypted"]
|
# Example: repository: ["43", "44", "rawhide"] + storage: ["standard", "encrypted"]
|
||||||
# creates 4 variants: (43,standard), (43,encrypted), (rawhide,standard), (rawhide,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.
|
# 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.
|
# the group below yields dishes like desktop_43_gnome_standard_grub_guest-agents.cfg.
|
||||||
@@ -18,7 +19,7 @@ recipes:
|
|||||||
# Desktop variants
|
# Desktop variants
|
||||||
- name: desktop
|
- name: desktop
|
||||||
variants:
|
variants:
|
||||||
- repository: ["43", "rawhide"]
|
- repository: ["43", "44", "rawhide"]
|
||||||
desktop: gnome
|
desktop: gnome
|
||||||
storage: ["standard", "encrypted"]
|
storage: ["standard", "encrypted"]
|
||||||
bootloader: ["grub", "systemd-boot"]
|
bootloader: ["grub", "systemd-boot"]
|
||||||
|
|||||||
@@ -99,6 +99,14 @@ def test_collect_fragments_gnome_standard(templates):
|
|||||||
assert slug in fragments
|
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):
|
def test_collect_fragments_choices_default_to_first(templates):
|
||||||
variant = {"repository": "43"}
|
variant = {"repository": "43"}
|
||||||
fragments, problems = gen.collect_fragments(templates, variant)
|
fragments, problems = gen.collect_fragments(templates, variant)
|
||||||
|
|||||||
@@ -183,7 +183,7 @@ else
|
|||||||
location_param="$fedora_iso"
|
location_param="$fedora_iso"
|
||||||
echo "Using local ISO: $fedora_iso"
|
echo "Using local ISO: $fedora_iso"
|
||||||
else
|
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"
|
echo "Using default online repository"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user