fix(hooks): stop the pre-push gauntlet hanging on model-download tests #94
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: ci | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| lint-typecheck-test: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v3 | |
| with: | |
| version: "0.5.4" | |
| - name: Install dependencies | |
| run: uv sync --extra dev --frozen | |
| - name: Ruff lint | |
| run: uv run ruff check . | |
| - name: Ruff format check | |
| run: uv run ruff format --check . | |
| - name: Mypy strict | |
| run: uv run mypy src tests scripts | |
| - name: Pytest (unit) | |
| run: uv run pytest -v --cov=src --cov-report=term-missing | |
| - name: Eval regression gate (vs committed baseline) | |
| # Compares the committed baseline against itself as a smoke test until | |
| # a self-hosted runner can execute the live eval stack. When a fresh | |
| # run is fetched from artifacts, point --candidate at it. Threshold: | |
| # 5% (any metric dropping more than this fails CI). | |
| run: | | |
| uv run python -m scripts.check_regression \ | |
| --baseline data/eval/baseline.json \ | |
| --candidate data/eval/baseline.json \ | |
| --threshold 0.05 |