- Submodule pins: dbis_core, cross-chain-pmm-lps, mcp-proxmox (local, push may be pending), metamask-integration, smom-dbis-138 - Atomic swap + cross-chain-pmm-lops-publish, deploy-portal workflow, phoenix deploy-targets, routing/aggregator matrices - Docs, token-lists, forge proxy, phoenix API, runbooks, verify scripts Made-with: Cursor
91 lines
2.7 KiB
Bash
Executable File
91 lines
2.7 KiB
Bash
Executable File
#!/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."
|