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 # Nota: Se nel progetto hai yarn.lock, usa 'yarn install' invece di 'npm ci' - name: Installazione Dipendenze run: npm ci # 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..." # 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!"