name: Build Proposal and Thesis on: push: branches: [main] pull_request: branches: [main] jobs: build: runs-on: ubuntu-latest container: ghcr.io/xu-cheng/texlive-alpine:latest steps: - name: Install system dependencies run: apk add --no-cache git make bash - uses: actions/checkout@v4 - name: Cache TeX Live uses: actions/cache@v4 with: path: | /tmp/texlive ~/.texlive* key: texlive-${{ runner.os }}-${{ hashFiles('**/*.tex') }} restore-keys: | texlive-${{ runner.os }}- - name: Create TeX Live directory run: mkdir -p /tmp/texlive - name: Build Thesis run: | make -C thesis - name: Build Proposal working-directory: proposal run: | mkdir -p build mkdir -p output pdflatex -output-directory=build -interaction=nonstopmode proposal.tex # Run bibtex if aux file exists if [ -f build/proposal.aux ]; then bibtex build/proposal || true fi pdflatex -output-directory=build -interaction=nonstopmode proposal.tex pdflatex -output-directory=build -interaction=nonstopmode proposal.tex cp build/proposal.pdf output/proposal.pdf - name: Upload Thesis PDF uses: actions/upload-artifact@v4 with: name: thesis-pdf path: thesis/out/thesis.pdf - name: Upload Proposal PDF uses: actions/upload-artifact@v4 with: name: proposal-pdf path: proposal/output/proposal.pdf