\section{Pourquoi le CI/CD pour LaTeX}
Livrez vos documents en toute confiance
Traitez vos sources LaTeX comme du logiciel. Les builds automatisés détectent les paquets défectueux, les fichiers manquants et les erreurs de compilation avant qu'ils n'atteignent vos lecteurs.
Ne livrez jamais de PDF défectueux
Détectez les erreurs de compilation avant la fusion. Les vérifications des pull requests échouent si le document ne compile pas.
Distribution automatisée
Les artefacts PDF sont joints à chaque exécution du workflow. Partagez un lien direct vers le dernier document compilé.
Aucun TeX Live local requis
Les membres de l'équipe contribuent aux sources LaTeX sans installer TeX Live. L'API gère la compilation dans le cloud.
\section{Prerequisites}
Avant de commencer
- Compte FormaTeX : l'offre gratuite suffit (15 compilations/mois)
- Une clé API FormaTeX depuis votre tableau de bord
- Un dépôt GitHub contenant des fichiers .tex
\section{Guide pas à pas}
Configuration en quatre étapes
Ajouter le secret à GitHub
Stockez votre clé API comme secret de dépôt pour qu'elle ne soit jamais exposée dans le YAML de votre workflow. Rendez-vous dans Repository → Settings → Secrets and variables → Actions → New secret et nommez-le FORMATEX_API_KEY.
# Add your FormaTeX API key as a GitHub Actions secret
# Go to: Repository → Settings → Secrets and variables → Actions → New secret
# Name: FORMATEX_API_KEY
# Value: your API key from formatex.io/dashboard/api-keys
# Test locally before committing:
export FORMATEX_API_KEY="your-key-here"
curl -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"latex": "\\documentclass{article}\\begin{document}Hello\\end{document}", "engine": "pdflatex"}'Créer le fichier de workflow
Créez .github/workflows/latex.yml dans votre dépôt. Ce workflow minimal compile main.tex et téléverse le PDF obtenu comme artefact.
# .github/workflows/latex.yml
name: Compile LaTeX
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
compile:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Compile LaTeX to PDF
env:
FORMATEX_API_KEY: ${{ secrets.FORMATEX_API_KEY }}
run: |
jq -n --rawfile latex main.tex '{engine: "xelatex", latex: $latex}' \
| curl --fail-with-body -sS -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d @- -o output.pdf
- name: Upload PDF artifact
uses: actions/upload-artifact@v4
with:
name: compiled-pdf
path: output.pdfPousser et regarder le build
Validez et poussez le fichier de workflow. GitHub Actions se déclenchera automatiquement à votre prochain push sur main. Ouvrez l'onglet Actions de votre dépôt pour voir le workflow s'exécuter. Une fois terminé, le PDF compilé apparaît sous Artifacts.
\section{Configuration complète du workflow}
Build en matrice avec gestion des erreurs
Passez à l'échelle sur plusieurs documents avec une stratégie en matrice. Ce workflow compile la thèse, la présentation et l'annexe en parallèle, capture explicitement les erreurs HTTP et conserve les PDF pendant 30 jours.
# .github/workflows/latex-full.yml
name: LaTeX Build Pipeline
on:
push:
paths: ['**.tex', '**.bib']
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
document: [thesis, presentation, appendix]
steps:
- uses: actions/checkout@v4
- name: Compile ${{ matrix.document }}
env:
FORMATEX_API_KEY: ${{ secrets.FORMATEX_API_KEY }}
DOC: ${{ matrix.document }}
run: |
jq -n --rawfile latex "$DOC.tex" '{engine: "xelatex", latex: $latex}' \
| curl --fail-with-body -sS -X POST https://api.formatex.io/api/v1/compile \
-H "X-API-Key: $FORMATEX_API_KEY" \
-H "Content-Type: application/json" \
-d @- -o "$DOC.pdf"
- name: Upload PDFs
uses: actions/upload-artifact@v4
with:
name: pdfs-${{ matrix.document }}
path: ${{ matrix.document }}.pdf
retention-days: 30\section{Troubleshooting}
Problèmes courants et solutions
Clé API non définie
Vérifiez que FORMATEX_API_KEY est ajouté comme secret de dépôt, et non comme variable. Les secrets sont chiffrés, pas les variables. Allez dans Settings → Secrets and variables → Actions → Secrets (pas Variables).
Gros fichiers .tex
Pour les fichiers de plus de 10 Mo, utilisez le point de terminaison de compilation asynchrone (/api/v1/compile/async). Il renvoie un identifiant de tâche que vous pouvez interroger pour obtenir le résultat.
Paquets manquants
L'environnement isolé de FormaTeX inclut TeX Live 2023 complet : la plupart des paquets CTAN sont disponibles d'emblée. Si un paquet manque, contactez le support et nous l'ajouterons.
\section{Intégrations associées}
Utilisez FormaTeX depuis n'importe quel environnement
FormaTeX est une simple API HTTP. Des exemples à copier-coller pour chaque grand langage et chaque grande plateforme.

