diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ce8eeadc755ec7552829d19dd78a2fa26a036d9f..5e1ff4c7bd35fff2689b645196747d94ccd57bb7 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"