mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-07 19:32:17 +00:00
Add tests/lint/ansible/jinja/test_no_ansible_facts_in_templates.py: under swarm-mode the rendered template lands once on the primary manager and is slurp-distributed to every other node, so any per-host fact reference (ansible_hostname, ansible_default_ipv4, ansible_fqdn, ansible_nodename, ansible_machine_id, ansible_eth0, ansible_all_ipv*_addresses) would silently produce wrong output on the other nodes. The lint blocks them at PR time. scripts/tests/deploy/act/workflow.sh forwards --action-offline-mode + --action-cache-path so repeated local act runs do not refetch the actions catalog. roles/sys-ctl-cln-anon-volumes/tasks/01_core.yml quoting cleanup applied by autoformat (single to double quotes, no semantic change). .claude/settings.json adds Workflow to permissions.allow so the multi-agent Workflow tool no longer prompts per invocation. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
56 lines
1.5 KiB
Bash
Executable File
56 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
: "${ACT_WORKFLOW:?ACT_WORKFLOW is not set (e.g. .github/workflows/test-environment.yml)}"
|
|
: "${ACT_EVENT:=workflow_dispatch}"
|
|
: "${ACT_JOB:=}"
|
|
: "${ACT_MATRIX:=}"
|
|
: "${ACT_CONTAINER_OPTIONS:=--privileged}"
|
|
: "${ACT_NETWORK:=host}"
|
|
: "${ACT_PULL:=false}"
|
|
: "${ACT_RM:=true}"
|
|
: "${ACT_PLATFORM_IMAGE:=catthehacker/ubuntu:act-latest}"
|
|
: "${ACT_BIND:=false}"
|
|
: "${ACT_INPUTS:=}"
|
|
|
|
echo "=== act: workflow=${ACT_WORKFLOW} event=${ACT_EVENT} job=${ACT_JOB:-<all>} matrix=${ACT_MATRIX:-<none>} inputs=${ACT_INPUTS:-<none>} ==="
|
|
|
|
cmd=(act "${ACT_EVENT}" -W "${ACT_WORKFLOW}")
|
|
cmd+=(-P "ubuntu-latest=${ACT_PLATFORM_IMAGE}")
|
|
cmd+=(-P "ubuntu-24.04=${ACT_PLATFORM_IMAGE}")
|
|
cmd+=(-P "ubuntu-22.04=${ACT_PLATFORM_IMAGE}")
|
|
cmd+=(-P "ubuntu-20.04=${ACT_PLATFORM_IMAGE}")
|
|
|
|
if [[ -n "${ACT_JOB}" ]]; then
|
|
cmd+=(-j "${ACT_JOB}")
|
|
fi
|
|
if [[ -n "${ACT_MATRIX}" ]]; then
|
|
cmd+=(--matrix "${ACT_MATRIX}")
|
|
fi
|
|
if [[ -n "${ACT_INPUTS}" ]]; then
|
|
for pair in ${ACT_INPUTS}; do
|
|
cmd+=(--input "${pair}")
|
|
done
|
|
fi
|
|
if [[ -n "${ACT_CONTAINER_OPTIONS}" ]]; then
|
|
cmd+=(--container-options "${ACT_CONTAINER_OPTIONS}")
|
|
fi
|
|
if [[ -n "${ACT_NETWORK}" ]]; then
|
|
cmd+=(--network "${ACT_NETWORK}")
|
|
fi
|
|
cmd+=(--concurrent-jobs "1")
|
|
|
|
cmd+=(--pull="${ACT_PULL}")
|
|
cmd+=(--action-offline-mode)
|
|
cmd+=(--action-cache-path "${ACT_ACTION_CACHE_PATH:-/tmp/actcache/act}")
|
|
if [[ "${ACT_RM}" == "true" ]]; then
|
|
cmd+=(--rm)
|
|
fi
|
|
cmd+=(--cache-server-addr 127.0.0.1)
|
|
cmd+=(--artifact-server-addr 127.0.0.1)
|
|
if [[ "${ACT_BIND}" == "true" ]]; then
|
|
cmd+=(--bind)
|
|
fi
|
|
|
|
"${cmd[@]}"
|