name: Tests and Codecov on: push: branches: - master - main - "release/*" pull_request: workflow_dispatch: jobs: run_tests: runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ['3.9', '3.10', '3.11', '3.12', '3.13', 'pypy-3.9-7.3.13'] steps: - name: Checkout repository uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: | python -m pip install uv uv pip install --system tox tox-gh-actions - name: Test with tox run: tox coverage_report: needs: run_tests runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install dependencies run: | python -m pip install uv uv pip install --system uv uv pip install --system .[dev] - name: Calculate coverage run: poetry run coverage run --source=pipreqs -m unittest discover - name: Create XML report run: poetry run coverage xml - name: Upload coverage to Codecov uses: codecov/codecov-action@v5 with: files: coverage.xml fail_ci_if_error: true