1+ name : Compilazione Documenti e Rilascio Automatico
2+
3+ on :
4+ push :
5+
6+ jobs :
7+ compila_e_rilascia :
8+ # Usiamo il container Docker basato su Debian/TeX Live
9+ container :
10+ image : ghcr.io/xu-cheng/texlive-debian:latest
11+
12+ runs-on : ubuntu-latest
13+
14+ env :
15+ # Token fittizio per 'act', reale su GitHub
16+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
17+
18+ steps :
19+ # STEP: Configurazione Ambiente (Installazione di tutti i tool necessari)
20+ - name : ⚙️ Configura Ambiente (tar, font cache, Node.js)
21+ run : |
22+ # 1. Aggiorna e installa dipendenze: tar (per Typst), fonts-texgyre (font TeX), nodejs/npm (per Release Action)
23+ apt-get update -y
24+ apt-get install -y fonts-texgyre nodejs npm
25+
26+ # STEP: Scarica il repository
27+ - name : Scarica il repository
28+ uses : actions/checkout@v4
29+ with :
30+ fetch-depth : 0
31+ token : ${{ secrets.GITHUB_TOKEN }}
32+
33+ # STEP: Compila tutti i file .tex (solo nella cartella notes)
34+ - name : Compila Documenti LaTeX (.tex)
35+ run : |
36+ mkdir -p assets/pdf
37+
38+ find notes -type f -name "*.tex" | while read file; do
39+ echo "Compilazione di $file con LuaLaTeX..."
40+ filename=$(basename "$file")
41+ output_name="${filename%.tex}.pdf"
42+
43+ lualatex -interaction=nonstopmode -output-directory=assets/pdf "$file" || { echo "Errore nella prima compilazione di $file."; continue; }
44+ lualatex -interaction=nonstopmode -output-directory=assets/pdf "$file" || { echo "Errore nella seconda compilazione di $file."; continue; }
45+
46+ echo "PDF salvato in assets/pdf/$output_name"
47+ done
48+
49+ # STEP: Upload PDF nella Release GitHub
50+ - name : Upload PDF come Asset di Release
51+ uses : softprops/action-gh-release@v1
52+ with :
53+ files : assets/pdf/*.pdf
54+ env :
55+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments