64 lines
1.5 KiB
YAML
64 lines
1.5 KiB
YAML
|
|
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
|