Post-merge Vikunja update / vikunja (push) Successful in 5s
CI / quality (push) Successful in 1m5s
CI / molecule-tests (0) (push) Successful in 18m37s
CI / molecule-tests (2) (push) Successful in 18m51s
CI / molecule-tests (1) (push) Successful in 19m6s
Publish Release / publish (push) Failing after 9s
36 lines
1.5 KiB
Bash
Executable File
36 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Run all molecule scenarios on all supported OS platforms.
|
|
# Used by `make molecule-all`. Sequential — CI uses parallel matrix instead.
|
|
# Platform list is sourced from scripts/distribute_molecule.py to avoid duplication.
|
|
set -euo pipefail
|
|
|
|
MOLECULE_BIN="$(realpath "${BIN:-.venv/bin}/molecule")"
|
|
ROLE_DIR="$(cd "$(dirname "$0")/.." && pwd)/ansible/roles/gitea-runner"
|
|
SCRIPTS_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
|
|
# Read platforms from distribute_molecule.py (single source of truth)
|
|
PLATFORMS_OUTPUT="$("$MOLECULE_BIN" python "${SCRIPTS_DIR}/distribute_molecule.py" --list-platforms 2>/dev/null || \
|
|
python3 "${SCRIPTS_DIR}/distribute_molecule.py" --list-platforms)"
|
|
|
|
for p in $PLATFORMS_OUTPUT; 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
|