fix deploy.sh: correct API endpoints and git URL patching

This commit is contained in:
TenX PM
2026-05-09 20:30:26 +00:00
parent 5b089c9b77
commit 6ab63c8668
+34 -17
View File
@@ -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}" \ APP_RESPONSE=$(curl -sk -X POST -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
"${COOLIFY_API}/applications" \ "${COOLIFY_API}/applications/public" \
-d "{ -d "{
\"project_uuid\": \"${PROJECT_UUID}\", \"project_uuid\": \"${PROJECT_UUID}\",
\"environment_name\": \"production\", \"environment_name\": \"production\",
@@ -138,33 +138,50 @@ for a in apps:
print('') print('')
" 2>/dev/null) " 2>/dev/null)
if [ -n "${APP_UUID}" ]; then if [ -z "${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
echo "[deploy] ERROR: Could not create or find app" echo "[deploy] ERROR: Could not create or find app"
exit 1 exit 1
fi fi
echo "[deploy] Found existing app: ${APP_UUID}, triggering redeploy..."
fi fi
echo "[deploy] App UUID: ${APP_UUID}" echo "[deploy] App UUID: ${APP_UUID}"
# ── Step 8: Wait for deployment ────────────────────────────────────── # ── Step 7b: Fix git_repository URL (Coolify API strips base URL) ─────
echo "[deploy] Waiting for deployment..." 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 for i in $(seq 1 30); do
sleep 10 sleep 15
STATUS=$(curl -sk -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \ 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) "${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)" echo "[deploy] Deploy: ${DEP_STATUS} | App: ${APP_STATUS} (attempt ${i}/30)"
if [ "${STATUS}" = "running" ]; then if [ "${DEP_STATUS}" = "finished" ] || echo "${APP_STATUS}" | grep -q "running"; then
echo "[deploy] Deployment successful!"
break break
fi fi
if [ "${STATUS}" = "exited" ] || [ "${STATUS}" = "error" ]; then if [ "${DEP_STATUS}" = "failed" ]; then
echo "[deploy] Deployment failed with status: ${STATUS}" echo "[deploy] Deployment FAILED. Check Coolify dashboard for logs."
# Get logs
curl -sk -H "Authorization: Bearer ${COOLIFY_ACCESS_TOKEN}" \
"${COOLIFY_API}/applications/${APP_UUID}/logs" 2>/dev/null | tail -20
exit 1 exit 1
fi fi
done done