mirror of
https://github.com/django-q2/django-q2.git
synced 2026-09-15 13:37:56 +08:00
* Remove upper bound on Django version. This allows it to be installed alongside Django 6 and later. See https://iscinumpy.dev/post/bound-version-constraints/ * Run tests on Django 6.0 / Python 3.12
120 lines
3.3 KiB
YAML
120 lines
3.3 KiB
YAML
name: tests
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
jobs:
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Lint with ruff
|
|
run: |
|
|
pipx install ruff==0.4.10
|
|
ruff format . --check && ruff check .
|
|
- name: Check twine
|
|
run: |
|
|
python -m pip install twine poetry rstcheck
|
|
poetry build
|
|
rstcheck README.rst
|
|
twine check dist/*
|
|
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
python-version:
|
|
- "3.9"
|
|
- "3.10"
|
|
- "3.11"
|
|
- "3.12"
|
|
django:
|
|
- "4.2"
|
|
- "5.0"
|
|
- "5.1"
|
|
- "5.2"
|
|
- "6.0"
|
|
exclude:
|
|
# django 5.2 does not support 3.9
|
|
- python-version: "3.9"
|
|
django: "5.2"
|
|
# django 5.1 does not support 3.9
|
|
- python-version: "3.9"
|
|
django: "5.1"
|
|
# django 5.0 does not support 3.9
|
|
- python-version: "3.9"
|
|
django: "5.0"
|
|
# django 4.2 does not support 3.13
|
|
- python-version: "3.13"
|
|
django: "4.2"
|
|
# django 6.0 does not support earlier than 3.12
|
|
- python-version: "3.9"
|
|
django: "6.0"
|
|
- python-version: "3.10"
|
|
django: "6.0"
|
|
- python-version: "3.11"
|
|
django: "6.0"
|
|
|
|
services:
|
|
mongodb:
|
|
image: mongo
|
|
ports:
|
|
- 27017:27017
|
|
postgres:
|
|
image: postgres
|
|
env:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_DB: postgres
|
|
ports:
|
|
- 5432:5432
|
|
# needed because the postgres container does not provide a health check
|
|
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
|
|
redis:
|
|
image: redis
|
|
ports:
|
|
- 6379:6379
|
|
options: --entrypoint redis-server
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- name: Install dependencies with Django ${{ matrix.django }}
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install poetry==1.8.5
|
|
poetry add "django~=${{ matrix.django }}a1" --python=${{ matrix.python-version }}
|
|
poetry install -E testing
|
|
- name: Run Tests
|
|
run: |
|
|
poetry run pytest --cov=./django_q --cov-report=xml
|
|
env:
|
|
MONGO_HOST: "127.0.0.1"
|
|
REDIS_HOST: "127.0.0.1"
|
|
- name: Upload to coveralls
|
|
run: |
|
|
python -m pip install coveralls
|
|
coveralls --service=github
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
COVERALLS_FLAG_NAME: python-${{ matrix.python-version }}-django-${{ matrix.django }}
|
|
COVERALLS_PARALLEL: true
|
|
|
|
finish:
|
|
needs: test
|
|
runs-on: ubuntu-latest
|
|
container: python:3.11-bookworm
|
|
steps:
|
|
- name: Upload to coveralls
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
python -m pip install coveralls
|
|
coveralls --service=github --finish
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|