From 0db6ae00f0d0c64d58ede7cd4b16e3b4dfa2360a Mon Sep 17 00:00:00 2001 From: canguilieme julien Date: Wed, 9 Oct 2024 22:38:49 +0200 Subject: [PATCH] add docker files --- .gitlab-ci.yml | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 26ba77f..253fc94 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,7 +3,6 @@ stages: - test - deploy - build-job: stage: build tags: @@ -28,22 +27,39 @@ deploy-job: - | set -e echo "Déploiement sur Portainer..." - echo "Utilisation du token API de Portainer..." + echo "Authentification avec l'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 + # Vérification des variables d'environnement pour les informations d'authentification + if [ -z "$PORTAINER_USERNAME" ]; then echo "Erreur : PORTAINER_USERNAME non défini."; exit 1; fi + if [ -z "$PORTAINER_PASSWORD" ]; then echo "Erreur : PORTAINER_PASSWORD non défini."; exit 1; fi + if [ -z "$PORTAINER_URL" ]; then echo "Erreur : PORTAINER_URL non défini."; exit 1; fi + if [ -z "$STACK_ID" ]; then echo "Erreur : STACK_ID non défini."; exit 1; fi + if [ -z "$ENDPOINT_ID" ]; then echo "Erreur : ENDPOINT_ID non défini."; exit 1; fi + + # Authentification pour obtenir un JWT + AUTH_RESPONSE=$(curl -s -k -X POST \ + -H "Content-Type: application/json" \ + -d "{\"Username\": \"$PORTAINER_USERNAME\", \"Password\": \"$PORTAINER_PASSWORD\"}" \ + "https://$PORTAINER_URL/api/auth") + + # Extraire le token JWT de la réponse + JWT_TOKEN=$(echo $AUTH_RESPONSE | jq -r .jwt) + + if [ "$JWT_TOKEN" == "null" ]; then + echo "Erreur : Échec de l'authentification avec Portainer." + exit 1 + fi + + echo "Authentification réussie. Token JWT récupéré." 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 + # Exécuter la requête pour redeployer la stack Git avec le JWT récupéré RESPONSE=$(curl -s -k -w "%{http_code}" -X PUT \ - -H "Authorization: Bearer $PORTAINER_API_KEY" \ + -H "Authorization: Bearer $JWT_TOKEN" \ -H "Content-Type: application/json" \ -d "$DATA" \ "https://$PORTAINER_URL/api/stacks/$STACK_ID/git/redeploy") @@ -59,4 +75,3 @@ deploy-job: fi echo "Déploiement terminé avec succès." -