chore(deps): bump the python group across 1 directory with 15 updates #431
Workflow file for this run
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, master, develop] | |
| pull_request: | |
| branches: [main, master, develop] | |
| workflow_dispatch: | |
| # Least privilege at the top level; jobs escalate to exactly what they need | |
| # (the Codecov upload needs id-token: write for its tokenless OIDC auth). | |
| permissions: | |
| contents: read | |
| # Cancel superseded runs on the same ref (saves minutes on rapid pushes). | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| # Lint, format and type-check run once on a single interpreter — the code is | |
| # identical across the matrix, so repeating them per Python version was wasted | |
| # compute and slower feedback. Runs in parallel with the test matrix below. | |
| quality: | |
| name: Lint, format, type-check | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| permissions: | |
| contents: read # checkout the repo | |
| steps: | |
| - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 | |
| - name: Set up Python | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 | |
| with: | |
| python-version: "3.12" | |
| - name: Set up uv (fast installs + cache) | |
| uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0 | |
| with: | |
| enable-cache: true | |
| # mypy follows imports (disallow_untyped_defs), so the full extras closure | |
| # must be installed for type checking to resolve fastapi/mcp/openai/etc. | |
| - name: Install | |
| run: uv pip install --system -e ".[dev,server,ui,openai,mcp]" | |
| - name: Lint (ruff) | |
| run: ruff check . | |
| - name: Format check (ruff) | |
| run: ruff format --check . | |
| - name: Type check (mypy) | |
| run: mypy coderag | |
| test: | |
| name: Tests (py${{ matrix.python-version }}) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| permissions: | |
| contents: read # checkout the repo | |
| id-token: write # OIDC token for Codecov's tokenless upload (3.12 leg) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.11", "3.12", "3.13"] | |
| steps: | |
| - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Set up uv (fast installs + cache) | |
| uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0 | |
| with: | |
| enable-cache: true | |
| - name: Install | |
| run: uv pip install --system -e ".[dev,server,ui,openai,mcp]" | |
| - name: Tests + coverage (offline — no model downloads, no network) | |
| run: | | |
| pytest -m "not integration" \ | |
| --cov=coderag --cov-report=term-missing --cov-report=xml | tee coverage.txt | |
| { | |
| echo "### Coverage — Python ${{ matrix.python-version }}" | |
| echo '```' | |
| tail -n 40 coverage.txt | |
| echo '```' | |
| } >> "$GITHUB_STEP_SUMMARY" | |
| # Track coverage over time and surface the README badge. Tokenless OIDC upload | |
| # for this public repo; only the 3.12 matrix leg uploads to avoid duplicates. | |
| - name: Upload coverage to Codecov | |
| if: matrix.python-version == '3.12' | |
| uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 | |
| with: | |
| files: ./coverage.xml | |
| use_oidc: true | |
| fail_ci_if_error: false | |
| build: | |
| name: Build & check package | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 | |
| - name: Set up uv | |
| uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0 | |
| with: | |
| python-version: "3.12" | |
| - name: Build sdist + wheel | |
| run: uv build | |
| - name: Validate package metadata (twine check) | |
| run: uvx twine check dist/* |