canguidev/.gitlab-ci.yml

65 lines
1.8 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
script:
- set -x
- echo "Déploiement sur Portainer..."
- echo "Utilisation du token API de Portainer..."
# Vérifier que la variable PORTAINER_API_KEY est définie (sans l'afficher)
- if [ -z "$PORTAINER_API_KEY" ]; then echo "Erreur : La variable PORTAINER_API_KEY n'est pas définie."; exit 1; fi
# Vérifier que PORTAINER_URL et STACK_ID sont définis
- if [ -z "$PORTAINER_URL" ]; then echo "Erreur : La variable PORTAINER_URL n'est pas définie."; exit 1; fi
- if [ -z "$STACK_ID" ]; then echo "Erreur : La variable STACK_ID n'est pas définie."; exit 1; fi
# Optionnel : Afficher les variables (sans afficher les données sensibles)
- echo "PORTAINER_URL : $PORTAINER_URL"
- echo "STACK_ID : $STACK_ID"
- echo "Déploiement de la stack sur Portainer..."
# Exécuter la commande curl avec l'option -v pour avoir plus de détails
- |
RESPONSE=$(curl -v -X PUT \
-H "Authorization: Bearer $PORTAINER_API_KEY" \
-H "Content-Type: application/json" \
-d '{"Prune": true}' \
http://$PORTAINER_URL/api/stacks/$STACK_ID/deploy 2>&1)
# Extraire le code HTTP de la réponse
HTTP_CODE=$(echo "$RESPONSE" | grep "< HTTP/" | awk '{print $3}')
# Afficher la réponse pour le débogage
echo "Réponse de l'API :"
echo "$RESPONSE"
if [ "$HTTP_CODE" != "200" ]; then
echo "Erreur : Échec du déploiement. Code HTTP : $HTTP_CODE"
exit 1
fi
- echo "Déploiement terminé avec succès."