4 Rilascio
Ci sono due possibilità per sincronizzare il repositorio con gli artifatti (html statico e pdf) visibili pubblicamente da web: automaticamente, attraverso una action Forgejo, oppure manualmente.
Nello spirito di massima semplicità, consigliamo la prima opzione.
4.1 Rilascio manuale
Il modo più semplice per rendere visibili gli artefatti su Codeberg Pages è pubblicare il contenuto della cartella _book in un branch di git chiamato pages, ed aggiungere un apposito webhook al repositorio che punti a questo branch.
4.1.1 Configurazione iniziale
Sulla pagina web del repositorio:
- vai su “Settings” (la piccola icona di una chiave inglese in alto a destra);
- selezione “Webhooks” nella barra verticale di navigazione a sinistra;
- premi il bottone “Add webhook” e selezione “Forgejo”;
- imposta lo url di destinazione come
https://${USER_NAME}.codeberg.page/${REPO_NAME}/(sostituisci il nome utente ed il nome del repositorio opportuni); - imposta il campo “Branch filter” a
pages - salva premendo il bottone “Add webhook”.
Tutto questo va fatto solo la prima volta.
4.1.2 Workflow di rilascio
Il modo più comodo per effettuare il rilascio è utilizzare il tool ghp-import. Questa piccola utility è pensata essenzialmente per copiare il contenuto di una cartella—in questo caso l’html statico ed il pdf in output da quarto—in un branch di git. Esattamente quello che ci serve.
Se non hai già ghp-import sulla tua macchina dovrai installarlo la prima volta. Come tutti i pacchetti Python, ghp-import si fa banalmente con pip:
python -m pip install ghp-importIl flusso di lavoro tipico per un rilascio manuale è
quarto render
ghp-import -o -f -p -b pages _bookovverosia:
- rigeneriamo completamente l’html statico ed il pdf in uscita;
- copiamo il contenuto sul branch
pagese facciamo il push dei cambiamenti sul repositorio remoto.
Per la precisione, il significato delle opzioni di ghp-import è più o meno
-o: forza un nuovo commit senza la history precedente;-f: forza il push al repositorio;-p: fai il push sul repositorio remoto dopo il commit;-b pages: specifica il nome del branch di destinazione.
ghp-import rigenera completamente ogni volta il branch di destinazione, sostituendo l’intero contenuto e riscrivendo la history. Per questo particolare caso d’uso è esattamente quello che vogliamo, ma ricordate che di non editare manualmente il branch pages, perché qualsiasi cambiamento andrà perduto al prossimo rilascio.
Tutti i dettagli nella documentazione di ghp-import.
Se questo sembra complicato, la buona notizia è che il Makefile nel repositorio template ha un target publish che fa esattamente questo, per cui il flusso tipico di rilascio potrebbe essere semplicemente
make publishIl nuovo contenuto dovrebbe apparire negli url opportuni, che sono quelli pre-compilato nel file README.md del repositorio.