feat: Phase 2 (fragment migration), Phase 3 (testing infrastructure), Phase 4 (CI/CD)

Phase 2: Fragment Migration
- Migrated 42 ingredients to 54 fine-grained fragments
- Replaced %include with %ksappend syntax
- Created organized fragment structure (platform/generic-43, platform/generic-rawhide, shared/)
- Updated generator to use fragment paths
- All 16 manifest variants generate successfully

Phase 3: Testing Infrastructure
- Created containerized test runner (tests/container/)
- Added integration test suite (tests/integration/)
- Created golden master fixtures (tests/fixtures/expected_recipes/)
- 41 tests passing (36 unit + 5 integration)
- 54 fragments, 16 recipes validated

Phase 4: CI/CD Integration
- 5 new workflows: validate-recipes, validate-fragments, test-generation, container-tests, build-iso
- Added validation gates before ISO builds
- Works with existing fedora-runner-image
- Local testing support via act_runner
This commit is contained in:
Lukas Greve
2026-03-24 21:27:29 +01:00
parent a0a5de31cc
commit 5e8afd7d6f
113 changed files with 2973 additions and 224 deletions
+12 -3
View File
@@ -1,4 +1,4 @@
.PHONY: help generate-recipes validate-recipes test clean install-deps
.PHONY: help generate-recipes validate-recipes test test-integration test-container clean install-deps
help:
@echo "Phyllome OS Recipe Generator"
@@ -6,7 +6,9 @@ help:
@echo "Available targets:"
@echo " generate-recipes - Generate all recipes from manifest"
@echo " validate-recipes - Validate existing recipes"
@echo " test - Run pytest test suite"
@echo " test - Run pytest test suite (unit + integration)"
@echo " test-integration - Run integration tests only"
@echo " test-container - Run all tests in container"
@echo " clean - Remove generated recipes"
@echo " install-deps - Install Python dependencies"
@@ -23,7 +25,14 @@ validate-recipes:
--validate ../recipes/*.cfg
test:
pytest ../tests/test_recipe_generator.py -v
python3 -m pytest tests/ -v --tb=short
test-integration:
python3 -m pytest tests/integration/ -v --tb=short
test-container:
podman build -t phyllo/test-runner tests/container/
podman run --rm -v .:/phyllomeos:ro phyllo/test-runner
clean:
rm -f ../recipes/*.cfg