Actualiser .gitea/workflows/ci.yml
This commit is contained in:
+7
-32
@@ -63,9 +63,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "--- 1. Authentification ---"
|
echo "--- 1. Authentification ---"
|
||||||
printf '{"username":"%s","password":"%s"}' "${{ secrets.PORTAINER_USER }}" "${{ secrets.PORTAINER_PASS }}" > auth.json
|
printf '{"username":"%s","password":"%s"}' "${{ secrets.PORTAINER_USER }}" "${{ secrets.PORTAINER_PASS }}" > auth.json
|
||||||
TOKEN=$(curl -s -k -X POST "${PORTAINER_API}/auth" \
|
TOKEN=$(curl -s -k -X POST "${PORTAINER_API}/auth" -H "Content-Type: application/json" -d @auth.json | grep -o '"jwt":"[^"]*"' | cut -d'"' -f4)
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d @auth.json | grep -o '"jwt":"[^"]*"' | cut -d'"' -f4)
|
|
||||||
rm -f auth.json
|
rm -f auth.json
|
||||||
|
|
||||||
if [ -z "$TOKEN" ]; then
|
if [ -z "$TOKEN" ]; then
|
||||||
@@ -75,54 +73,31 @@ jobs:
|
|||||||
echo "Authentification réussie"
|
echo "Authentification réussie"
|
||||||
|
|
||||||
echo "--- 2. Récupération des IDs ---"
|
echo "--- 2. Récupération des IDs ---"
|
||||||
ENDPOINT_ID=$(curl -s -k \
|
ENDPOINT_ID=$(curl -s -k -H "Authorization: Bearer $TOKEN" "${PORTAINER_API}/endpoints" | grep -o '"Id":[0-9]*,"Name":"myportainer-cgy-dev"' | grep -o '[0-9]*' | head -n 1)
|
||||||
-H "Authorization: Bearer $TOKEN" \
|
|
||||||
"${PORTAINER_API}/endpoints" \
|
|
||||||
| grep -o '"Id":[0-9]*,"Name":"myportainer-cgy-dev"' \
|
|
||||||
| grep -o '[0-9]*' | head -n 1)
|
|
||||||
echo "Endpoint ID : $ENDPOINT_ID"
|
echo "Endpoint ID : $ENDPOINT_ID"
|
||||||
|
|
||||||
STACK_ID=$(curl -s -k \
|
STACK_ID=$(curl -s -k -H "Authorization: Bearer $TOKEN" "${PORTAINER_API}/stacks" | grep -o '"Id":[0-9]*,"Name":"gitea-action-dev"' | grep -o '[0-9]*' | head -n 1)
|
||||||
-H "Authorization: Bearer $TOKEN" \
|
|
||||||
"${PORTAINER_API}/stacks" \
|
|
||||||
| grep -o '"Id":[0-9]*,"Name":"gitea-action-dev"' \
|
|
||||||
| grep -o '[0-9]*' | head -n 1)
|
|
||||||
echo "Stack ID : $STACK_ID"
|
echo "Stack ID : $STACK_ID"
|
||||||
|
|
||||||
echo "--- 3. Génération du Payload ---"
|
echo "--- 3. Génération du Payload ---"
|
||||||
node -e '
|
node -e '
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
const compose = fs.readFileSync("docker-compose.yml", "utf8");
|
const compose = fs.readFileSync("docker-compose.yml", "utf8");
|
||||||
const payload = {
|
const payload = { stackFileContent: compose, pullImage: true, prune: true };
|
||||||
stackFileContent: compose,
|
|
||||||
pullImage: true,
|
|
||||||
prune: true
|
|
||||||
};
|
|
||||||
fs.writeFileSync("payload.json", JSON.stringify(payload));
|
fs.writeFileSync("payload.json", JSON.stringify(payload));
|
||||||
console.log("Payload size:", JSON.stringify(payload).length, "bytes");
|
console.log("Payload size:", JSON.stringify(payload).length, "bytes");
|
||||||
'
|
'
|
||||||
|
|
||||||
echo "--- 4. Envoi à Portainer ---"
|
echo "--- 4. Envoi à Portainer ---"
|
||||||
RESPONSE=$(curl -s -k \
|
RESPONSE=$(curl -s -k --max-time 300 --retry 3 --retry-delay 10 --retry-all-errors -o response_body.json -w "%{http_code}" -X PUT "${PORTAINER_API}/stacks/${STACK_ID}?endpointId=${ENDPOINT_ID}" -H "Authorization: Bearer ${TOKEN}" -H "Content-Type: application/json" -d @payload.json)
|
||||||
--max-time 300 # attend jusqu'à 5 minutes
|
|
||||||
--retry 3 # réessaie 3 fois si échec
|
|
||||||
--retry-delay 10 # attend 10 secondes entre chaque tentative
|
|
||||||
--retry-all-errors # réessaie même sur les erreurs 5xx comme le 504
|
|
||||||
-o response_body.json \
|
|
||||||
-w "%{http_code}" \
|
|
||||||
-X PUT "${PORTAINER_API}/stacks/${STACK_ID}?endpointId=${ENDPOINT_ID}" \
|
|
||||||
-H "Authorization: Bearer ${TOKEN}" \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d @payload.json)
|
|
||||||
|
|
||||||
echo "HTTP Code : $RESPONSE"
|
echo "HTTP Code : $RESPONSE"
|
||||||
echo "Réponse Portainer :"
|
|
||||||
cat response_body.json
|
cat response_body.json
|
||||||
|
|
||||||
if [ "$RESPONSE" = "200" ]; then
|
if [ "$RESPONSE" = "200" ]; then
|
||||||
echo "DEPLOIEMENT REUSSI - Frontend: 3026 / Backend: 8025"
|
echo "✅ DEPLOIEMENT REUSSI - Frontend: 3026 / Backend: 8025"
|
||||||
else
|
else
|
||||||
echo "Erreur Portainer (Code HTTP $RESPONSE)"
|
echo "❌ ECHEC - Erreur Portainer (Code HTTP $RESPONSE)"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user