Save every run beside its zip #47
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
| # The merge gate. Every push to main and every pull request runs the tests and | |
| # then replays the committed target, ci-corpus/targets/sheet, against the set | |
| # in2lambda's own writer wrote from it: the sheet's saved filter and reply are | |
| # read back, so the job makes no model call and needs no credentials. The job | |
| # is CI's report on a branch and nothing merges on it: the workbench merges | |
| # with `gh pr merge` as soon as its own check passes, and that check replays | |
| # the private targets, which a runner cannot read, on the machine holding them. | |
| name: gate | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| jobs: | |
| gate: | |
| name: gate | |
| # Pinned rather than ubuntu-latest: the runner's TeX Live is what the set | |
| # checks compile with, and a release of it decides what they refuse. | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # Pandoc reads every source document and runs route B's filter over it, | |
| # so its version decides what the gate's target converts to. ubuntu-24.04 | |
| # packages pandoc 3.1.3, under which the tests fail. This release is the | |
| # one the committed reply was written under. | |
| - name: Install pandoc | |
| run: | | |
| curl -fsSL -o "${RUNNER_TEMP}/pandoc.deb" \ | |
| https://github.com/jgm/pandoc/releases/download/3.9.0.2/pandoc-3.9.0.2-1-amd64.deb | |
| sudo dpkg -i "${RUNNER_TEMP}/pandoc.deb" | |
| pandoc --version | head -1 | |
| # The Dockerfile's package list, which is the one record of what the PDF | |
| # generator's template.latex loads. | |
| - name: Install poppler and TeX Live | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install --no-install-recommends -y \ | |
| poppler-utils \ | |
| texlive-xetex \ | |
| texlive-latex-recommended \ | |
| texlive-latex-extra \ | |
| texlive-science \ | |
| texlive-lang-chinese \ | |
| texlive-lang-arabic \ | |
| texlive-bibtex-extra \ | |
| texlive-plain-generic \ | |
| texlive-fonts-recommended \ | |
| lmodern \ | |
| fonts-noto-core \ | |
| fonts-noto-cjk | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20" | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - name: Install poetry | |
| run: pipx install poetry | |
| - name: Install the package | |
| run: poetry install --with dev | |
| - name: Tests | |
| run: poetry run pytest -q | |
| - name: Gate | |
| run: poetry run in2lambda-agent gate ci-corpus/targets --filters ci-corpus/filters |