Some checks failed
Mark stable commit / test-unit (push) Has been cancelled
Mark stable commit / test-integration (push) Has been cancelled
Mark stable commit / test-env-virtual (push) Has been cancelled
Mark stable commit / test-env-nix (push) Has been cancelled
Mark stable commit / test-e2e (push) Has been cancelled
Mark stable commit / test-virgin-user (push) Has been cancelled
Mark stable commit / test-virgin-root (push) Has been cancelled
Mark stable commit / mark-stable (push) Has been cancelled
Refactor CI to clearly separate virtualenv-based container tests from pure Nix flake tests across all distros (arch, debian, ubuntu, fedora, centos). Introduce dedicated test-env-nix workflow and Makefile targets, rename former container tests to test-env-virtual, and update stable pipeline dependencies. Improve Nix reliability in containers by fixing installer permissions and explicitly validating nix availability and version during image build and tests.
100 lines
3.1 KiB
Makefile
100 lines
3.1 KiB
Makefile
.PHONY: install setup uninstall \
|
|
test build build-no-cache build-no-cache-all build-missing delete-volumes purge \
|
|
test-unit test-e2e test-integration test-env-virtual test-env-nix
|
|
|
|
# Distro
|
|
# Options: arch debian ubuntu fedora centos
|
|
DISTROS ?= 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:
|
|
@bash scripts/build/build-image.sh
|
|
|
|
build-no-cache:
|
|
@bash scripts/build/build-image-no-cache.sh
|
|
|
|
build-no-cache-all:
|
|
@set -e; \
|
|
for d in $(DISTROS); do \
|
|
echo "=== build-no-cache: $$d ==="; \
|
|
distro="$$d" $(MAKE) build-no-cache; \
|
|
done
|
|
|
|
# ------------------------------------------------------------
|
|
# 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-env-virtual: build-missing
|
|
@bash scripts/test/test-env-virtual.sh
|
|
|
|
test-env-nix: build-missing
|
|
@bash scripts/test/test-env-nix.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-env-virtual 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
|