2b255a333a
Raw pilot data stays ignored (copyrighted text); blind key and numeric results are tracked. Runner notes move into docs/infrastructure. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FYqwNMyPUHeTbFWg83GQq6
2.5 KiB
2.5 KiB
Runner ubuntu24.04-x64-lean4.35 (set up 2026-10-21)
Gitea runner iZ6we8b3jgd6nc2qehu06lZ (act_runner v5.2.0, runner id 7), label ubuntu24.04-x64-lean4.35. Both lean-bench and lean-agent CI run here; the old gitea-cicd-server-for-CODEX label is no longer used.
The host
- Jobs run on the host, not in a container, as root. Ubuntu 24.04.5, kernel 6.8, 4 CPU, 15 GiB RAM, no swap, 99 GB disk (88 GB free at setup).
- Lean 4.35.0 via elan 4.2.4 in
/root/.elan. Python 3.12.3, git 2.43, gcc 13.3, curl, jq. - No Node, so
actions/checkoutand other JavaScript actions cannot run. Workflows clone withgit fetch --depth 1 origin $SHAusing${{ github.token }}. - Docker was not installed; the lean-bench
imagejob installsdocker.io+docker-buildx(Docker 29.1.3) if missing. - Runner capacity appears to be 1: jobs from both repos queue behind each other.
What CI does
- lean-agent (
.gitea/workflows/ci.yml): unit tests with the real Lean verifier, a CLI end-to-end run with a scripted provider, and a Mathlib task against lean-bench's host cache (skips if the cache is not ready). - lean-bench (
.gitea/workflows/ci.yml):python(ruff + pytest) ->lean(host Mathlib cache +docker/smoke.pywith real Lean) ->image(build, smoke inside the image, keep). Triggers: push tomainandci/**, pull requests, manual.imageis skipped for pull requests. - Image kept on the host:
lean-bench:latest,:main,:lean4.35,:sha-<short>(about 15 GB).latest/mainare tagged only frommain. Nothing prunes oldsha-*tags. - Mathlib host cache:
/opt/lean-cache/leanbench-<hash of lean-toolchain+lakefile>with a.readymarker, created by.gitea/scripts/prepare-mathlib.shunder a flock.import Mathlibelaborates in about 4 s there.
Lessons
lake exe cache getregularly drops a few of about 9,031 files ("Broken pipe" / "Connection reset"), and the same files can fail twice in a row. Retries fix it.- Mathlib's post-update hook runs the cache fetch inside
lake update, so retries placed after it never run. SetMATHLIB_NO_CACHE_ON_UPDATE=1forlake updateand fetch in a retry loop. In the image the archives live in a BuildKit cache mount (/root/.cache/mathlib), so a retried build resumes. - Cold image build about 19 min; with layers cached about 2 min.
- Gitea 1.26.1 has no cancel-run API; a person cancels in the web UI, then the API can
DELETEthe finished run. The Actions logs endpoint needs a token; the runs/jobs status endpoints work anonymously on this public repo.