Skip to content

ci: Update Django/Python test matrix #25

ci: Update Django/Python test matrix

ci: Update Django/Python test matrix #25

Workflow file for this run

name: build
on: [push, pull_request]
env:
PYTEST_ADDOPTS: "--color=yes"
jobs:
test:
name: Test - Python ${{ matrix.python-version }} - Django ${{ matrix.django-version }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version:
- "3.9"
- "3.10"
- "3.11"
- "3.12"
- "3.13"
django-version:
- "4.2"
- "5.0"
- "5.1"
exclude:
# Django 4.2 is compatible with Python <= 3.12
- python-version: "3.13"
django-version: "4.2"
# Django 5.0 is compatible with Python 3.10, 3.11, & 3.12
- python-version: "3.9"
django-version: "5.0"
- python-version: "3.13"
django-version: "5.0"
# Django 5.1 is compatible with Python >= 3.10
- python-version: "3.9"
django-version: "5.1"
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 Django
run: |
python -m pip install --upgrade pip
python -m pip install "Django~=${{ matrix.django-version }}.0"
- name: Python and Django versions
run: |
echo "Python ${{ matrix.python-version }} -> Django ${{ matrix.django-version }}"
python --version
echo "Django `django-admin --version`"
- name: Install dependencies
run: python -m pip install -r requirements/testing.txt
- name: Run tests
run: coverage run --source=autoslug run_tests.py
deploy:
name: Deploy
environment: Deployment
needs: test
runs-on: ubuntu-latest
if: github.ref=='refs/heads/master' && github.event_name!='pull_request'
steps:
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: "3.9"
- name: Check release
id: check_release
run: |
python -m pip install poetry githubrelease httpx==0.18.2 autopub twine wheel
echo "release=$(autopub check)" >> $GITHUB_OUTPUT
- name: Publish
if: ${{ steps.check_release.outputs.release=='' }}
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
TWINE_USERNAME: "__token__"
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
run: |
git remote set-url origin https://$GITHUB_TOKEN@github.com/${{ github.repository }}
autopub deploy