mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 11:46:35 +00:00
scripts/tests/environment/ becomes scripts/tests/workspace/ with one subdirectory per track. base/ prepares the workspace and is a prerequisite; compose/ and swarm/ are independent of each other, so CI can run them as separate jobs with a budget each. 00_orchestrator.sh runs the tracks named by INFINITO_WORKSPACE_TRACKS and aborts on an unknown one. The job count stays at five: cli.meta.ci.dev_runtime matrix assigns exactly one track per distro and flips the split with the run number, so two consecutive runs cover both tracks on every distro without doubling the matrix. The workspace_track input (rotate|compose|swarm) pins it from manual steer through the orchestrator for a targeted re-run. Job names carry the track glyph from utils/symbol_glossary and the image shortened to its last two segments, so quay.io/centos/centos:latest reads as centos:latest. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
37 lines
1.6 KiB
Bash
Executable File
37 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Deploy on minimal hardware — disable non-essential services to save resources.
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
# shellcheck source=scripts/tests/workspace/utils/common.sh
|
|
source "${SCRIPT_DIR}/../utils/common.sh"
|
|
# shellcheck source=scripts/tests/workspace/utils/cache.sh
|
|
source "${SCRIPT_DIR}/../utils/cache.sh"
|
|
|
|
echo "Snapshotting cache counters before the deploy."
|
|
CACHE_BEFORE="$(cache_snapshot)"
|
|
|
|
echo "Deploying dashboard with all variable (group-conditional) services disabled to speed up the deploy and verify disable= suppresses them from the inventory."
|
|
make compose-deploy mode=reinstall apps="${DASHBOARD_APP}" disable="$(variable_services dashboard javascript)"
|
|
inspect
|
|
|
|
echo "Actively probing both caches to confirm pull-through works end-to-end."
|
|
probe_caches
|
|
|
|
echo "Probing the DiD inner-build cache path (frontend hijack + apt rewrite)."
|
|
probe_did_inner_build
|
|
|
|
echo "Verifying that BOTH local caches saw real pull-through traffic."
|
|
CACHE_AFTER="$(cache_snapshot)"
|
|
assert_caches_used "${CACHE_BEFORE}" "${CACHE_AFTER}"
|
|
|
|
echo "Trusting the local CA certificate so HTTPS endpoints are reachable from the host."
|
|
make network-trust-ca
|
|
|
|
echo "Verifying the dashboard is reachable (matomo was disabled, not the dashboard itself)."
|
|
assert_http_status 200 "${DASHBOARD_URL}"
|
|
|
|
echo "Verifying matomo is not reachable because it was excluded from the inventory."
|
|
# Exception: Expect 000 because curl aborts in TLS before HTTP when the excluded hostname is missing from the certificate SANs.
|
|
assert_http_status 000 "${MATOMO_URL}"
|