# Déploiement production — johanleroy.fr # Push sur `main` → contrôle de types → build statique Astro → mirror FTP vers Plesk. # Secrets requis dans Gitea (Settings → Actions → Secrets) : # FTP_HOST, FTP_USER, FTP_PASSWORD, FTP_TARGET_DIR (chemin docroot, ex. /httpdocs/johanleroy/public) name: Deploy production on: push: branches: - main jobs: build-deploy: runs-on: ubuntu-latest container: node:22-bullseye steps: - name: Checkout uses: actions/checkout@v4 - name: Install dependencies run: npm install --no-audit --no-fund - name: Type check run: npm run check - name: Build static site run: npm run build - name: Verify build output run: ls -la dist - name: Deploy via FTPS (Plesk) run: | apt-get update && apt-get install -y lftp # FTPS forcé (jamais de fallback en clair) + vérification du certificat (CA système). # Si le déploiement échoue sur une erreur de certificat, c'est que le cert FTP ne # correspond pas à FTP_HOST → préférer SFTP (clé SSH) plutôt que de désactiver la vérif. lftp -e " set ftp:ssl-force true; set ftp:ssl-protect-data true; set ssl:verify-certificate yes; open ${{ secrets.FTP_HOST }}; user ${{ secrets.FTP_USER }} ${{ secrets.FTP_PASSWORD }}; mirror --reverse --delete --verbose dist/ ${{ secrets.FTP_TARGET_DIR }}; bye "