Gate the doc release on main and cover SPHINCS in CI #9
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Documentation PDF | |
| on: | |
| push: | |
| branches: [ "main" ] | |
| paths: | |
| - 'doc/leanvm/**' | |
| - 'doc/xmss/**' | |
| - 'doc/sphincs/**' | |
| - 'doc/images/**' | |
| - '.github/workflows/doc.yml' | |
| pull_request: | |
| paths: | |
| - 'doc/leanvm/**' | |
| - 'doc/xmss/**' | |
| - 'doc/sphincs/**' | |
| - 'doc/images/**' | |
| - '.github/workflows/doc.yml' | |
| workflow_dispatch: | |
| concurrency: | |
| group: doc-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| check-pdf: | |
| if: github.event_name == 'pull_request' | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Compile LaTeX | |
| uses: xu-cheng/latex-action@v3 | |
| with: | |
| working_directory: doc/leanvm | |
| root_file: main.tex | |
| - name: Fail on an undefined reference or citation | |
| run: | | |
| ! grep -qE 'Reference .* undefined|Citation .* undefined|multiply defined' doc/leanvm/.build/main.log | |
| - name: Compile XMSS specification | |
| uses: xu-cheng/latex-action@v3 | |
| with: | |
| working_directory: doc/xmss | |
| root_file: main.tex | |
| - name: Fail on an undefined XMSS reference or citation | |
| run: | | |
| ! grep -qE 'Reference .* undefined|Citation .* undefined|multiply defined' doc/xmss/.build/main.log | |
| - name: Compile SPHINCS specification | |
| uses: xu-cheng/latex-action@v3 | |
| with: | |
| working_directory: doc/sphincs | |
| root_file: main.tex | |
| - name: Fail on an undefined SPHINCS reference or citation | |
| run: | | |
| ! grep -qE 'Reference .* undefined|Citation .* undefined|multiply defined' doc/sphincs/.build/main.log | |
| build-pdf: | |
| if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main' | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Compile LaTeX | |
| uses: xu-cheng/latex-action@v3 | |
| with: | |
| working_directory: doc/leanvm | |
| root_file: main.tex | |
| - name: Compile XMSS specification | |
| uses: xu-cheng/latex-action@v3 | |
| with: | |
| working_directory: doc/xmss | |
| root_file: main.tex | |
| - name: Compile SPHINCS specification | |
| uses: xu-cheng/latex-action@v3 | |
| with: | |
| working_directory: doc/sphincs | |
| root_file: main.tex | |
| - name: Name the artifacts | |
| run: | | |
| cp doc/leanvm/.build/main.pdf leanVM.pdf | |
| cp doc/xmss/.build/main.pdf XMSS.pdf | |
| cp doc/sphincs/.build/main.pdf SPHINCS.pdf | |
| - name: Publish PDFs as release assets | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: doc-latest | |
| name: leanVM documentation | |
| body: | | |
| Auto-built on every push to `main`. | |
| `leanVM.pdf` contains the leanVM specification. | |
| `XMSS.pdf` contains the XMSS specification. | |
| `SPHINCS.pdf` contains the SPHINCS specification. | |
| make_latest: false | |
| files: | | |
| leanVM.pdf | |
| XMSS.pdf | |
| SPHINCS.pdf |