\section{Por qué usar CI/CD con LaTeX}
Publique documentos con confianza
Trate su código fuente LaTeX como software. Las compilaciones automáticas detectan paquetes rotos, archivos que faltan y errores de compilación antes de que lleguen a sus lectores.
Nunca publique PDF defectuosos
Detecte errores de compilación antes de la fusión. Las comprobaciones de las solicitudes de incorporación de cambios fallan si el documento no compila.
Distribución automatizada
Los artefactos PDF se adjuntan a cada ejecución del flujo de trabajo. Comparta un enlace directo al último documento compilado.
Sin necesidad de TeX Live local
Los miembros del equipo contribuyen al código fuente LaTeX sin instalar TeX Live. La API gestiona la compilación en la nube.
\section{Prerequisites}
Antes de empezar
- Una cuenta de FormaTeX; el plan gratuito sirve (15 compilaciones al mes)
- Una clave de API de FormaTeX de su panel
- Un repositorio de GitHub que contenga archivos .tex
\section{Guía paso a paso}
Configuración en cuatro pasos
Añada el secreto a GitHub
Guarde su clave de API como secreto del repositorio para que nunca quede expuesta en el YAML de su flujo de trabajo. Vaya a Repository → Settings → Secrets and variables → Actions → New secret y asígnele el nombre 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"}'Cree el archivo del flujo de trabajo
Cree .github/workflows/latex.yml en su repositorio. Este flujo de trabajo mínimo compila main.tex y sube el PDF resultante como artefacto.
# .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.pdfHaga push y observe la compilación
Haga commit y push del archivo del flujo de trabajo. GitHub Actions se activará automáticamente en su próximo push a main. Vaya a la pestaña Actions de su repositorio para ver la ejecución del flujo de trabajo. Cuando termine, el PDF compilado aparecerá en Artifacts.
\section{Configuración completa del flujo de trabajo}
Compilación en matriz con gestión de errores
Escale a varios documentos con una estrategia de matriz. Este flujo de trabajo compila tesis, presentación y apéndice en paralelo, captura los errores HTTP de forma explícita y conserva los PDF durante 30 días.
# .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}
Problemas comunes y soluciones
Clave de API no configurada
Asegúrese de que FORMATEX_API_KEY esté añadida como secreto del repositorio, no como variable. Los secretos están cifrados; las variables no. Vaya a Settings → Secrets and variables → Actions → Secrets (no Variables).
Archivos .tex grandes
Para archivos de más de 10 MB, use el endpoint de compilación asíncrona (/api/v1/compile/async). El endpoint asíncrono devuelve un ID de trabajo que puede consultar para obtener el resultado.
Paquetes que faltan
El entorno aislado de FormaTeX incluye TeX Live 2023 completo: la mayoría de los paquetes de CTAN están disponibles de fábrica. Si falta algún paquete, contacte con soporte y lo añadiremos.
\section{Integraciones relacionadas}
Use FormaTeX desde cualquier entorno
FormaTeX es una API HTTP sencilla. Ejemplos para copiar y pegar en todos los lenguajes y plataformas principales.

