diff --git a/.gitea/workflows/build-latex.yml b/.gitea/workflows/build-latex.yml new file mode 100644 index 0000000..9f645a1 --- /dev/null +++ b/.gitea/workflows/build-latex.yml @@ -0,0 +1,55 @@ +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" \ No newline at end of file diff --git a/.gitea/workflows/build-pdf.yml b/.gitea/workflows/build-pdf.yml index 4ca972c..cc01a4d 100644 --- a/.gitea/workflows/build-pdf.yml +++ b/.gitea/workflows/build-pdf.yml @@ -1,9 +1,9 @@ name: Build LaTeX PDF -on: - push: - paths: - - '**/*.tex' +# on: +# push: +# paths: +# - '**/*.tex' jobs: build: