mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 10:59:59 +00:00
The per-role existence asserts and the test script path were controller paths evaluated on the remote swarm node (docker connection, node checkout under /opt/infinito-nexus), so every svc-runner swarm job failed on a stat that could never succeed. Assert both required assets in one localhost-delegated loop, stage roles/<app>/files/test onto the node, run the staged script, and delegate the optional defaults/vars probes to the controller (they silently skipped before). svc-runner's test reaches its sources via RUNNER_SRC_DIR (compose: INFINITO_SRC_DIR dev-container mount; swarm: node checkout). The node checkout path itself moves into a single source of truth: INFINITO_NODE_SRC_DIR in default.env, consumed by the bootstrap/copy scripts, the swarm-playwright target, and the swarm inventory extras. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
20 lines
605 B
Bash
Executable File
20 lines
605 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
: "${node:?node= must be set, e.g. node=swarm-mgr-01}"
|
|
|
|
if ! docker inspect --format '{{.State.Running}}' "${node}" 2>/dev/null | grep -q '^true$'; then
|
|
echo "ERROR: container '${node}' is not running. Run \`make swarm-zombie app=<id>\` first." >&2
|
|
exit 1
|
|
fi
|
|
|
|
repo_root="$(cd "$(dirname "$0")/../../../.." && pwd)"
|
|
cd "${repo_root}"
|
|
|
|
# shellcheck source=scripts/meta/env/load.sh
|
|
source "${repo_root}/scripts/meta/env/load.sh"
|
|
|
|
git ls-files -z -m -o --exclude-standard |
|
|
tar --null -cf - -T - |
|
|
docker exec -i "${node}" tar -C "${INFINITO_NODE_SRC_DIR:?}" -xpf -
|