name: LaTeX Diff on: workflow_dispatch: inputs: base_branch: description: 'Base branch (older version)' required: true default: 'main' compare_branch: description: 'Compare branch (new version)' required: true default: 'dev' jobs: latexdiff: runs-on: ubuntu-latest container: image: ghcr.io/xu-cheng/texlive-full:latest options: --user root # allow package install if needed steps: - name: Checkout base branch uses: actions/checkout@v4 with: ref: ${{ github.event.inputs.base_branch }} path: base - name: Checkout compare branch uses: actions/checkout@v4 with: ref: ${{ github.event.inputs.compare_branch }} path: compare - name: Install flatex (Python flattener) run: | apk add --no-cache py3-pip # if Alpine base pip install flatex - name: Create output folder run: mkdir -p diff_output - name: Flatten base branch run: | flatex base/latex/main.tex > diff_output/base_flat.tex - name: Flatten compare branch run: | flatex compare/latex/main.tex > diff_output/compare_flat.tex - name: Generate diff.tex using latexdiff run: | latexdiff diff_output/base_flat.tex diff_output/compare_flat.tex > diff_output/diff.tex - name: Compile diff.tex to PDF working-directory: diff_output run: | xelatex -interaction=nonstopmode diff.tex xelatex -interaction=nonstopmode diff.tex - name: Upload diff output files uses: actions/upload-artifact@v4 with: name: latex-diff-output path: diff_output/