name: Deploy Docusaurus on: push: branches: - main # Esegue il deploy solo quando pushi su main jobs: build-and-deploy: # ⚠️ FONDAMENTALE: Questa label deve combaciare con quella del tuo Runner runs-on: docker # Usiamo un container Node per costruire il sito (come facevi su GitLab) container: image: node:20-bookworm steps: - name: Checkout del codice uses: actions/checkout@v4 # Installa le dipendenze # Cambiato da 'npm ci' a 'npm install' per gestire automaticamente # eventuali disallineamenti tra package.json e package-lock.json - name: Installazione Dipendenze run: npm install # Costruisce il sito (crea la cartella 'build') - name: Build Docusaurus run: npm run build # FASE DI DEPLOY (Sostituisce la parte 'pages' di GitLab) # Invece di usare gli artifacts di GitLab, copiamo i file fisicamente sul server - name: Pubblica sul Server run: | # Questa cartella /deploy/docs è il volume condiviso che abbiamo creato nel docker-compose TARGET_DIR="/deploy/docs" echo "Inizio deploy su $TARGET_DIR..." # Crea la cartella se non esiste mkdir -p $TARGET_DIR # Pulisce la cartella di destinazione (rimuove il vecchio sito) rm -rf $TARGET_DIR/* # Copia il nuovo sito appena compilato # (Docusaurus mette tutto in 'build', noi lo spostiamo nella cartella pubblica) cp -r build/* $TARGET_DIR/ echo "Deploy completato con successo!"