Files
SharedLaTeX/.gitea/workflows/build-xelatex.yml
T
Domipoke 4ae64e168f
Build LaTeX PDF / build (push) Failing after 1m19s
jp font
2026-07-27 17:47:50 +02:00

60 lines
2.4 KiB
YAML

name: Build LaTeX PDF
on:
push:
paths:
- "**/*.tex"
jobs:
build:
runs-on: ubuntu-latest
env:
GIT_SSL_NO_VERIFY: "true"
NODE_EXTRA_CA_CERTS: /usr/local/share/ca-certificates/Egregge.crt
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Find all root .tex files
id: roots
run: |
ROOTS=$(grep -rl '\\documentclass' --include='*.tex' . | sed 's|^\./||' | tr '\n' ' ')
echo "roots=$ROOTS" >> "$GITHUB_OUTPUT"
echo "Root files to build: $ROOTS"
- name: Compile all root files
if: steps.roots.outputs.roots != ''
uses: docker://texlive/texlive:latest-full
# 2. Tell the container to use the cached workspace folders
env:
TEXMFVAR: ${{ github.workspace }}/.texcache/texmf-var
XDG_CACHE_HOME: ${{ github.workspace }}/.texcache/xdg
with:
entrypoint: sh
args: >-
-c "mkdir -p pdf aux .texcache/texmf-var .texcache/xdg && for f in ${{ steps.roots.outputs.roots }}; do
echo Building $f;
latexmk -xelatex -interaction=nonstopmode -halt-on-error -outdir=pdf -auxdir=aux \"$f\" || exit 1;
done && find pdf -type f ! -name '*.pdf' -delete"
- name: Upload built PDFs
if: steps.roots.outputs.roots != ''
uses: actions/upload-artifact@v3
with:
name: pdf-output
path: pdf/*.pdf
- name: Commit PDFs back to repo
if: steps.roots.outputs.roots != ''
run: |
git config user.name "gitea-actions"
git config user.email "actions@gitea.local"
git remote set-url origin "https://Domipoke:${{ secrets.GITEA_PUSH_TOKEN }}@gitea.egregge.eg/Domipoke/SharedLaTeX.git"
BRANCH="${GITHUB_REF#refs/heads/}"
echo "Pushing to branch: $BRANCH"
# Ignore the .texcache folder so it doesn't get committed
git add pdf/*.pdf
git diff --cached --quiet || git commit -m "CI: rebuild all PDFs [skip ci]"
git push origin HEAD:refs/heads/"$BRANCH"