name: ci on: push: branches: [main] pull_request: workflow_dispatch: jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # The runner image ships a Debian-managed Python (PEP 668), so installing # into it is refused and `pip install --upgrade pip` cannot replace the # distro pip. A venv sidesteps both, and costs a couple of seconds. - name: Set up a virtualenv run: | set -eu python3 --version python3 -m venv .venv || { apt-get update -qq apt-get install -y -qq python3-venv python3 -m venv .venv } .venv/bin/python -m pip install --quiet --upgrade pip - name: Install run: .venv/bin/python -m pip install --quiet -e ".[dev]" - name: Lint run: .venv/bin/python -m ruff check . - name: Test run: .venv/bin/python -m pytest -q - name: CLI is wired up run: | set -eu .venv/bin/lean-bench --help > /dev/null .venv/bin/lean-bench doctor --skip-llm --env /dev/null lean-project: # Cheap guard: the Lean project's pins must at least resolve. runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Resolve the Mathlib / toolchain pair run: | set -eu command -v curl >/dev/null || (apt-get update -qq && apt-get install -y -qq curl) command -v git >/dev/null || (apt-get update -qq && apt-get install -y -qq git) chmod +x docker/resolve-mathlib.sh docker/resolve-mathlib.sh lean "${MATHLIB_REV:-auto}" echo "toolchain: $(cat lean/lean-toolchain)" grep -E '^rev' lean/lakefile.toml