mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 19:01:54 +00:00
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>
GitHub Workflow Helpers 🔧
This is the SPOT for GitHub workflow helper scripts under scripts/github/.
These helpers are called from .github/workflows/.
For the repository Make target index, see make.md.
Entry Points 📋
| Script | What it does | Used by |
|---|---|---|
cancel_deleted_branch_runs.sh |
Cancels active workflow runs for a deleted branch. | .github/workflows/delete-branch.yml |
cancel_pull_request_runs.sh |
Cancels active workflow runs for a closed pull request. | .github/workflows/cancel-pull-request-runs.yml |
check_git_changes.sh |
Emits a changed=true/false workflow output based on git diff. |
.github/workflows/update.yml |
install_update_python.sh |
Installs Python dependencies needed by the automated update workflows. | .github/workflows/update.yml |
open_update_pr.sh |
Commits update changes, pushes the branch, and creates or refreshes the matching Pull Request. | .github/workflows/update.yml |
update_docker_image_versions.sh |
Runs the Docker image version updater CLI from GitHub Actions. | .github/workflows/update.yml |