46 lines
1.5 KiB
YAML
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!" |