name: Tests & Linting on: push: branches: [ main ] pull_request: branches: [ main ] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.12' - name: Install uv run: pip install uv - name: Install dependencies run: uv pip install --system -r requirements.txt - name: Lint with ruff run: ruff check src/ tests/ continue-on-error: true - name: Run unit tests run: pytest tests/unit/ -v - name: Run integration tests run: pytest tests/integration/ -v continue-on-error: true - name: Generate coverage report run: pytest tests/unit/ --cov=src --cov-report=xml - name: Upload coverage uses: codecov/codecov-action@v4 with: file: ./coverage.xml fail_ci_if_error: false