#!/usr/bin/env bash # Bootstrap the Phoenix deploy CI/CD path for this repo. # # Steps: # 1. Run repo validation # 2. Deploy phoenix-deploy-api to dev VM # 3. Smoke-check /health and /api/deploy-targets # 4. Optionally add a Gitea webhook for a repo that does not already deploy via Actions # # Usage: # bash scripts/dev-vm/bootstrap-phoenix-cicd.sh # bash scripts/dev-vm/bootstrap-phoenix-cicd.sh --repo d-bis/proxmox # bash scripts/dev-vm/bootstrap-phoenix-cicd.sh --repo some/repo --add-webhook set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "${SCRIPT_DIR}/../.." && pwd)" [[ -f "${PROJECT_ROOT}/.env" ]] && set -a && source "${PROJECT_ROOT}/.env" && set +a REPO="${PHOENIX_CICD_REPO:-d-bis/proxmox}" ADD_WEBHOOK=0 DRY_RUN=0 while [[ $# -gt 0 ]]; do case "$1" in --repo) REPO="${2:?--repo requires owner/repo}" shift 2 ;; --add-webhook) ADD_WEBHOOK=1 shift ;; --dry-run) DRY_RUN=1 shift ;; *) echo "Unknown argument: $1" >&2 exit 1 ;; esac done DEPLOY_HEALTH_URL="${PHOENIX_CICD_HEALTH_URL:-http://192.168.11.59:4001/health}" DEPLOY_TARGETS_URL="${PHOENIX_CICD_TARGETS_URL:-http://192.168.11.59:4001/api/deploy-targets}" echo "=== Phoenix CI/CD bootstrap ===" echo "Repo: ${REPO}" echo "Health URL: ${DEPLOY_HEALTH_URL}" echo "Targets URL: ${DEPLOY_TARGETS_URL}" echo "Add webhook: ${ADD_WEBHOOK}" echo "Dry-run: ${DRY_RUN}" echo "" if [[ "${DRY_RUN}" -eq 1 ]]; then echo "[DRY-RUN] bash scripts/verify/run-all-validation.sh --skip-genesis" echo "[DRY-RUN] bash scripts/deployment/deploy-phoenix-deploy-api-to-dev-vm.sh --apply --start-ct" echo "[DRY-RUN] curl -sS ${DEPLOY_HEALTH_URL}" echo "[DRY-RUN] curl -sS ${DEPLOY_TARGETS_URL}" if [[ "${ADD_WEBHOOK}" -eq 1 ]]; then echo "[DRY-RUN] bash scripts/dev-vm/add-gitea-webhook-phoenix.sh ${REPO}" fi exit 0 fi echo "[1/4] Validation gate..." bash "${PROJECT_ROOT}/scripts/verify/run-all-validation.sh" --skip-genesis echo "" echo "[2/4] Deploy phoenix-deploy-api..." bash "${PROJECT_ROOT}/scripts/deployment/deploy-phoenix-deploy-api-to-dev-vm.sh" --apply --start-ct echo "" echo "[3/4] Smoke checks..." curl -sSf "${DEPLOY_HEALTH_URL}" | jq . curl -sSf "${DEPLOY_TARGETS_URL}" | jq . if [[ "${ADD_WEBHOOK}" -eq 1 ]]; then echo "" echo "[4/4] Add Gitea webhook (only for repos not already deploying via Actions)..." bash "${PROJECT_ROOT}/scripts/dev-vm/add-gitea-webhook-phoenix.sh" "${REPO}" else echo "" echo "[4/4] Webhook step skipped. Re-run with --add-webhook only for repos that are not already deploying via Gitea Actions." fi echo "" echo "Done."