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 with: entrypoint: sh args: >- -c "mkdir -p pdf aux && for f in ${{ steps.roots.outputs.roots }}; do echo Building $f; latexmk -pdf -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" git add pdf/*.pdf git diff --cached --quiet || git commit -m "CI: rebuild all PDFs [skip ci]" git push origin HEAD:refs/heads/"$BRANCH"