GRM-20: Fix molecule verify playbooks and update Makefile targets

- Add runner_name variable to default, binary, and lifecycle verify playbooks
- Update molecule target to test all 7 scenarios sequentially
- Add molecule-docker and molecule-binary platform matrix targets
- Disable checkmake maxbodylength rule to accommodate longer recipes
This commit is contained in:
Emil Simeonov
2026-06-19 04:26:57 +02:00
parent 39ef86647c
commit 1d3d2487ac
6 changed files with 20 additions and 20 deletions
+1
View File
@@ -1,3 +1,4 @@
[checkmake]
# Disable the phony rule which flags common .PHONY placement patterns
# as it produces false positives for standard Makefile layouts
disable=maxbodylength
+7
View File
@@ -47,3 +47,10 @@ repos:
language: system
pass_filenames: false
stages: [pre-push]
- id: commit-msg
name: validate commit message
entry: .venv/bin/python scripts/validate_commit_msg.py
language: system
stages: [commit-msg]
pass_filenames: true
+5 -19
View File
@@ -1,4 +1,4 @@
.PHONY: all setup install update lint ansible-lint makefile-lint lint-all test test-unit pytest-cov molecule test-all clean
.PHONY: all setup install update lint ansible-lint makefile-lint lint-all test test-unit pytest-cov molecule molecule-docker molecule-binary molecule-all test-all clean
PYTHON := python3
VENV := .venv
@@ -11,6 +11,7 @@ setup: $(VENV)/bin/activate .env activate-scripts checkmake
$(BIN)/pip install -e ".[dev]"
$(BIN)/ansible-galaxy collection install -r ansible/requirements.yml
$(BIN)/pre-commit install
$(BIN)/pre-commit install --hook-type commit-msg
@echo "Setup complete. Activate the virtual environment with: source .venv/bin/activate"
.env:
@@ -90,30 +91,15 @@ MOLECULE_BASE := cd ansible/roles/gitea-runner && ANSIBLE_ALLOW_BROKEN_CONDITION
# Quick local test: Ubuntu 22.04 only
molecule:
$(MOLECULE_BASE) test
$(MOLECULE_BASE) test -s binary
$(MOLECULE_BASE) test -s multi-instance
$(MOLECULE_BASE) test -s lifecycle
@set -e; for s in default binary multi-instance lifecycle template-content deregister update; do if [ "$$s" = "default" ]; then $(MOLECULE_BASE) test; else $(MOLECULE_BASE) test -s $$s; fi; done
# 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
@set -e; for p in ubuntu-2204:geerlingguy/docker-ubuntu2204-ansible:latest:'' ubuntu-2404:geerlingguy/docker-ubuntu2404-ansible:latest:'' ubuntu-2604:geerlingguy/docker-ubuntu2604-ansible:latest:'' debian-12:geerlingguy/docker-debian12-ansible:latest:'' debian-13:geerlingguy/docker-debian13-ansible:latest:'' archlinux:marcstraube/archlinux-ansible:latest:/usr/lib/systemd/systemd; do IFS=":"; set -- $$p; MOLECULE_PLATFORM_NAME=$$1 MOLECULE_PLATFORM_IMAGE=$$2 MOLECULE_PLATFORM_COMMAND=$$3 $(MOLECULE_BASE) test; done
# 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
@set -e; for p in ubuntu-2204:geerlingguy/docker-ubuntu2204-ansible:latest:'' ubuntu-2404:geerlingguy/docker-ubuntu2404-ansible:latest:'' ubuntu-2604:geerlingguy/docker-ubuntu2604-ansible:latest:'' debian-12:geerlingguy/docker-debian12-ansible:latest:'' debian-13:geerlingguy/docker-debian13-ansible:latest:'' archlinux:marcstraube/archlinux-ansible:latest:/usr/lib/systemd/systemd; do IFS=":"; set -- $$p; MOLECULE_PLATFORM_NAME=$$1 MOLECULE_PLATFORM_IMAGE=$$2 MOLECULE_PLATFORM_COMMAND=$$3 $(MOLECULE_BASE) test -s binary; done
# All platform tests (sequential; use CI matrix for parallel execution)
molecule-all: molecule-docker molecule-binary
@@ -2,6 +2,8 @@
- name: Verify
hosts: all
become: true
vars:
runner_name: "molecule-test-runner"
pre_tasks:
- name: Load role defaults
ansible.builtin.include_vars:
@@ -2,6 +2,8 @@
- name: Verify
hosts: all
become: true
vars:
runner_name: "molecule-test-runner"
pre_tasks:
- name: Load role defaults
ansible.builtin.include_vars:
@@ -2,6 +2,8 @@
- name: Verify
hosts: all
become: true
vars:
runner_name: "lifecycle-test-runner"
pre_tasks:
- name: Load role defaults
ansible.builtin.include_vars:
@@ -31,7 +33,7 @@
- name: Check instance data directory exists after lifecycle
ansible.builtin.stat:
path: "/var/lib/gitea-runner/lifecycle-test-runner"
path: "{{ gitea_runner_base_data_dir }}/{{ runner_name }}"
register: data_dir_stat
- name: Assert instance data directory exists