63 lines
1.7 KiB
YAML
63 lines
1.7 KiB
YAML
stages:
|
|
- build
|
|
- test
|
|
- deploy
|
|
|
|
|
|
build-job:
|
|
stage: build
|
|
tags:
|
|
- deploiement
|
|
script:
|
|
- echo "Compilation du code..."
|
|
# Ajoutez vos commandes de build ici
|
|
|
|
test-job:
|
|
stage: test
|
|
tags:
|
|
- deploiement
|
|
script:
|
|
- echo "Exécution des tests..."
|
|
# Ajoutez vos commandes de test ici
|
|
|
|
deploy-job:
|
|
stage: deploy
|
|
tags:
|
|
- deploiement
|
|
script:
|
|
- |
|
|
set -e
|
|
echo "Déploiement sur Portainer..."
|
|
echo "Utilisation du token API de Portainer..."
|
|
|
|
# Vérification des variables d'environnement
|
|
if [ -z "$PORTAINER_API_KEY" ]; then echo "Erreur : PORTAINER_API_KEY non définie."; exit 1; fi
|
|
if [ -z "$PORTAINER_URL" ]; then echo "Erreur : PORTAINER_URL non définie."; exit 1; fi
|
|
if [ -z "$STACK_ID" ]; then echo "Erreur : STACK_ID non définie."; exit 1; fi
|
|
if [ -z "$ENDPOINT_ID" ]; then echo "Erreur : ENDPOINT_ID non définie."; exit 1; fi
|
|
|
|
echo "Déclenchement du redeploiement de la stack Git sur Portainer..."
|
|
|
|
# Construire le corps de la requête JSON
|
|
DATA="{\"endpointId\": $ENDPOINT_ID}"
|
|
|
|
# Exécuter la requête pour redeployer la stack Git
|
|
RESPONSE=$(curl -s -k -w "%{http_code}" -X PUT \
|
|
-H "Authorization: Bearer $PORTAINER_API_KEY" \
|
|
-H "Content-Type: application/json" \
|
|
-d "$DATA" \
|
|
"https://$PORTAINER_URL/api/stacks/$STACK_ID/git/redeploy")
|
|
|
|
# Extraire le code HTTP de la réponse
|
|
HTTP_CODE="${RESPONSE: -3}"
|
|
BODY="${RESPONSE::-3}"
|
|
|
|
if [ "$HTTP_CODE" != "200" ]; then
|
|
echo "Erreur : Échec du déploiement. Code HTTP : $HTTP_CODE"
|
|
echo "Réponse de l'API : $BODY"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Déploiement terminé avec succès."
|
|
|