Mark 43c0719c63
All checks were successful
Lints / typos (push) Successful in 18s
Build and deploy / build (push) Successful in 13m29s
act
2025-01-21 18:35:14 -08:00

58 lines
1.7 KiB
YAML

on:
push:
pull_request:
workflow_run:
name: Build and deploy
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
# Could instead install `texlive-full`, but that takes ~20 minutes.
# We'll specify the packages we need manually.
- name: "Install TeXLive"
run: |
sudo apt update
DEBIAN_FRONTEND=noninteractive \
sudo apt install --yes \
texlive texlive-xetex \
texlive-games texlive-fonts-extra texlive-latex-extra \
texlive-pictures texlive-pstricks
# Typst isn't packaged, and manual download gives us
# more control anyway.
- name: "Download Typst"
run: |
wget -q "https://github.com/typst/typst/releases/download/v0.12.0/typst-x86_64-unknown-linux-musl.tar.xz"
tar -xf "typst-x86_64-unknown-linux-musl.tar.xz"
mv "typst-x86_64-unknown-linux-musl/typst" .
rm "typst-x86_64-unknown-linux-musl.tar.xz"
rm -dr "typst-x86_64-unknown-linux-musl"
# Builds all handouts, LaTeX and Typst
- name: "Build handouts"
run: TYPST_PATH="$(pwd)/typst" python tools/build/main.py
# Upload logs, even if build fails.
# LaTeX stdout/stderr isn't always helpful.
- name: "Save LaTeX logs"
uses: actions/upload-artifact@v3
if: always()
with:
name: "LaTeX logs"
path: "**/*.log"
retention-days: 1
# Upload build output
- name: "Save output"
uses: actions/upload-artifact@v3
with:
name: "Build output"
path: "output/*"
retention-days: 10