diff --git a/Makefile b/Makefile index 18a2019..e85c832 100644 --- a/Makefile +++ b/Makefile @@ -58,9 +58,36 @@ test-unit: pytest-cov: $(BIN)/pytest tests/unit/ -v --cov=src/gitea_runner_manager --cov-report=term-missing --cov-fail-under=100 +MOLECULE := $(realpath $(BIN))/molecule +MOLECULE_BASE := cd ansible/roles/gitea-runner && ANSIBLE_ALLOW_BROKEN_CONDITIONALS=true $(MOLECULE) + +# Quick local test: Ubuntu 22.04 only molecule: - cd ansible/roles/gitea-runner && ANSIBLE_ALLOW_BROKEN_CONDITIONALS=true $(realpath $(BIN))/molecule test - cd ansible/roles/gitea-runner && ANSIBLE_ALLOW_BROKEN_CONDITIONALS=true $(realpath $(BIN))/molecule test -s binary + $(MOLECULE_BASE) test + $(MOLECULE_BASE) test -s binary + +# Docker mode tests for all platforms (sequential; override env vars for CI matrix parallelisation) +molecule-docker: + @echo "Testing Docker mode on all platforms..." + $(MOLECULE_BASE) test + MOLECULE_PLATFORM_NAME=ubuntu-2404 MOLECULE_PLATFORM_IMAGE=geerlingguy/docker-ubuntu2404-ansible:latest $(MOLECULE_BASE) test + MOLECULE_PLATFORM_NAME=ubuntu-2604 MOLECULE_PLATFORM_IMAGE=geerlingguy/docker-ubuntu2604-ansible:latest $(MOLECULE_BASE) test + MOLECULE_PLATFORM_NAME=debian-12 MOLECULE_PLATFORM_IMAGE=geerlingguy/docker-debian12-ansible:latest $(MOLECULE_BASE) test + MOLECULE_PLATFORM_NAME=debian-13 MOLECULE_PLATFORM_IMAGE=geerlingguy/docker-debian13-ansible:latest $(MOLECULE_BASE) test + MOLECULE_PLATFORM_NAME=archlinux MOLECULE_PLATFORM_IMAGE=marcstraube/archlinux-ansible:latest MOLECULE_PLATFORM_COMMAND=/usr/lib/systemd/systemd $(MOLECULE_BASE) test + +# Binary mode tests for all platforms (sequential; override env vars for CI matrix parallelisation) +molecule-binary: + @echo "Testing Binary mode on all platforms..." + $(MOLECULE_BASE) test -s binary + MOLECULE_PLATFORM_NAME=ubuntu-2404 MOLECULE_PLATFORM_IMAGE=geerlingguy/docker-ubuntu2404-ansible:latest $(MOLECULE_BASE) test -s binary + MOLECULE_PLATFORM_NAME=ubuntu-2604 MOLECULE_PLATFORM_IMAGE=geerlingguy/docker-ubuntu2604-ansible:latest $(MOLECULE_BASE) test -s binary + MOLECULE_PLATFORM_NAME=debian-12 MOLECULE_PLATFORM_IMAGE=geerlingguy/docker-debian12-ansible:latest $(MOLECULE_BASE) test -s binary + MOLECULE_PLATFORM_NAME=debian-13 MOLECULE_PLATFORM_IMAGE=geerlingguy/docker-debian13-ansible:latest $(MOLECULE_BASE) test -s binary + MOLECULE_PLATFORM_NAME=archlinux MOLECULE_PLATFORM_IMAGE=marcstraube/archlinux-ansible:latest MOLECULE_PLATFORM_COMMAND=/usr/lib/systemd/systemd $(MOLECULE_BASE) test -s binary + +# All platform tests (sequential; use CI matrix for parallel execution) +molecule-all: molecule-docker molecule-binary test: test-all diff --git a/ansible/roles/gitea-runner/molecule/binary/molecule.yml b/ansible/roles/gitea-runner/molecule/binary/molecule.yml index dee039d..56c6310 100644 --- a/ansible/roles/gitea-runner/molecule/binary/molecule.yml +++ b/ansible/roles/gitea-runner/molecule/binary/molecule.yml @@ -3,9 +3,9 @@ driver: name: docker platforms: - - name: instance - image: geerlingguy/docker-ubuntu2204-ansible:latest - command: sleep infinity + - name: ${MOLECULE_PLATFORM_NAME:-ubuntu-2204} + image: ${MOLECULE_PLATFORM_IMAGE:-geerlingguy/docker-ubuntu2204-ansible:latest} + command: ${MOLECULE_PLATFORM_COMMAND:-sleep infinity} volumes: - /sys/fs/cgroup:/sys/fs/cgroup:rw cgroupns_mode: host diff --git a/ansible/roles/gitea-runner/molecule/common/prepare.yml b/ansible/roles/gitea-runner/molecule/common/prepare.yml index 3351d7f..932443b 100644 --- a/ansible/roles/gitea-runner/molecule/common/prepare.yml +++ b/ansible/roles/gitea-runner/molecule/common/prepare.yml @@ -14,12 +14,16 @@ state: present when: ansible_facts['os_family'] == 'Debian' + - name: Update pacman cache + community.general.pacman: + update_cache: true + when: ansible_facts['os_family'] == 'Archlinux' + - name: Ensure /etc/docker directory exists ansible.builtin.file: path: /etc/docker state: directory mode: "0755" - when: ansible_facts['os_family'] == 'Debian' - name: Configure Docker daemon for vfs storage driver (DinD) ansible.builtin.copy: @@ -27,4 +31,3 @@ content: | {"storage-driver": "vfs"} mode: "0644" - when: ansible_facts['os_family'] == 'Debian' diff --git a/ansible/roles/gitea-runner/molecule/default/molecule.yml b/ansible/roles/gitea-runner/molecule/default/molecule.yml index dee039d..56c6310 100644 --- a/ansible/roles/gitea-runner/molecule/default/molecule.yml +++ b/ansible/roles/gitea-runner/molecule/default/molecule.yml @@ -3,9 +3,9 @@ driver: name: docker platforms: - - name: instance - image: geerlingguy/docker-ubuntu2204-ansible:latest - command: sleep infinity + - name: ${MOLECULE_PLATFORM_NAME:-ubuntu-2204} + image: ${MOLECULE_PLATFORM_IMAGE:-geerlingguy/docker-ubuntu2204-ansible:latest} + command: ${MOLECULE_PLATFORM_COMMAND:-sleep infinity} volumes: - /sys/fs/cgroup:/sys/fs/cgroup:rw cgroupns_mode: host