Refactor CI workflows and Makefile to unify container builds and simplify test execution

This commit updates all GitHub Actions workflows and the Makefile to ensure
consistent behavior across unit, integration, end-to-end, and OS-container
tests.

Changes include:

CI Workflows:
  - Rename workflows for clearer, more professional naming:
        * "Test Distribution Containers" → "Test OS Containers"
        * "Test package-manager (e2e)" → "Test End-To-End"
        * "Test package-manager (unit)" → "Test Units"
        * "Test package-manager (integration)" → "Test Code Integration"
  - Remove explicit build steps from workflows; container creation is now
    delegated to the Makefile via build-missing.
  - Restrict test jobs to only build the Arch test container by setting:
        DISTROS="arch"

Makefile:
  - Add build-missing as a dependency to all test targets:
        test-unit, test-integration, test-e2e, test-container
  - Remove redundant build-missing call from the combined 'test' target,
    since Make now ensures build-missing runs exactly once per invocation.
  - Preserve existing target structure while ensuring container images are
    built automatically on demand.

This makes the CI pipeline faster, more predictable, and removes duplicated
container build logic. All tests now use the same unified mechanism for
building missing images.
This commit is contained in:
Kevin Veen-Birkenbach
2025-12-09 16:18:15 +01:00
parent f974e0b14a
commit 66b96ac3a5
5 changed files with 11 additions and 15 deletions

View File

@@ -1,4 +1,4 @@
name: Test Distribution Containers
name: Test OS Containers
on:
push:

View File

@@ -1,4 +1,4 @@
name: Test package-manager (e2e)
name: Test End-To-End
on:
push:

View File

@@ -1,4 +1,4 @@
name: Test package-manager (integration)
name: Test Code Integration
on:
push:
@@ -21,9 +21,5 @@ jobs:
- name: Show Docker version
run: docker version
# Build Arch test image (same as used in test-unit and test-e2e)
- name: Build test images
run: make build
- name: Run integration tests via make (Arch container)
run: make test-integration
run: make test-integration DISTROS="arch"

View File

@@ -1,4 +1,4 @@
name: Test package-manager (unit)
name: Test Units
on:
push:
@@ -22,4 +22,4 @@ jobs:
run: docker version
- name: Run unit tests via make (Arch container)
run: make test-unit
run: make test-unit DISTROS="arch"

View File

@@ -46,16 +46,16 @@ build:
# Test targets (delegated to scripts/test)
# ------------------------------------------------------------
test-unit:
test-unit: build-missing
@bash scripts/test/test-unit.sh
test-integration:
test-integration: build-missing
@bash scripts/test/test-integration.sh
test-e2e:
test-e2e: build-missing
@bash scripts/test/test-e2e.sh
test-container:
test-container: build-missing
@bash scripts/test/test-container.sh
# ------------------------------------------------------------
@@ -65,7 +65,7 @@ build-missing:
@bash scripts/build/build-image-missing.sh
# Combined test target for local + CI (unit + e2e + integration)
test: build-missing test-container test-unit test-e2e test-integration
test: test-container test-unit test-e2e test-integration
# ------------------------------------------------------------
# System install (native packages, calls scripts/installation/run-package.sh)