Files
computer-playbook/scripts/tests/deploy/local/deploy
kevinveenbirkenbachandClaude Opus 5 ed624aa171 feat(compose-deploy): open every deploy with the arguments it resolved
The router now prints one line before it routes:

  === compose-deploy: mode=reinstall apps=svc-ai-litellm bundles= variant= \
      full_cycle=false purge=false disable= playwright_keep=

Rewriting a deploy command is where its other arguments get lost. Switching
apps= from svc-ai-agent-broker to svc-ai-litellm dropped
disable="matomo,dashboard,prometheus,email,css" and
INFINITO_PLAYWRIGHT_KEEP=true in the same edit, after three deploys that had
carried both, and the run went on to deploy matomo and dashboard. That matters
beyond the wasted minutes: test-e2e-cli runs in the destructor stage, after
every role, so the providers are paid for before the CLI test the deploy exists
for even starts.

main.sh is the single entry every compose-deploy passes through, so the line
cannot be skipped and does not depend on remembering to look. It reads the
knobs and exports nothing; 8e293bd921 is on record for what happens when these
same variables reach places that persist them.

compose.md loses the checklist this first carried. The rules were already
stated twice in that file and a third statement is not what was missing; the
misses were not caused by not knowing them. It keeps the two facts that carry
information: why dropping disable= delays the evidence rather than merely
costing resources, and that full_cycle=true is the expensive form rather than
the complete one, since it adds pass 2, credential rotation and the recovery
drill while the CLI tests gate on RUNTIME instead.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-23 23:26:45 +02:00
..
…
…

Local Deploy Scripts

This directory holds the executable local deploy flows under scripts/tests/deploy/local/deploy/.

For other local helpers, use ../README.md. For the canonical Make target index that invokes these helpers, see make.md.

Prerequisites

  • Run commands from the repository root.
  • Docker and Docker Compose are available locally.
  • jq is installed for the app-discovery step in apps/initialize/all.sh.
  • If you run scripts directly, load the defaults with source scripts/meta/env/all.sh.

Naming

The apps/ subtree is split by verb (the user intent) and scope:

  • initialize/ creates or refreshes the inventory; existing entity state is kept.
  • reinstall/ recreates the inventory and purges existing entities first.
  • update/ reuses the already-initialized inventory.
  • all.sh covers every discovered application; selection.sh covers one or more apps passed via apps (or a positional argument).

The bundles/ subtree mirrors the same axes for inventory bundles (fresh.sh ≈ initialize, update.sh ≈ update).

The container/ subtree holds the in-container halves invoked by the host wrappers and follows the same verb/scope layout; see container/.

Entry Points

Entry point What it does Key inputs Notes
apps/initialize/all.sh Discovers apps, creates devices.yml, and deploys all discovered apps. INFINITO_DISTRO, INFINITO_INVENTORY_DIR Fresh all-app inventory path.
apps/initialize/selection.sh <app-id> Creates devices.yml for one or more apps and deploys them. apps=<app-id> Init and deploy path for a specific app set.
apps/reinstall/selection.sh Recreates devices.yml and deploys one or more apps twice with ASYNC_ENABLED=false and ASYNC_ENABLED=true. INFINITO_DISTRO, INFINITO_INVENTORY_DIR, apps Baseline and recovery path; purges entities first.
apps/update/all.sh Deploys every app from an existing inventory. INFINITO_DISTRO, INFINITO_INVENTORY_DIR Requires ${INFINITO_INVENTORY_DIR}/devices.yml and .password.
apps/update/selection.sh Runs a targeted infinito administration deploy dedicated for one or more apps. apps, INFINITO_CONTAINER, INFINITO_DEBUG, INFINITO_INVENTORY_DIR Reuses devices.yml.