From 5a7a37702fc2eba99438675f0121d1073cb024c2 Mon Sep 17 00:00:00 2001 From: mirage <119869686+ClementBobin@users.noreply.github.com> Date: Fri, 27 Mar 2026 09:18:20 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20mettre=20=C3=A0=20jour=20le=20flux=20de?= =?UTF-8?q?=20travail=20de=20d=C3=A9ploiement=20pour=20d=C3=A9clencher=20s?= =?UTF-8?q?ur=20la=20branche=20principale=20et=20am=C3=A9liorer=20le=20pro?= =?UTF-8?q?cessus=20de=20transfert=20de=20source?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/deploy.yml | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) 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 \