**Motivations:** - Single generic orchestration in ia_dev while business logic stays in each project repo **Root causes:** - N/A (evolution) **Correctifs:** - N/A **Evolutions:** - Add orchestrator.sh (deploy.hooks.phases or fallback deploy.deploy_script_path) - Add deploy.sh <project_id> <env> [options] as canonical entry from ia_dev root - run-project-hooks.sh execs orchestrator.sh for backward compatibility - change-to-all-branches.sh and deploy-by-script-to.sh invoke orchestrator.sh when IA_PROJECT_ID is set - Document orchestration in README.md and deploy/lib/README.md **Pages affectées:** - README.md, deploy/orchestrator.sh, deploy/deploy.sh, deploy/run-project-hooks.sh, deploy/change-to-all-branches.sh, deploy/deploy-by-script-to.sh, deploy/lib/README.md
1.1 KiB
1.1 KiB
Shared deploy libraries (ia_dev)
ssh.sh
Canonical SSH/SCP helpers (ssh_run, scp_copy, require_ssh_key, ssh_common_opts) used across projects.
LeCoffre : deploy/scripts_v2/_lib/ssh.sh sources ia_dev/deploy/lib/ssh.sh when the submodule path ia_dev/deploy/lib/ssh.sh exists from the repo root; otherwise it embeds the same implementation.
deploy-log.sh
Optional deploy_script_tee_log_if_requested <project_root> <log_subdir> — requires info from the project’s colors.sh (sourced before this file in deploy.sh).
Policy
Project-specific logic (Prisma, systemd unit names, remote app layout, LeCoffre domains) stays under each repository’s deploy/scripts_v2/. Only transport/logging helpers live here.
Orchestration (../orchestrator.sh, ../deploy.sh)
deploy.sh:./deploy/deploy.sh <project_id> <env> [args]— generic entry; business scripts live in the target repo (deploy_script_path/hooks.phases).orchestrator.sh: runs phases or fallback script;run-project-hooks.shexecs it for backward compatibility.