# ==============================================
# Pipeline Concourse - Déploiement Automatique
# ==============================================
# Surveille le repo Git et déploie automatiquement

resource_types: []

resources:
  # Repo Git local (polling toutes les 30 secondes)
  - name: repo
    type: git
    icon: gitlab
    check_every: 30s
    source:
      uri: https://forge.gwenaelremond.fr/romain/ansiblenginx.git
      branch: main

jobs:
  # Job principal : Déploiement automatique
  - name: deploy-bricoloc
    plan:
      # 1. Récupère le code depuis Git
      - get: repo
        trigger: true  # Déclenche automatiquement sur changement

      # 2. Déploie sur le VPS
      - task: deploy-to-vps
        config:
          platform: linux
          
          image_resource:
            type: registry-image
            source:
              repository: python
              tag: "3.11-slim"
          
          inputs:
            - name: repo
          
          params:
            ssh_private_key: ((ssh_private_key))
            vps_host: ((vps_host))
            vps_user: ((vps_user))
          
          run:
            path: /bin/bash
            args:
              - -exc
              - |
                # Installer les dépendances
                apt-get update && apt-get install -y openssh-client rsync sshpass
                pip install ansible

                # Configurer SSH
                mkdir -p ~/.ssh
                echo "$ssh_private_key" > ~/.ssh/id_rsa
                chmod 600 ~/.ssh/id_rsa
                ssh-keyscan -H $vps_host >> ~/.ssh/known_hosts 2>/dev/null

                cd repo

                # Créer l'inventaire dynamique
                cat > inventory.yml << EOF
                all:
                  hosts:
                    vps1:
                      ansible_host: $vps_host
                      ansible_user: $vps_user
                      ansible_ssh_private_key_file: ~/.ssh/id_rsa
                  children:
                    webservers:
                      hosts:
                        vps1:
                EOF

                # Lancer le playbook Ansible
                ansible-playbook -i inventory.yml playbook.yml

                echo "✅ Déploiement terminé sur $vps_host"
