name: Build LaTeX Assignment on: push: branches: - main workflow_dispatch: jobs: build: name: Compile and publish PDF runs-on: latex-docker steps: - name: Check out source uses: builtin:checkout - name: Install Node.js in the job container run: | set -eu apt-get update apt-get install -y --no-install-recommends nodejs node --version rm -rf /var/lib/apt/lists/* - name: Generate build metadata run: | set -eu printf '\\renewcommand{\\BuildCommit}{%s}\n\\renewcommand{\\BuildRun}{%s}\n' \ "$(git rev-parse --short HEAD)" \ "${GITEA_RUN_ID:-${GITHUB_RUN_ID:-manual}}" \ > build-metadata.tex cat build-metadata.tex - name: Verify LaTeX tools run: | set -eu command -v latexmk command -v pdflatex command -v pygmentize latexmk -v pygmentize -V - name: Compile assignment run: | set -eu latexmk -pdf \ -shell-escape \ -interaction=nonstopmode \ -halt-on-error \ devopsAssignment.tex test -s devopsAssignment.pdf ls -lh devopsAssignment.pdf - name: Upload PDF artifact uses: actions/upload-artifact@v4 with: name: devopsAssignment-PDF path: devopsAssignment.pdf if-no-files-found: error retention-days: 14