scripts/lib/install/deploy/
Pluggable deploy-target modules consumed by scripts/bin/install deploy
(Phase 4 of the installer refactor). Each module configures one target;
the registry coordinates discovery, dispatch, and verification.
Files
| File | Role |
|---|---|
registry.sh |
Module discovery, dispatch, shared deploy_render / deploy_copy. |
github-pages.sh |
Actions workflow that publishes _site/ to gh-pages. |
azure-swa.sh |
Azure SWA workflow + staticwebapp.config.json. |
docker-prod.sh |
Multi-stage Docker build + production compose + nginx config. |
Module contract
Every module must define:
| Symbol | Purpose |
|---|---|
DEPLOY_<SLUG_UPPER>_TITLE |
One-line display name shown by install list-targets. |
DEPLOY_<SLUG_UPPER>_SUMMARY |
One-line description shown by install list-targets. |
deploy_<slug>_check_prereqs <dir> |
Print warnings; return non-zero only on hard blockers. |
deploy_<slug>_install <dir> |
Idempotent file install (uses deploy_render_if_absent). |
deploy_<slug>_verify <dir> |
Confirm expected files exist + look correct. |
deploy_<slug>_doc_url |
Print the canonical upstream documentation URL. |
Modules use the lightweight deploy_render placeholder set
(,, ,
) so they can run without the full install.sh global
environment.
Adding a target
- Add
templates/deploy/<slug>/with the assets (workflow YAML, Dockerfile, README, etc.). Use*.templatefor files that need variable substitution. - Create
scripts/lib/install/deploy/<slug>.shexporting the four hooks above. - Add
<slug>toDEPLOY_TARGETS_LISTinregistry.sh(alphabetical). - Optionally reference
<slug>underdeploy_targets:intemplates/profiles/*.ymlso the profile can suggest it. - Update
templates/deploy/README.mdwith the new target row.
CLI integration
./scripts/bin/install list-targets
./scripts/bin/install deploy github-pages /path/to/site
./scripts/bin/install deploy azure-swa,docker-prod /path/to/site