- Split generate_recipe.py into cli.py, recipe_generator.py, validators.py, manifest.py - Removed override logic - modifiers now add fragments rather than replace - Added filename deduplication to prevent overwriting recipes - Updated CI workflows and tests to use new module structure - Made pykickstart a hard dependency - Removed ingredients/ directory support (only fragments/*.ks now used) - New layout: 5 modules (~990 lines) vs single 769-line file
77 lines
2.1 KiB
YAML
77 lines
2.1 KiB
YAML
name: build-iso
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
release:
|
|
types: [published]
|
|
|
|
jobs:
|
|
validate:
|
|
runs-on: fedora
|
|
container:
|
|
image: git.phyllo.me/devops/fedora-runner-image:latest
|
|
|
|
steps:
|
|
- uses: https://git.phyllo.me/devops/checkout@v5
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
pip install PyYAML pykickstart
|
|
|
|
- name: Generate all recipes
|
|
run: |
|
|
cd recipe-generator
|
|
python3 generate_recipe.py \
|
|
--manifest recipes_manifest.yaml \
|
|
--output-dir ../recipes/
|
|
|
|
- name: Validate recipes (strict mode)
|
|
run: |
|
|
cd recipe-generator
|
|
python3 generate_recipe.py --validate ../recipes/*.cfg --strict
|
|
|
|
build-iso:
|
|
needs: validate
|
|
runs-on: fedora-cloud-42
|
|
container:
|
|
image: git.phyllo.me/devops/fedora-runner-image:latest
|
|
|
|
steps:
|
|
- uses: https://git.phyllo.me/devops/checkout@v5
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Initialize mock
|
|
run: |
|
|
mock -r fedora-43-x86_64 --init
|
|
|
|
- name: Install required packages
|
|
run: |
|
|
mock -r fedora-43-x86_64 --install lorax-lmc-novirt vim-minimal pykickstart livecd-tools
|
|
|
|
- name: Copy configuration file to mock
|
|
run: |
|
|
mock -r fedora-43-x86_64 --copyin recipes/live-server_rawhide.cfg /builddir
|
|
|
|
- name: Build ISO with livemedia-creator
|
|
run: |
|
|
mock -r fedora-43-x86_64 --shell --enable-network --isolation=simple << 'EOF'
|
|
cd /builddir
|
|
livemedia-creator --ks live-server_rawhide.cfg --no-virt --resultdir /var/lmc --project live-server --make-iso --volid live-server --iso-only --iso-name server-43.iso --releasever 43 --macboot
|
|
EOF
|
|
|
|
- name: Upload ISO as artifact
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: server-43.iso
|
|
path: /var/lmc/server-43.iso
|
|
if-no-files-found: error
|
|
|
|
- name: Cleanup mock environment
|
|
if: always()
|
|
run: |
|
|
mock -r fedora-43-x86_64 --clean
|