feat: try fix ci/cd
This commit is contained in:
parent
f17a561cd2
commit
1765fca240
|
|
@ -93,34 +93,35 @@ deploy-to-portainer:
|
||||||
STACKS_JSON="$BODY"
|
STACKS_JSON="$BODY"
|
||||||
STACK_ID=$(echo "$STACKS_JSON" | jq ".[] | select(.Name == \"$PORTAINER_STACK_NAME\") | .Id")
|
STACK_ID=$(echo "$STACKS_JSON" | jq ".[] | select(.Name == \"$PORTAINER_STACK_NAME\") | .Id")
|
||||||
|
|
||||||
|
# Contenu du compose rendu (une seule ligne, guillemets échappés)
|
||||||
|
STACK_FILE_CONTENT=$(sed 's/"/\\"/g' docker-compose.rendered.yml | tr -d '\n')
|
||||||
|
|
||||||
if [ -z "$STACK_ID" ]; then
|
if [ -z "$STACK_ID" ]; then
|
||||||
echo "🆕 Aucune stack '$PORTAINER_STACK_NAME' trouvée, création en cours..."
|
echo "🆕 Aucune stack '$PORTAINER_STACK_NAME' trouvée, création en cours..."
|
||||||
|
|
||||||
|
JSON_PAYLOAD=$(jq -n \
|
||||||
|
--arg name "$PORTAINER_STACK_NAME" \
|
||||||
|
--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" \
|
curl -s -X POST "$PORTAINER_URL/api/stacks?type=2&method=string&endpointId=$PORTAINER_ENDPOINT_ID" \
|
||||||
-H "X-API-Key: $PORTAINER_API_KEY" \
|
-H "X-API-Key: $PORTAINER_API_KEY" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
--data-binary @- <<EOF
|
--data "$JSON_PAYLOAD"
|
||||||
{
|
|
||||||
"name": "$PORTAINER_STACK_NAME",
|
|
||||||
"stackFileContent": "$(cat docker-compose.rendered.yml | sed 's/"/\\"/g' | tr -d '\n')",
|
|
||||||
"prune": true
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "✅ Stack créée."
|
echo "✅ Stack créée."
|
||||||
else
|
else
|
||||||
echo "♻️ Stack '$PORTAINER_STACK_NAME' trouvée (ID=$STACK_ID), mise à jour..."
|
echo "♻️ Stack '$PORTAINER_STACK_NAME' trouvée (ID=$STACK_ID), mise à jour..."
|
||||||
|
|
||||||
|
JSON_PAYLOAD=$(jq -n \
|
||||||
|
--arg id "$STACK_ID" \
|
||||||
|
--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" \
|
curl -s -X PUT "$PORTAINER_URL/api/stacks/$STACK_ID?endpointId=$PORTAINER_ENDPOINT_ID" \
|
||||||
-H "X-API-Key: $PORTAINER_API_KEY" \
|
-H "X-API-Key: $PORTAINER_API_KEY" \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
--data-binary @- <<EOF
|
--data "$JSON_PAYLOAD"
|
||||||
{
|
|
||||||
"id": $STACK_ID,
|
|
||||||
"stackFileContent": "$(cat docker-compose.rendered.yml | sed 's/"/\\"/g' | tr -d '\n')",
|
|
||||||
"prune": true
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "✅ Stack mise à jour."
|
echo "✅ Stack mise à jour."
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue