Migrate project from Poetry to uv for dependency management #61
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] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| with: | |
| # Keep in sync with the uv version pinned in the Dockerfile so lockfile | |
| # resolution behaves identically in CI and Docker builds. | |
| version: "0.11.19" | |
| enable-cache: true | |
| - name: Install dependencies | |
| run: uv sync --locked --python ${{ matrix.python-version }} | |
| - name: Run linting | |
| run: uv run black --check src tests | |
| - name: Type checking | |
| run: uv run mypy src --ignore-missing-imports | |
| continue-on-error: true | |
| - name: Security scan | |
| run: uv run bandit -r src/ -ll -x tests | |
| - name: Dependency vulnerability scan | |
| run: uv run safety check || true | |
| continue-on-error: true | |
| - name: Run tests | |
| run: uv run pytest tests/ -v --cov=src --cov-report=xml --cov-report=term-missing | |
| - name: Upload coverage to Codecov | |
| if: matrix.python-version == '3.11' | |
| uses: codecov/codecov-action@v4 | |
| with: | |
| files: ./coverage.xml | |
| fail_ci_if_error: false |