From 66b96ac3a53d595f06754b017d90012447527eee Mon Sep 17 00:00:00 2001 From: Kevin Veen-Birkenbach Date: Tue, 9 Dec 2025 16:18:15 +0100 Subject: [PATCH] Refactor CI workflows and Makefile to unify container builds and simplify test execution MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- .github/workflows/test-container.yml | 2 +- .github/workflows/test-e2e.yml | 2 +- .github/workflows/test-integration.yml | 8 ++------ .github/workflows/test-unit.yml | 4 ++-- Makefile | 10 +++++----- 5 files changed, 11 insertions(+), 15 deletions(-) diff --git a/.github/workflows/test-container.yml b/.github/workflows/test-container.yml index 7294af3..1b8aee2 100644 --- a/.github/workflows/test-container.yml +++ b/.github/workflows/test-container.yml @@ -1,4 +1,4 @@ -name: Test Distribution Containers +name: Test OS Containers on: push: diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 65ff794..33f9d77 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -1,4 +1,4 @@ -name: Test package-manager (e2e) +name: Test End-To-End on: push: diff --git a/.github/workflows/test-integration.yml b/.github/workflows/test-integration.yml index 5c9a888..9a30602 100644 --- a/.github/workflows/test-integration.yml +++ b/.github/workflows/test-integration.yml @@ -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" diff --git a/.github/workflows/test-unit.yml b/.github/workflows/test-unit.yml index 9c8154c..014f478 100644 --- a/.github/workflows/test-unit.yml +++ b/.github/workflows/test-unit.yml @@ -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" diff --git a/Makefile b/Makefile index d4f347e..7ba4dff 100644 --- a/Makefile +++ b/Makefile @@ -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)