From d24242f35912fb49edaa39f68efb308409f78b84 Mon Sep 17 00:00:00 2001 From: leon-morival Date: Sun, 30 Nov 2025 17:08:41 +0100 Subject: [PATCH] fix: deploy to portainer --- .gitlab-ci.yml | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ef7fb26..0c45954 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -104,10 +104,22 @@ deploy-to-portainer: --arg content "$STACK_FILE_CONTENT" \ '{name: $name, stackFileContent: $content, prune: true}') - curl -s -X POST "$PORTAINER_URL/api/stacks?type=2&method=string&endpointId=$PORTAINER_ENDPOINT_ID" \ + CREATE_RESP=$(curl -s -w "HTTPSTATUS:%{http_code}" \ + -X POST "$PORTAINER_URL/api/stacks?type=2&method=string&endpointId=$PORTAINER_ENDPOINT_ID" \ -H "X-API-Key: $PORTAINER_API_KEY" \ -H "Content-Type: application/json" \ - --data "$JSON_PAYLOAD" + --data "$JSON_PAYLOAD") + + CREATE_BODY=$(echo "$CREATE_RESP" | sed -e 's/HTTPSTATUS:.*//g') + CREATE_STATUS=$(echo "$CREATE_RESP" | tr -d '\n' | sed -e 's/.*HTTPSTATUS://') + + echo "➡️ Create status: $CREATE_STATUS" + echo "➡️ Create body: $CREATE_BODY" + + if [ "$CREATE_STATUS" != "200" ] && [ "$CREATE_STATUS" != "201" ]; then + echo "❌ Erreur lors de la création de la stack (HTTP $CREATE_STATUS)" + exit 1 + fi echo "✅ Stack créée." else @@ -118,10 +130,22 @@ deploy-to-portainer: --arg content "$STACK_FILE_CONTENT" \ '{id: ($id|tonumber), stackFileContent: $content, prune: true}') - curl -s -X PUT "$PORTAINER_URL/api/stacks/$STACK_ID?endpointId=$PORTAINER_ENDPOINT_ID" \ + UPDATE_RESP=$(curl -s -w "HTTPSTATUS:%{http_code}" \ + -X PUT "$PORTAINER_URL/api/stacks/$STACK_ID?endpointId=$PORTAINER_ENDPOINT_ID" \ -H "X-API-Key: $PORTAINER_API_KEY" \ -H "Content-Type: application/json" \ - --data "$JSON_PAYLOAD" + --data "$JSON_PAYLOAD") + + UPDATE_BODY=$(echo "$UPDATE_RESP" | sed -e 's/HTTPSTATUS:.*//g') + UPDATE_STATUS=$(echo "$UPDATE_RESP" | tr -d '\n' | sed -e 's/.*HTTPSTATUS://') + + echo "➡️ Update status: $UPDATE_STATUS" + echo "➡️ Update body: $UPDATE_BODY" + + if [ "$UPDATE_STATUS" != "200" ]; then + echo "❌ Erreur lors de la mise à jour de la stack (HTTP $UPDATE_STATUS)" + exit 1 + fi echo "✅ Stack mise à jour." fi