diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 06193cc..5c52537 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -4,9 +4,6 @@ run-name: Deploy to production by @${{ github.actor }} on: [push] jobs: - # ───────────────────────────────────────────── - # DÉPLOIEMENT — Build et démarrage sur le serveur - # ───────────────────────────────────────────── deploy-production: name: Deploy to Production runs-on: ubuntu-latest @@ -15,25 +12,63 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - # Écriture de la clé SSH - name: Setup SSH key + env: + PROD_SSH_KEY: ${{ secrets.PROD_SSH_KEY }} run: | mkdir -p ~/.ssh - printf '%s\n' "${{ secrets.PROD_SSH_KEY }}" > ~/.ssh/id_prod + echo "$PROD_SSH_KEY" > ~/.ssh/id_prod chmod 600 ~/.ssh/id_prod - ssh-keyscan -p ${{ secrets.PROD_SSH_PORT || 22 }} ${{ secrets.PROD_HOST }} >> ~/.ssh/known_hosts 2>/dev/null - # Compression du code source et transfert vers le serveur + echo "=== [DEBUG] Premiers caractères de la clé ===" + head -1 ~/.ssh/id_prod + tail -1 ~/.ssh/id_prod + + echo "=== [DEBUG] Nombre de lignes ===" + wc -l ~/.ssh/id_prod + + echo "=== [DEBUG] Vérification des caractères spéciaux ===" + cat -A ~/.ssh/id_prod | head -3 + cat -A ~/.ssh/id_prod | tail -3 + + echo "=== [DEBUG] Validation de la clé avec ssh-keygen ===" + ssh-keygen -y -f ~/.ssh/id_prod > /dev/null && echo "Clé valide ✅" || echo "Clé invalide ❌" + + echo "=== [DEBUG] ssh-keyscan sur le serveur ===" + ssh-keyscan -v -p ${{ secrets.PROD_SSH_PORT || 22 }} ${{ secrets.PROD_HOST }} >> ~/.ssh/known_hosts 2>&1 + echo "Exit code ssh-keyscan: $?" + + echo "=== [DEBUG] Contenu known_hosts ===" + cat ~/.ssh/known_hosts + + - name: Test SSH connection + run: | + echo "=== [DEBUG] Test de connexion SSH ===" + ssh -v \ + -i ~/.ssh/id_prod \ + -p ${{ secrets.PROD_SSH_PORT || 22 }} \ + -o StrictHostKeyChecking=no \ + -o ConnectTimeout=10 \ + ${{ secrets.PROD_USER }}@${{ secrets.PROD_HOST }} \ + "echo 'Connexion SSH OK ✅ — user: $(whoami), host: $(hostname)'" 2>&1 + echo "Exit code SSH: $?" + - name: Upload source to server run: | + echo "=== [DEBUG] Création de l'archive ===" tar --exclude='.git' --exclude='*.user' -czf /tmp/webzine-src.tar.gz . - scp -i ~/.ssh/id_prod \ + echo "Taille archive: $(du -sh /tmp/webzine-src.tar.gz | cut -f1)" + + echo "=== [DEBUG] Transfert SCP ===" + scp -v \ + -i ~/.ssh/id_prod \ -P ${{ secrets.PROD_SSH_PORT || 22 }} \ -o StrictHostKeyChecking=no \ + -o ConnectTimeout=10 \ /tmp/webzine-src.tar.gz \ - ${{ secrets.PROD_USER }}@${{ secrets.PROD_HOST }}:/tmp/webzine-src.tar.gz + ${{ secrets.PROD_USER }}@${{ secrets.PROD_HOST }}:/tmp/webzine-src.tar.gz 2>&1 + echo "Exit code SCP: $?" - # Build et redémarrage du conteneur directement sur le serveur - name: Build and deploy on PRODUCTION server run: | ssh -i ~/.ssh/id_prod \