fix deploy.sh: correct API endpoints and git URL patching
This commit is contained in:
@@ -108,7 +108,7 @@ REPO_FULL_URL="${GITEA_URL}/${GITEA_USER}/${PROJECT_NAME}.git"
|
||||
|
||||
APP_RESPONSE=$(curl -sk -X POST -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||
-H "Content-Type: application/json" \
|
||||
"${COOLIFY_API}/applications" \
|
||||
"${COOLIFY_API}/applications/public" \
|
||||
-d "{
|
||||
\"project_uuid\": \"${PROJECT_UUID}\",
|
||||
\"environment_name\": \"production\",
|
||||
@@ -138,33 +138,50 @@ for a in apps:
|
||||
print('')
|
||||
" 2>/dev/null)
|
||||
|
||||
if [ -n "${APP_UUID}" ]; then
|
||||
echo "[deploy] Found existing app: ${APP_UUID}, redeploying..."
|
||||
curl -sk -X POST -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||
"${COOLIFY_API}/applications/${APP_UUID}/restart" > /dev/null
|
||||
else
|
||||
if [ -z "${APP_UUID}" ]; then
|
||||
echo "[deploy] ERROR: Could not create or find app"
|
||||
exit 1
|
||||
fi
|
||||
echo "[deploy] Found existing app: ${APP_UUID}, triggering redeploy..."
|
||||
fi
|
||||
|
||||
echo "[deploy] App UUID: ${APP_UUID}"
|
||||
|
||||
# ── Step 8: Wait for deployment ──────────────────────────────────────
|
||||
echo "[deploy] Waiting for deployment..."
|
||||
# ── Step 7b: Fix git_repository URL (Coolify API strips base URL) ─────
|
||||
curl -sk -X PATCH -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||
-H "Content-Type: application/json" \
|
||||
"${COOLIFY_API}/applications/${APP_UUID}" \
|
||||
-d "{\"git_repository\": \"${REPO_FULL_URL}\"}" > /dev/null
|
||||
echo "[deploy] Git repository URL set: ${REPO_FULL_URL}"
|
||||
|
||||
# ── Step 8: Trigger deployment ────────────────────────────────────────
|
||||
echo "[deploy] Triggering deployment..."
|
||||
DEPLOY_RESPONSE=$(curl -sk -X POST -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"uuid\":\"${APP_UUID}\"}" \
|
||||
"${COOLIFY_API}/deploy")
|
||||
DEPLOYMENT_UUID=$(echo "${DEPLOY_RESPONSE}" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('deployments',[{}])[0].get('deployment_uuid',''))" 2>/dev/null)
|
||||
echo "[deploy] Deployment UUID: ${DEPLOYMENT_UUID}"
|
||||
|
||||
# ── Step 8b: Wait for deployment ─────────────────────────────────────
|
||||
echo "[deploy] Waiting for deployment to complete..."
|
||||
for i in $(seq 1 30); do
|
||||
sleep 10
|
||||
STATUS=$(curl -sk -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||
sleep 15
|
||||
if [ -n "${DEPLOYMENT_UUID}" ]; then
|
||||
DEP_STATUS=$(curl -sk -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||
"${COOLIFY_API}/deployments/${DEPLOYMENT_UUID}" | python3 -c "import sys,json; print(json.load(sys.stdin).get('status','unknown'))" 2>/dev/null)
|
||||
else
|
||||
DEP_STATUS="unknown"
|
||||
fi
|
||||
APP_STATUS=$(curl -sk -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||
"${COOLIFY_API}/applications/${APP_UUID}" | python3 -c "import sys,json; print(json.load(sys.stdin).get('status','unknown'))" 2>/dev/null)
|
||||
echo "[deploy] Status: ${STATUS} (attempt ${i}/30)"
|
||||
if [ "${STATUS}" = "running" ]; then
|
||||
echo "[deploy] Deploy: ${DEP_STATUS} | App: ${APP_STATUS} (attempt ${i}/30)"
|
||||
if [ "${DEP_STATUS}" = "finished" ] || echo "${APP_STATUS}" | grep -q "running"; then
|
||||
echo "[deploy] Deployment successful!"
|
||||
break
|
||||
fi
|
||||
if [ "${STATUS}" = "exited" ] || [ "${STATUS}" = "error" ]; then
|
||||
echo "[deploy] Deployment failed with status: ${STATUS}"
|
||||
# Get logs
|
||||
curl -sk -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
|
||||
"${COOLIFY_API}/applications/${APP_UUID}/logs" 2>/dev/null | tail -20
|
||||
if [ "${DEP_STATUS}" = "failed" ]; then
|
||||
echo "[deploy] Deployment FAILED. Check Coolify dashboard for logs."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user