#!/usr/bin/env bash # Generic deploy entry from ia_dev: shared methodology (envs, contract), then ia_dev orchestrator → project orchestrator. # Usage (from ia_dev root): ./deploy/deploy.sh [options…] # Example: ./deploy/deploy.sh lecoffreio test --no-sync-origin set -euo pipefail SCRIPT_REAL="$(readlink -f "${BASH_SOURCE[0]:-$0}" 2>/dev/null || realpath "${BASH_SOURCE[0]:-$0}" 2>/dev/null || echo "${BASH_SOURCE[0]:-$0}")" DEPLOY_DIR="$(cd "$(dirname "$SCRIPT_REAL")" && pwd)" IA_DEV_ROOT="$(cd "$DEPLOY_DIR/.." && pwd)" # shellcheck source=../lib/smart_ide_logs.sh source "${IA_DEV_ROOT}/lib/smart_ide_logs.sh" smart_ide_logs_begin "$IA_DEV_ROOT" "$0" "$*" # shellcheck source=lib/deploy-methodology.sh source "${DEPLOY_DIR}/lib/deploy-methodology.sh" if [[ $# -lt 2 ]]; then echo "[deploy][ERROR] Missing arguments" >&2 echo "Usage: $0 [options passed to project orchestrator]" >&2 echo "Example: $0 lecoffreio test --no-sync-origin" >&2 exit 1 fi CONF="${IA_DEV_ROOT}/projects/${1}/conf.json" if [[ ! -f "$CONF" ]]; then echo "[deploy][ERROR] No conf for project '${1}': ${CONF}" >&2 exit 1 fi ia_dev_deploy_assert_env_literal "${2}" || exit 1 export IA_PROJECT_ID="$1" shift exec "$DEPLOY_DIR/orchestrator.sh" "$@"