From 33061ae4a28275b09aa312c639a5a7926aec84ed Mon Sep 17 00:00:00 2001
From: mohamed menacer <mohamed.menacer@etu.univ-amu.fr>
Date: Thu, 27 Feb 2025 11:35:38 +0100
Subject: [PATCH] 29 edition

---
 .gitlab-ci.yml | 64 +++++++++++++++++++++++++++++---------------------
 1 file changed, 37 insertions(+), 27 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ce8eead..5e1ff4c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,43 +1,53 @@
-image: docker:latest
-
-services:
-  - name: docker:dind
-    entrypoint: ["/bin/sh", "-c"]
-    command: ["dockerd-entrypoint.sh --tls=false --host tcp://0.0.0.0:2375"]
-    privileged: true
-
-variables:
-  DOCKER_HOST: "tcp://docker:2375"
-  DOCKER_TLS_CERTDIR: ""
-  DOCKER_DRIVER: "overlay2"
-
-before_script:
-  - echo "🔧 Vérification de Docker"
-  - docker version
-  - docker info
-
 stages:
   - build
   - test
+  - push
   - deploy
 
+variables:
+  IMAGE_BACKEND: "$CI_REGISTRY_IMAGE/backend"
+  IMAGE_NGINX: "$CI_REGISTRY_IMAGE/nginx"
+  IMAGE_DB: "$CI_REGISTRY_IMAGE/db"
+  DOCKER_DRIVER: overlay2
+
+before_script:
+  - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
+
 build:
   stage: build
   script:
-    - echo "🚀 Construction de l'image Docker..."
-    - docker build -t my-app:latest .
+    - docker build -t $IMAGE_BACKEND:latest ./backend
+    - docker build -t $IMAGE_NGINX:latest ./nginx
+  only:
+    - main
 
 test:
   stage: test
   script:
-    - echo "🧪 Lancement des tests..."
-    - docker run --rm my-app:latest pytest
+    - echo "Tests en cours..."
+    - docker run --rm $IMAGE_BACKEND:latest php -v
+  only:
+    - main
+
+push:
+  stage: push
+  script:
+    - docker push $IMAGE_BACKEND:latest
+    - docker push $IMAGE_NGINX:latest
+  only:
+    - main
 
 deploy:
   stage: deploy
+  only:
+    - main
+  environment:
+    name: production
+    url: http://your-server-ip
+  before_script:
+    - mkdir -p ~/.ssh
+    - echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa
+    - chmod 600 ~/.ssh/id_rsa
+    - ssh-keyscan your-server-ip >> ~/.ssh/known_hosts
   script:
-    - echo "📦 Déploiement en cours..."
-    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
-    - docker tag my-app:latest "$CI_REGISTRY_IMAGE:latest"
-    - docker push "$CI_REGISTRY_IMAGE:latest"
-
+    - ssh user@your-server-ip "cd /path/to/project && git pull && docker-compose pull && docker-compose up -d --build"
-- 
GitLab