Files
computer-playbook/scripts/meta/resolve
kevinveenbirkenbachandClaude Opus 4.7 91fadbdcc5 feat(ci): diff-driven app whitelist for deploy tests
Narrow the test-deploy-{server,universal,workstation} matrix to roles
actually impacted by the branch's diff against origin/main, expanded
transitively over run_after + dependencies + shared services.

Why: full-matrix deploy CI on every PR is wasteful; explicit per-PR
whitelisting is error-prone. The resolver derives the affected set
automatically while remaining fail-safe.

Behaviour (in resolve_effective_whitelist.sh precedence order):
- whitelist input "__ALL__"  -> empty whitelist (force full deploy)
- whitelist input non-empty  -> verbatim
- whitelist input empty      -> diff vs origin/main
  - empty diff or any path outside roles/<role>/   -> __ALL__
  - all paths under roles/<role>/                  -> reverse closure

Fail-safe: any seed that is not modellable in CombinedResolver
(no application_id and not referenced by any role's run_after) and
any resolver runtime error MUST trigger a fall-back to __ALL__.
The closure never silently shrinks the deploy matrix.

test-deploy-local.yml is intentionally exempt (local/manual dispatch
keeps explicit whitelist semantics).

Documented in pipeline.md and workflows.md.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-05 22:59:45 +02:00
..
…
…
2026-03-27 15:17:17 +01:00

Resolve Scripts

This directory contains scripts that resolve metadata and derived values used by the project.

  • 🧩 Derive runtime values from repository and workflow context
  • 🔍 Resolve identifiers, references, and computed inputs
  • 🗂️ Keep lookup and resolution logic grouped in one place

Examples in this folder and its subfolders:

  • repository/name.sh resolves the concrete repository name once for callers
  • repository/owner.sh resolves the concrete repository owner once for callers
  • distros.sh is the SPOT for the canonical distro list used by workflows
  • See pr/README.md for the Pull Request-specific resolvers.

The scope of this folder is value resolution. Build, release, and wait-oriented behavior should stay in their dedicated script directories.