.PHONY: install setup uninstall \ test build build-no-cache test-unit test-e2e test-integration \ test-container # Distro # Options: arch debian ubuntu fedora centos distro ?= arch export distro # ------------------------------------------------------------ # Base images # (kept for documentation/reference; actual build logic is in scripts/build) # ------------------------------------------------------------ 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 # Make them available in scripts export BASE_IMAGE_ARCH export BASE_IMAGE_DEBIAN export BASE_IMAGE_UBUNTU export BASE_IMAGE_FEDORA export BASE_IMAGE_CENTOS # PYthon Unittest Pattern TEST_PATTERN := test_*.py export TEST_PATTERN # ------------------------------------------------------------ # PKGMGR setup (developer wrapper -> scripts/installation/main.sh) # ------------------------------------------------------------ setup: @bash scripts/installation/main.sh # ------------------------------------------------------------ # Docker build targets (delegated to scripts/build) # ------------------------------------------------------------ build-no-cache: @bash scripts/build/build-image-no-cache.sh build: @bash scripts/build/build-image.sh # ------------------------------------------------------------ # Test targets (delegated to scripts/test) # ------------------------------------------------------------ test-unit: build-missing @bash scripts/test/test-unit.sh test-integration: build-missing @bash scripts/test/test-integration.sh test-e2e: build-missing @bash scripts/test/test-e2e.sh test-container: build-missing @bash scripts/test/test-container.sh # ------------------------------------------------------------ # Build only missing container images # ------------------------------------------------------------ build-missing: @bash scripts/build/build-image-missing.sh # Combined test target for local + CI (unit + integration + e2e) test: test-container test-unit test-integration test-e2e delete-volumes: @docker volume rm pkgmgr_nix_store_${distro} pkgmgr_nix_cache_${distro} || true purge: delete-volumes build-no-cache # ------------------------------------------------------------ # System install (native packages, calls scripts/installation/run-package.sh) # ------------------------------------------------------------ install: @echo "Building and installing distro-native package-manager for this system..." @bash scripts/installation/run-package.sh # ------------------------------------------------------------ # Uninstall target # ------------------------------------------------------------ uninstall: @bash scripts/uninstall.sh