Skip to content

Merge branch 'main' of https://github.com/zeramorphic/cambridge-maths… #629

Merge branch 'main' of https://github.com/zeramorphic/cambridge-maths…

Merge branch 'main' of https://github.com/zeramorphic/cambridge-maths… #629

Workflow file for this run

name: Compile LaTeX
on:
# Trigger the workflow on push, but only for the main branch
push:
branches:
- main
jobs:
compile-latex:
name: Compile LaTeX
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Go 1.16
uses: actions/setup-go@v2
with:
go-version: "1.16.x"
# - name: Set up GhostScript optimiser
# run: sudo apt-get update && sudo apt-get install ghostscript
- name: Get Go dependencies
run: go get ./...
- name: Download pdf2htmlEX
run: |
wget -O pdf2htmlEX.AppImage https://github.com/pdf2htmlEX/pdf2htmlEX/releases/download/v0.18.8.rc1/pdf2htmlEX-0.18.8.rc1-master-20200630-Ubuntu-bionic-x86_64.AppImage
chmod +x pdf2htmlEX.AppImage
- name: Install FUSE for AppImage
run: |
sudo add-apt-repository universe
sudo apt install libfuse2
- name: Set up TikZ folders
run: go run . setup
# Files are separated into different build steps
# so we can track the time taken to compile each step.
- name: Compile Numbers and Sets
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ia/ns/main.tex
- name: Compile Differential Equations
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ia/de/main.tex
- name: Compile Groups
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ia/groups/main.tex
- name: Compile Vectors and Matrices
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ia/vm/main.tex
- name: Compile Dynamics and Relativity
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ia/dr/main.tex
- name: Compile Probability
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ia/probability/main.tex
- name: Compile Vector Calculus
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ia/vc/main.tex
- name: Compile Analysis I
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ia/analysis/main.tex
- name: Compile Optimisation
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ib/opt/main.tex
- name: Compile Variational Principles
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ib/vp/main.tex
- name: Compile Markov Chains
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ib/markov/main.tex
- name: Compile Analysis and Topology
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ib/antop/main.tex
- name: Compile Methods
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ib/methods/main.tex
- name: Compile Quantum Mechanics
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ib/quantum/main.tex
- name: Compile Linear Algebra
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ib/linalg/main.tex
- name: Compile Groups, Rings and Modules
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ib/grm/main.tex
- name: Compile Complex Analysis
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ib/ca/main.tex
- name: Compile Geometry
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ib/geom/main.tex
- name: Compile Statistics
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ib/stats/main.tex
- name: Compile Algebraic Topology
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ii/algtop/main.tex
- name: Compile Probability and Measure
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ii/pm/main.tex
- name: Compile Graph Theory
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ii/graph/main.tex
- name: Compile Automata and Formal Languages
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ii/afl/main.tex
- name: Compile Galois Theory
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ii/galois/main.tex
- name: Compile Coding and Cryptography
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ii/cc/main.tex
- name: Compile Quantum Information and Computation
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ii/qic/main.tex
- name: Compile Logic and Set Theory
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ii/lst/main.tex
- name: Compile Algebraic Geometry (Part II)
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ii/alggeom/main.tex
- name: Compile Number Fields
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ii/nf/main.tex
- name: Compile Category Theory
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: iii/cat/main.tex
- name: Compile Commutative Algebra
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: iii/commalg/main.tex
- name: Compile Algebraic Geometry (Part III)
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: iii/alggeom/main.tex
- name: Compile Model Theory and Non-Classical Logic
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: iii/mtncl/main.tex
- name: Compile IA book
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ia/book/main.tex
- name: Compile IB book
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ib/book/main.tex
- name: Compile II book
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: ii/book/main.tex
- name: Compile III book
uses: xu-cheng/latex-action@v2
with:
args: -shell-escape -xelatex -file-line-error -halt-on-error -interaction=nonstopmode -cd -output-directory=build
root_file: iii/book/main.tex
- name: Convert Numbers and Sets to HTML
run: ./pdf2htmlEX.AppImage ia/ns/build/main.pdf ia_ns.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Differential Equations to HTML
run: ./pdf2htmlEX.AppImage ia/de/build/main.pdf ia_de.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Groups to HTML
run: ./pdf2htmlEX.AppImage ia/groups/build/main.pdf ia_groups.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Vectors and Matrices to HTML
run: ./pdf2htmlEX.AppImage ia/vm/build/main.pdf ia_vm.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Dynamics and Relativity to HTML
run: ./pdf2htmlEX.AppImage ia/dr/build/main.pdf ia_dr.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Probability to HTML
run: ./pdf2htmlEX.AppImage ia/probability/build/main.pdf ia_probability.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Vector Calculus to HTML
run: ./pdf2htmlEX.AppImage ia/vc/build/main.pdf ia_vc.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Analysis I to HTML
run: ./pdf2htmlEX.AppImage ia/analysis/build/main.pdf ia_analysis.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Optimisation to HTML
run: ./pdf2htmlEX.AppImage ib/opt/build/main.pdf ib_opt.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Variational Principles to HTML
run: ./pdf2htmlEX.AppImage ib/vp/build/main.pdf ib_vp.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Markov Chains to HTML
run: ./pdf2htmlEX.AppImage ib/markov/build/main.pdf ib_markov.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Analysis and Topology to HTML
run: ./pdf2htmlEX.AppImage ib/antop/build/main.pdf ib_antop.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Methods to HTML
run: ./pdf2htmlEX.AppImage ib/methods/build/main.pdf ib_methods.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Quantum Mechanics to HTML
run: ./pdf2htmlEX.AppImage ib/quantum/build/main.pdf ib_quantum.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Linear Algebra to HTML
run: ./pdf2htmlEX.AppImage ib/linalg/build/main.pdf ib_linalg.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Groups, Rings and Modules to HTML
run: ./pdf2htmlEX.AppImage ib/grm/build/main.pdf ib_grm.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Complex Analysis to HTML
run: ./pdf2htmlEX.AppImage ib/ca/build/main.pdf ib_ca.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Geometry to HTML
run: ./pdf2htmlEX.AppImage ib/geom/build/main.pdf ib_geom.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Statistics to HTML
run: ./pdf2htmlEX.AppImage ib/stats/build/main.pdf ib_stats.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Algebraic Topology to HTML
run: ./pdf2htmlEX.AppImage ii/algtop/build/main.pdf ii_algtop.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Probability and Measure to HTML
run: ./pdf2htmlEX.AppImage ii/pm/build/main.pdf ii_pm.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Graph Theory to HTML
run: ./pdf2htmlEX.AppImage ii/graph/build/main.pdf ii_graph.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Automata and Formal Languages to HTML
run: ./pdf2htmlEX.AppImage ii/afl/build/main.pdf ii_afl.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Galois Theory to HTML
run: ./pdf2htmlEX.AppImage ii/galois/build/main.pdf ii_galois.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Coding and Cryptography to HTML
run: ./pdf2htmlEX.AppImage ii/cc/build/main.pdf ii_cc.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Quantum Information and Computation to HTML
run: ./pdf2htmlEX.AppImage ii/qic/build/main.pdf ii_qic.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Logic and Set Theory to HTML
run: ./pdf2htmlEX.AppImage ii/lst/build/main.pdf ii_lst.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Algebraic Geometry (Part II) to HTML
run: ./pdf2htmlEX.AppImage ii/alggeom/build/main.pdf ii_alggeom.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Number Fields to HTML
run: ./pdf2htmlEX.AppImage ii/nf/build/main.pdf ii_nf.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Category Theory to HTML
run: ./pdf2htmlEX.AppImage iii/cat/build/main.pdf iii_cat.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Commutative Algebra to HTML
run: ./pdf2htmlEX.AppImage iii/commalg/build/main.pdf iii_commalg.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Algebraic Geometry (Part III) to HTML
run: ./pdf2htmlEX.AppImage iii/alggeom/build/main.pdf iii_alggeom.html --data-dir pdf2htmlEX --zoom 3
- name: Convert Model Theory and Non-Classical Logic to HTML
run: ./pdf2htmlEX.AppImage iii/mtncl/build/main.pdf iii_mtncl.html --data-dir pdf2htmlEX --zoom 3
- name: Convert IA book to HTML
run: ./pdf2htmlEX.AppImage ia/book/build/main.pdf ia_book.html --data-dir pdf2htmlEX --zoom 3
- name: Convert IB book to HTML
run: ./pdf2htmlEX.AppImage ib/book/build/main.pdf ib_book.html --data-dir pdf2htmlEX --zoom 3
- name: Convert II book to HTML
run: ./pdf2htmlEX.AppImage ii/book/build/main.pdf ii_book.html --data-dir pdf2htmlEX --zoom 3
- name: Convert III book to HTML
run: ./pdf2htmlEX.AppImage iii/book/build/main.pdf iii_book.html --data-dir pdf2htmlEX --zoom 3
#- name: Optimise PDFs
# run: go run . optimise
- name: Upload PDFs
uses: burnett01/[email protected]
with:
switches: -avzr --delete --prune-empty-dirs --include="*/" --include="*.pdf" --include="*.html" --exclude="*"
path: "."
remote_path: ${{ secrets.DEPLOY_PATH }}
remote_host: thirdsgames.co.uk
remote_user: github
remote_key: ${{ secrets.DEPLOY_KEY }}