Files
computer-playbook/scripts/tests/deploy/local/deploy
kevinveenbirkenbachandClaude Opus 4.7 170b16c59d docs(design): rename matrix-deploy.md to variants.md, add inventory.md, sync cross-links
Two design docs under docs/contributing/design/:

- variants.md (renamed from matrix-deploy.md): explains the
  folder-per-round wrapper that consumes per-role meta/variants.yml
  and iterates variants at deploy time. Headings normalised to
  sentence-case; the "legacy unsuffixed inventory path" wording
  rewritten to drop the historical-context phrasing forbidden by
  documentation.md.
- inventory.md (new): explains how a single round's inventory is
  assembled out of meta/services.yml plus the variant payloads,
  which inclusion mechanisms exist (operator --apps, run_after walk,
  shared-service auto-include via strict `is True`), what lives in
  the inventory file vs. host_vars/<host>.yml, and when Jinja
  actually gets rendered (only at play runtime, via
  utils.cache.applications._render_with_templar). Worked example
  documents the WordPress + Discourse wiring as a reference case.

Cross-links updated wherever they pointed at matrix-deploy.md or
its concept name as a file:

- docs/agents/action/iteration/role.md
- docs/contributing/actions/deploy.md
- docs/contributing/artefact/files/plugins/lookup/applications.md
- docs/contributing/artefact/files/role/variants.md
- scripts/tests/deploy/local/deploy/reuse-kept-app.sh (path comment)

Plain-text occurrences of "matrix-deploy" as a concept term inside
Python comments, log messages, and test docstrings stay as-is; only
file-link references are migrated.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 12:54:09 +02:00
..

Local Deploy Scripts

This is the SPOT for 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 fresh-kept-all.sh.
  • If you run scripts directly, load the defaults with source scripts/meta/env/all.sh.

Naming

  • fresh means the flow creates or refreshes the inventory first.
  • reuse means the flow uses an already existing inventory.
  • kept means the stack and app state stay in place.
  • purged means the flow removes the app or stack state before redeploying.
  • apps means one or more applications, all means every discovered application.

Entry Points

Entry point What it does Key inputs Notes
fresh-kept-all.sh Discovers apps, creates devices.yml, and deploys all discovered apps. INFINITO_DISTRO, TEST_DEPLOY_TYPE, INVENTORY_DIR Fresh all-app inventory path.
reuse-kept-all.sh Deploys every app from an existing inventory. INFINITO_DISTRO, TEST_DEPLOY_TYPE, INVENTORY_DIR Requires ${INVENTORY_DIR}/devices.yml and .password.
fresh-kept-app.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.
reuse-kept-app.sh Runs a targeted infinito deploy dedicated for one or more apps. APPS, TEST_DEPLOY_TYPE, INFINITO_CONTAINER, DEBUG, INVENTORY_DIR Reuses devices.yml.
fresh-purged-app.sh Recreates devices.yml and deploys one or more apps twice with ASYNC_ENABLED=false and ASYNC_ENABLED=true. INFINITO_DISTRO, INVENTORY_DIR, TEST_DEPLOY_TYPE, APPS Baseline and recovery path.