build_image_dev:
  stage: build
  image: docker:latest
  services:
    - docker:dind
  script:
    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
    - docker build -t $CI_REGISTRY_IMAGE .
    - docker push $CI_REGISTRY_IMAGE
  only:
    - dev
  # rules:
  #   - changes:
  #     - Dockerfile

unit_tests:
  image: $CI_REGISTRY_IMAGE
  stage: test
  script:
    - phpunit
  only:
    - dev

deploy to OVH dev:
  image: $CI_REGISTRY_IMAGE
  stage: deploy
  only:
    - dev #pas oublier de changer ça quand tu va merge tu met main et pas prod
  before_script:
    - mkdir -p ~/.ssh
    - ssh-keyscan -H $ssh_host >> ~/.ssh/known_hosts
  script:
    - |
      sshpass -p "$ssh_password" ssh $ssh_user@$ssh_host bash << EOF
        # Vérifier si le dossier dev existe
        if [ ! -d "$path_push_dev" ]; then
          echo "📁 Création du dossier et clone du dépôt..."
          mkdir -p \$(dirname $path_push_dev)
          # Clone avec authentification via token GitLab
          git clone -b dev https://oauth2:$GITLAB_TOKEN@gitlab.com/olcv/crm-gaultmillau.git $path_push_dev
          cd $path_push_dev
          # Copier composer.phar depuis la racine si nécessaire
          if [ ! -f composer.phar ] && [ -f ~/composer.phar ]; then
            cp ~/composer.phar .
          fi
          echo "✅ Clone terminé avec succès !"
        else
          echo "📂 Dossier existe, mise à jour..."
          cd $path_push_dev
          git fetch --all
          git checkout dev
          git pull
          echo "✅ Mise à jour terminée !"
        fi
        # Mise à jour Composer
        echo "📦 Mise à jour des dépendances Composer..."
        php composer.phar self-update 2>/dev/null || true
        php composer.phar update phpmailer/phpmailer --no-dev --optimize-autoloader
        
        # Créer le dossier upload pour les PDFs
        echo "📁 Configuration du dossier upload..."
        mkdir -p www/crm-olcv/upload
        chmod -R 777 www/crm-olcv/upload
        echo "✅ Dossier upload configuré !"
        
        echo "✅ Déploiement terminé avec succès !"
      EOF
  after_script:
    - rm -rf ~/.ssh
  needs:
    - job: unit_tests