name: Deploy Docusaurus on: push: branches: - main jobs: build-and-deploy: runs-on: docker container: image: node:20-bookworm volumes: - /opt/forgejo/sites/docs:/deploy/docs steps: - name: Checkout del codice uses: actions/checkout@v4 - name: Cache Node Modules uses: actions/cache@v4 with: path: node_modules key: npm-${{ hashFiles('package-lock.json') }} restore-keys: | npm- - name: Installazione Dipendenze run: | if [ -d "node_modules" ]; then echo "๐Ÿ“ฆ Cache hit - dipendenze giร  presenti" else echo "๐Ÿ“ฅ Cache miss - scarico dipendenze..." fi npm ci --prefer-offline - name: Build Docusaurus run: | export NODE_OPTIONS="--max-old-space-size=4096" echo "๐Ÿ”จ Avvio build..." npm run build echo "โœ… Build completato!" echo "๐Ÿ“Š Files generati: $(find build -type f | wc -l)" - name: Pubblica sul Server run: | TARGET_DIR="/deploy/docs" echo "๐Ÿš€ Inizio deploy su $TARGET_DIR..." # Verifica esistenza directory if [ ! -d "$TARGET_DIR" ]; then echo "โŒ ERRORE: $TARGET_DIR non esiste!" exit 1 fi # Pulisce la cartella di destinazione echo "๐Ÿงน Pulizia directory..." rm -rf $TARGET_DIR/* # Copia i nuovi file echo "๐Ÿ“‹ Copia files..." cp -r build/* $TARGET_DIR/ # Permessi per Nginx (UID 101) echo "๐Ÿ” Imposto permessi..." chown -R 101:101 $TARGET_DIR chmod -R 755 $TARGET_DIR echo "โœ… Deploy completato!" - name: Notifica Deploy if: success() run: | echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" echo "โœ… Sito deployato con successo!" echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" echo "๐ŸŒ URL: http://192.168.1.245:8080" echo "๐Ÿ“ฆ Commit: ${{ github.sha }}" echo "๐Ÿ‘ค Author: ${{ github.actor }}" echo "๐Ÿ“… Data: $(date '+%Y-%m-%d %H:%M:%S')" echo "๐Ÿ”– Branch: ${{ github.ref_name }}" echo "๐Ÿ“Š Files totali: $(find /deploy/docs -type f | wc -l)" echo "๐Ÿ’พ Dimensione: $(du -sh /deploy/docs | cut -f1)" echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" - name: Notifica Errore if: failure() run: | echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" echo "โŒ Deploy FALLITO!" echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”" echo "๐Ÿ“ฆ Commit: ${{ github.sha }}" echo "๐Ÿ‘ค Author: ${{ github.actor }}" echo "๐Ÿ“… Data: $(date '+%Y-%m-%d %H:%M:%S')" echo "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"