#!/usr/bin/env bash # Run all molecule scenarios on all supported OS platforms. # Used by `make molecule-all`. Sequential — CI uses parallel matrix instead. set -euo pipefail MOLECULE_BIN="$(realpath "${BIN:-.venv/bin}/molecule")" ROLE_DIR="$(cd "$(dirname "$0")/.." && pwd)/ansible/roles/gitea-runner" for p in \ ubuntu-2204:geerlingguy/docker-ubuntu2204-ansible:latest:/lib/systemd/systemd \ ubuntu-2404:geerlingguy/docker-ubuntu2404-ansible:latest:/lib/systemd/systemd \ debian-12:geerlingguy/docker-debian12-ansible:latest:/lib/systemd/systemd \ archlinux:marcstraube/archlinux-ansible:latest:/usr/lib/systemd/systemd do IFS=":" read -r name image command <<< "$p" export MOLECULE_PLATFORM_NAME="$name" MOLECULE_PLATFORM_IMAGE="$image" if [ -n "$command" ]; then export MOLECULE_PLATFORM_COMMAND="$command" else unset MOLECULE_PLATFORM_COMMAND fi echo "=== Platform: $name ===" for s in default multi-instance lifecycle template-content deregister update; do echo "--- Scenario: $s on $name ---" ( cd "$ROLE_DIR" if [ "$s" = "default" ]; then ANSIBLE_ALLOW_BROKEN_CONDITIONALS=true ANSIBLE_INJECT_INVOCATION=1 "$MOLECULE_BIN" test else ANSIBLE_ALLOW_BROKEN_CONDITIONALS=true ANSIBLE_INJECT_INVOCATION=1 "$MOLECULE_BIN" test -s "$s" fi ) done done