ci: add mypy baseline check (225 errors) + pyproject mypy config #44
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: | |
| jobs: | |
| test: | |
| name: Python ${{ matrix.python-version }} on ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| python-version: ["3.11", "3.12"] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install package | |
| run: python -m pip install -e ".[dev]" | |
| - name: Compile sources | |
| run: python -m compileall -q minicode tests | |
| - name: Lint (ruff) | |
| run: | | |
| python -m pip install ruff | |
| python -m ruff check minicode/ --select=E,F --ignore=E501 | |
| - name: Type check (mypy baseline) | |
| run: | | |
| python -m pip install mypy | |
| # Baseline: 225 errors. Gradual type hardening — fix real bugs, not just noise. | |
| ERRORS=$(python -m mypy minicode/ --no-error-summary 2>&1 | grep -c "error:" || echo 0) | |
| echo "mypy errors: $ERRORS (baseline 225)" | |
| if [ "$ERRORS" -gt 225 ]; then | |
| echo "FAIL: mypy errors increased above baseline" | |
| exit 1 | |
| fi | |
| - name: Run packaging smoke tests | |
| run: python -m pytest tests/test_packaging.py -q | |
| - name: Run test suite | |
| run: python -m pytest -q --tb=short |