# Usa un'immagine Node.js per tutti i job image: node:lts-slim # Definisci le fasi della pipeline stages: - build - deploy # Memorizza nella cache node_modules per velocizzare le build successive cache: key: files: - yarn.lock paths: - node_modules/ # Job per installare le dipendenze e costruire il sito build_site: stage: build script: # Se usi npm, cambia i comandi in "npm install" e "npm run build" - yarn install - yarn build artifacts: paths: # Docusaurus crea il sito nella cartella "build" - build/ # Job per pubblicare il sito su GitLab Pages pages: stage: deploy # Questa riga è FONDAMENTALE: dice a GitLab di usare # SOLO i runner che hanno il tag "docusaurus". tags: - docusaurus script: # Pulisci la cartella public (potrebbe contenere vecchi file) - rm -rf public # Sposta i file costruiti dal job precedente nella cartella public - mv build public artifacts: paths: # Questo è il contenuto che GitLab Pages pubblicherà - public rules: # Esegui questo job solo sui commit nel branch principale - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH