diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 3f064fd..54d4639 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -1,7 +1,10 @@ name: Deploy Webzine run-name: Deploy to production by @${{ github.actor }} -on: [push] +on: + push: + branches: + - main jobs: # ───────────────────────────────────────────── @@ -12,6 +15,9 @@ jobs: runs-on: ubuntu-latest steps: + - name: Checkout code + uses: actions/checkout@v4 + # Écriture de la clé SSH dans un fichier temporaire - name: Setup SSH key run: | @@ -20,16 +26,15 @@ jobs: chmod 600 ~/.ssh/id_prod ssh-keyscan -p ${{ secrets.PROD_SSH_PORT || 22 }} ${{ secrets.PROD_HOST }} >> ~/.ssh/known_hosts 2>/dev/null - # Transfert du code source sur le serveur - - name: Checkout code - uses: actions/checkout@v4 - + # Compression du code source et transfert vers le serveur - name: Upload source to server run: | - rsync -az --delete \ - -e "ssh -i ~/.ssh/id_prod -p ${{ secrets.PROD_SSH_PORT || 22 }} -o StrictHostKeyChecking=no" \ - ./ \ - ${{ secrets.PROD_USER }}@${{ secrets.PROD_HOST }}:/opt/webzine/prod/src/ + tar --exclude='.git' --exclude='*.user' -czf /tmp/webzine-src.tar.gz . + scp -i ~/.ssh/id_prod \ + -P ${{ secrets.PROD_SSH_PORT || 22 }} \ + -o StrictHostKeyChecking=no \ + /tmp/webzine-src.tar.gz \ + ${{ secrets.PROD_USER }}@${{ secrets.PROD_HOST }}:/tmp/webzine-src.tar.gz # Build et redémarrage du conteneur directement sur le serveur - name: Build and deploy on PRODUCTION server @@ -40,6 +45,11 @@ jobs: ${{ secrets.PROD_USER }}@${{ secrets.PROD_HOST }} << 'ENDSSH' set -e + echo "=== [PROD] Extraction des sources ===" + mkdir -p /opt/webzine/prod/src + tar -xzf /tmp/webzine-src.tar.gz -C /opt/webzine/prod/src/ + rm /tmp/webzine-src.tar.gz + echo "=== [PROD] Construction de l'image ===" docker build \ -t webzine:latest \