2025-12-09 05:31:55 +01:00
|
|
|
.PHONY: install setup uninstall \
|
|
|
|
|
test build build-no-cache test-unit test-e2e test-integration \
|
|
|
|
|
test-container
|
2025-12-05 19:32:42 +01:00
|
|
|
|
2025-12-08 00:24:22 +01:00
|
|
|
# ------------------------------------------------------------
|
|
|
|
|
# Distro list and base images
|
2025-12-09 05:31:55 +01:00
|
|
|
# (kept for documentation/reference; actual build logic is in scripts/build)
|
2025-12-08 00:24:22 +01:00
|
|
|
# ------------------------------------------------------------
|
2025-12-09 17:53:10 +01:00
|
|
|
DISTROS := arch debian ubuntu fedora centos
|
2025-12-09 05:31:55 +01:00
|
|
|
BASE_IMAGE_ARCH := archlinux:latest
|
|
|
|
|
BASE_IMAGE_DEBIAN := debian:stable-slim
|
|
|
|
|
BASE_IMAGE_UBUNTU := ubuntu:latest
|
|
|
|
|
BASE_IMAGE_FEDORA := fedora:latest
|
|
|
|
|
BASE_IMAGE_CENTOS := quay.io/centos/centos:stream9
|
2025-12-08 00:24:22 +01:00
|
|
|
|
2025-12-09 05:31:55 +01:00
|
|
|
# Make them available in scripts
|
|
|
|
|
export DISTROS
|
|
|
|
|
export BASE_IMAGE_ARCH
|
|
|
|
|
export BASE_IMAGE_DEBIAN
|
|
|
|
|
export BASE_IMAGE_UBUNTU
|
|
|
|
|
export BASE_IMAGE_FEDORA
|
|
|
|
|
export BASE_IMAGE_CENTOS
|
2025-12-08 00:24:22 +01:00
|
|
|
|
2025-12-09 17:53:10 +01:00
|
|
|
# PYthon Unittest Pattern
|
|
|
|
|
TEST_PATTERN := test_*.py
|
|
|
|
|
export TEST_PATTERN
|
|
|
|
|
|
2025-12-08 00:24:22 +01:00
|
|
|
# ------------------------------------------------------------
|
2025-12-09 05:31:55 +01:00
|
|
|
# PKGMGR setup (developer wrapper -> scripts/installation/main.sh)
|
2025-12-08 00:24:22 +01:00
|
|
|
# ------------------------------------------------------------
|
2025-12-09 05:31:55 +01:00
|
|
|
setup:
|
|
|
|
|
@bash scripts/installation/main.sh
|
2025-04-01 15:37:07 +02:00
|
|
|
|
2025-12-08 00:24:22 +01:00
|
|
|
# ------------------------------------------------------------
|
2025-12-09 05:31:55 +01:00
|
|
|
# Docker build targets (delegated to scripts/build)
|
2025-12-08 00:24:22 +01:00
|
|
|
# ------------------------------------------------------------
|
2025-12-05 22:33:49 +01:00
|
|
|
build-no-cache:
|
2025-12-09 05:31:55 +01:00
|
|
|
@bash scripts/build/build-image-no-cache.sh
|
2025-12-05 22:33:49 +01:00
|
|
|
|
|
|
|
|
build:
|
2025-12-09 05:31:55 +01:00
|
|
|
@bash scripts/build/build-image.sh
|
2025-12-08 13:35:20 +01:00
|
|
|
|
2025-12-08 00:24:22 +01:00
|
|
|
# ------------------------------------------------------------
|
2025-12-09 05:31:55 +01:00
|
|
|
# Test targets (delegated to scripts/test)
|
2025-12-08 00:24:22 +01:00
|
|
|
# ------------------------------------------------------------
|
2025-12-08 01:40:36 +01:00
|
|
|
|
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.
2025-12-09 16:18:15 +01:00
|
|
|
test-unit: build-missing
|
2025-12-10 21:09:18 +01:00
|
|
|
@bash scripts/test/test-unit.sh
|
2025-12-08 01:40:36 +01:00
|
|
|
|
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.
2025-12-09 16:18:15 +01:00
|
|
|
test-integration: build-missing
|
2025-12-10 21:09:18 +01:00
|
|
|
@bash scripts/test/test-integration.sh
|
2025-12-08 11:43:39 +01:00
|
|
|
|
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.
2025-12-09 16:18:15 +01:00
|
|
|
test-e2e: build-missing
|
2025-12-09 05:31:55 +01:00
|
|
|
@bash scripts/test/test-e2e.sh
|
2025-12-08 00:24:22 +01:00
|
|
|
|
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.
2025-12-09 16:18:15 +01:00
|
|
|
test-container: build-missing
|
2025-12-09 05:31:55 +01:00
|
|
|
@bash scripts/test/test-container.sh
|
2025-12-08 00:24:22 +01:00
|
|
|
|
|
|
|
|
# ------------------------------------------------------------
|
2025-12-09 05:31:55 +01:00
|
|
|
# Build only missing container images
|
2025-12-08 00:24:22 +01:00
|
|
|
# ------------------------------------------------------------
|
2025-12-09 05:31:55 +01:00
|
|
|
build-missing:
|
|
|
|
|
@bash scripts/build/build-image-missing.sh
|
|
|
|
|
|
2025-12-10 16:57:02 +01:00
|
|
|
# Combined test target for local + CI (unit + integration + e2e)
|
|
|
|
|
test: test-container test-unit test-integration test-e2e
|
2025-04-27 22:38:52 +02:00
|
|
|
|
2025-12-08 00:24:22 +01:00
|
|
|
# ------------------------------------------------------------
|
2025-12-09 05:31:55 +01:00
|
|
|
# System install (native packages, calls scripts/installation/run-package.sh)
|
2025-12-08 00:24:22 +01:00
|
|
|
# ------------------------------------------------------------
|
2025-12-09 05:31:55 +01:00
|
|
|
install:
|
|
|
|
|
@echo "Building and installing distro-native package-manager for this system..."
|
|
|
|
|
@bash scripts/installation/run-package.sh
|
2025-10-17 23:01:34 +02:00
|
|
|
|
2025-12-08 00:24:22 +01:00
|
|
|
# ------------------------------------------------------------
|
|
|
|
|
# Uninstall target
|
|
|
|
|
# ------------------------------------------------------------
|
2025-04-27 22:38:52 +02:00
|
|
|
uninstall:
|
2025-12-09 05:31:55 +01:00
|
|
|
@bash scripts/uninstall.sh
|