Files
computer-playbook/scripts/tests/environment
kevinveenbirkenbachandClaude Opus 5 7bcba20f9d test(environment): derive the disable set instead of listing it
07_compose_minimal.sh claimed to disable 'all variable (group-conditional)
services' and then named seven by hand. tor was not among them, so a
deploy meant to be minimal pulled svc-net-tor, which hard-depends on
web-svc-mirror, whose group-conditional prometheus flag the closure
resolver treats as true — dragging the whole web stack in. Steps 12 and
13 passed no disable at all, which is why a mariadb swarm test deployed
keycloak, mailu, matomo, prometheus and dashboard.

The set is now derived from the contract the repo already enforces
(tests/integration/roles/meta/services/test_dynamic_flags.py): a key is
group-conditional when enabled OR shared is a Jinja expression. Checking
only enabled would miss mariadb, postgres, redis, memcached, typesense.

Exclusions are load-bearing, not cosmetic: dashboard because disabling
the primary app aborts init; javascript because it aliases cdn, which
web-app-dashboard declares a hard dependency with no runtime fallback;
mariadb and postgres because steps 12 and 13 test them.

variable_services assigns to a local first — disable="$(cmd)" does not
set the exit status of a simple command, so a failing CLI would have
yielded an empty disable set and steps 12/13 would have run the full
deploy and reported green.

roundtrip could not take disable at all; it now reaches both the compose
and the swarm leg.

Not verified by a deploy: 33 of the keys are new to step 07, and the
variant axis of svc-db-mariadb/svc-db-postgres collapses because tor is
its only dimension.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-06 10:31:05 +02:00
..

Environment Test Suite

This directory contains the modular environment test suite for Infinito.Nexus. It validates the full local development flow from a clean state.

The entry point is 00_orchestrator.sh.

Structure

File Purpose
00_orchestrator.sh Runs all numbered steps in order
01_install.sh Installs package prerequisites and repository dependencies
02_system.sh Shows disk usage and purges cached state
03_build.sh Builds the local Docker image
04_bootstrap.sh Bootstraps the development environment and starts the stack
05_commit.sh Validates pre-commit hook enforcement and --no-verify bypass
06_test.sh Runs the full validation suite
07_compose_minimal.sh Compose deploy on minimal hardware with service exclusion
08_compose_performance.sh Compose deploy of the full application set on performance hardware
09_compose_reuse.sh Compose redeploy reusing existing inventory and packages
10_teardown.sh Shuts down the stack and reverses environment changes
11_console.sh Smoke-tests the interactive console REPL
12_swarm.sh Swarm deploy of the MariaDB database role (svc-db-mariadb)
13_roundtrip.sh Compose+swarm roundtrip of the PostgreSQL database role (svc-db-postgres)
utils/common.sh Shared bootstrap, constants, and generic helpers (HTTP assertion, inventory inspection)
utils/cache.sh Cache-stack assertions and probes (registry-cache, package-cache, DiD inner-build)

Usage

Run the full suite via the entry point:

bash scripts/tests/environment/00_orchestrator.sh

For documentation on the overall development workflow, see the Deploy Guide.