Skip to content

Update shared configuration from django-marina #490

Update shared configuration from django-marina

Update shared configuration from django-marina #490

Workflow file for this run

name: Test
on:
push:
branches: ["main"]
pull_request:
concurrency:
group: test-${{ github.head_ref }}
cancel-in-progress: true
jobs:
ruff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: chartboost/ruff-action@v1
tests_matrix:
runs-on: ubuntu-latest
needs: [ ruff ]
strategy:
matrix:
python-version: ["3.10", 3.11, 3.12, 3.13, 3.14]
django-version: [4.2, 5.1, 5.2, "6.0", "main"]
exclude:
# Django 4.2
- python-version: 3.14
django-version: 4.2
# Django 5.1
- python-version: 3.14
django-version: 5.1
# Django 6.0
- python-version: 3.10
django-version: 6.0
- python-version: 3.11
django-version: 6.0
# Django main
- python-version: 3.10
django-version: "main"
- python-version: 3.11
django-version: "main"
steps:
- uses: actions/checkout@v5
- name: Update repositories
run: sudo apt-get update
- name: Install GDAL binaries
run: sudo apt-get install binutils libproj-dev gdal-bin
- name: Set up Python with uv
uses: astral-sh/setup-uv@v7
with:
python-version: ${{ matrix.python-version }}
enable-cache: true
cache-dependency-glob: |
pyproject.toml
uv.lock
- name: Install dependencies
run: uv sync --locked --all-extras --dev
- name: Install Django ${{ matrix.django-version }}
run: uv pip install Django==${{ matrix.django-version }}
if: ${{ matrix.django-version != 'main' && matrix.django-version != '6.0' }}
- name: Install Django ${{ matrix.django-version }}
run: uv pip install "Django>=6.0a1,<6.1"
if: matrix.django-version == '6.0'
- name: Install Django main branch
run: uv pip install -U https://github.com/django/django/archive/master.tar.gz
if: matrix.django-version == 'main'
- name: Run tests
run: |
uv run coverage run manage.py test
uv run coverage report
- name: Upload coveralls (parallel)
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COVERALLS_PARALLEL: true
run: |
uv pip install coveralls
uv run coveralls --service=github
docs:
runs-on: ubuntu-latest
needs: [ tests_matrix ]
steps:
- uses: actions/checkout@v5
- name: Set up Python with uv
uses: astral-sh/setup-uv@v7
with:
python-version: 3.12
enable-cache: true
cache-dependency-glob: "pyproject.toml"
- name: Set up just
uses: extractions/setup-just@v3
- name: Build documentation
run: just docs
build:
runs-on: ubuntu-latest
needs: [ tests_matrix ]
steps:
- uses: actions/checkout@v5
- name: Set up Python with uv
uses: astral-sh/setup-uv@v7
with:
python-version: 3.12
enable-cache: true
cache-dependency-glob: "pyproject.toml"
- name: Set up just
uses: extractions/setup-just@v3
- name: Build package
run: just build
tests:
if: always()
runs-on: ubuntu-latest
needs: [ tests_matrix, ruff, docs, build ]
steps:
- name: Check tests matrix status
if: needs.tests_matrix.result != 'success'
run: exit 1
- name: Finish parallel build
uses: coverallsapp/github-action@v2
with:
parallel-finished: true
github-token: ${{ secrets.GITHUB_TOKEN }}