docs/.github/workflows/deploy.yml

46 lines
1.5 KiB
YAML

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!"