name: CD on: workflow_run: workflows: - CI branches: - main types: - completed jobs: deploy: name: Déploiement production if: ${{ github.event.workflow_run.conclusion == 'success' }} runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Configuration SSH run: | mkdir -p ~/.ssh echo "${{ secrets.DEPLOY_SSH_KEY }}" \ > ~/.ssh/id_ed25519 chmod 600 ~/.ssh/id_ed25519 ssh-keyscan \ -H "${{ secrets.DEPLOY_HOST }}" \ >> ~/.ssh/known_hosts - name: Synchronisation de la configuration Docker run: | ssh \ -i ~/.ssh/id_ed25519 \ ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} \ "mkdir -p /data/stacks/bowli-api/docker/database-backup" scp \ -i ~/.ssh/id_ed25519 \ docker-compose.prod.yml \ ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}:/data/stacks/bowli-api/docker-compose.yml scp \ -i ~/.ssh/id_ed25519 \ docker/database-backup/restore-production \ ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}:/data/stacks/bowli-api/docker/database-backup/restore-production ssh \ -i ~/.ssh/id_ed25519 \ ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} \ "chmod 755 /data/stacks/bowli-api/docker/database-backup/restore-production" - name: 🚀 Deploy Docker run: | ssh \ -i ~/.ssh/id_ed25519 \ ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} << 'EOF' set -e echo "Projet" cd /data/stacks/bowli-api echo "Pull nouvelle image" docker compose pull echo "Redémarrage" docker compose up -d --wait --wait-timeout 180 EOF