name: test on: [push, pull_request] jobs: formatting: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - name: Install uv uses: astral-sh/setup-uv@v7 with: python-version: "3.12" - name: Run ruff run: uvx ruff check typecheck: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - name: Install uv uses: astral-sh/setup-uv@v7 with: python-version: "3.12" - name: Run mypy run: uvx mypy dj_database_url - name: Run pyright run: uvx pyright dj_database_url test: runs-on: ubuntu-latest needs: [formatting, typecheck] strategy: fail-fast: false matrix: python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] django-version: ["4.2", "5.2", "6.0"] exclude: # django 4.x is not compatible with python 3.13 or higher - python-version: "3.13" django-version: "4.2" - python-version: "3.14" django-version: "4.2" # django 6.x is not compatible with python 3.11 or lower - python-version: "3.10" django-version: "6.0" - python-version: "3.11" django-version: "6.0" steps: - uses: actions/checkout@v4 - name: Install uv and set the Python version uses: astral-sh/setup-uv@v7 with: python-version: ${{ matrix.python-version }} activate-environment: 'true' - name: Install dependencies run: | uv pip install "Django~=${{ matrix.django-version }}.0" - name: Run Tests run: | echo "$(python --version) / Django $(django-admin --version)" uvx coverage run --source=dj_database_url --branch -m unittest discover -v uvx coverage report uvx coverage xml - uses: codecov/codecov-action@v4