Version 0.6.0 #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
tags: | |
- "*" | |
jobs: | |
lint: | |
strategy: | |
matrix: | |
toxenv: [isort, flake8, black] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3 | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install tox | |
- name: Run tox - ${{ matrix.toxenv }} | |
env: | |
TOXENV: ${{ matrix.toxenv }} | |
run: tox | |
test: | |
continue-on-error: ${{ matrix.experimental }} | |
strategy: | |
matrix: | |
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] | |
django-version: [18, 19, 110, 111, 20, 21, 22, 30, 31, 32, 40, 41, 42, 50, main] | |
experimental: [false] | |
# Allow failures on Django main branch test. | |
include: | |
- python-version: "3.10" | |
django-version: main | |
experimental: true | |
- python-version: "3.11" | |
django-version: main | |
experimental: true | |
- python-version: "3.12" | |
django-version: main | |
experimental: true | |
exclude: | |
# Python 3.7 | |
- python-version: "3.7" | |
django-version: 18 | |
- python-version: "3.7" | |
django-version: 19 | |
- python-version: "3.7" | |
django-version: 110 | |
- python-version: "3.7" | |
django-version: 111 | |
- python-version: "3.7" | |
django-version: 40 | |
- python-version: "3.7" | |
django-version: 41 | |
- python-version: "3.7" | |
django-version: 42 | |
- python-version: "3.7" | |
django-version: 50 | |
- python-version: "3.7" | |
django-version: main | |
# Python 3.8 | |
- python-version: "3.8" | |
django-version: 18 | |
- python-version: "3.8" | |
django-version: 19 | |
- python-version: "3.8" | |
django-version: 110 | |
- python-version: "3.8" | |
django-version: 111 | |
- python-version: "3.8" | |
django-version: 111 | |
- python-version: "3.8" | |
django-version: 20 | |
- python-version: "3.8" | |
django-version: 21 | |
- python-version: "3.8" | |
django-version: 50 | |
- python-version: "3.8" | |
django-version: main | |
# Python 3.9 | |
- python-version: "3.9" | |
django-version: 18 | |
- python-version: "3.9" | |
django-version: 19 | |
- python-version: "3.9" | |
django-version: 110 | |
- python-version: "3.9" | |
django-version: 111 | |
- python-version: "3.9" | |
django-version: 111 | |
- python-version: "3.9" | |
django-version: 20 | |
- python-version: "3.9" | |
django-version: 21 | |
- python-version: "3.9" | |
django-version: 50 | |
- python-version: "3.9" | |
django-version: main | |
# Python 3.10 | |
- python-version: "3.10" | |
django-version: 18 | |
- python-version: "3.10" | |
django-version: 19 | |
- python-version: "3.10" | |
django-version: 110 | |
- python-version: "3.10" | |
django-version: 111 | |
- python-version: "3.10" | |
django-version: 111 | |
- python-version: "3.10" | |
django-version: 20 | |
- python-version: "3.10" | |
django-version: 21 | |
- python-version: "3.10" | |
django-version: 21 | |
- python-version: "3.10" | |
django-version: 22 | |
- python-version: "3.10" | |
django-version: 30 | |
- python-version: "3.10" | |
django-version: 31 | |
- python-version: "3.10" | |
django-version: main | |
# Python 3.11 | |
- python-version: "3.11" | |
django-version: 18 | |
- python-version: "3.11" | |
django-version: 19 | |
- python-version: "3.11" | |
django-version: 110 | |
- python-version: "3.11" | |
django-version: 111 | |
- python-version: "3.11" | |
django-version: 111 | |
- python-version: "3.11" | |
django-version: 20 | |
- python-version: "3.11" | |
django-version: 21 | |
- python-version: "3.11" | |
django-version: 21 | |
- python-version: "3.11" | |
django-version: 22 | |
- python-version: "3.11" | |
django-version: 30 | |
- python-version: "3.11" | |
django-version: 31 | |
- python-version: "3.11" | |
django-version: 40 | |
- python-version: "3.11" | |
django-version: main | |
# Python 3.12 | |
- python-version: "3.12" | |
django-version: 18 | |
- python-version: "3.12" | |
django-version: 19 | |
- python-version: "3.12" | |
django-version: 110 | |
- python-version: "3.12" | |
django-version: 111 | |
- python-version: "3.12" | |
django-version: 111 | |
- python-version: "3.12" | |
django-version: 20 | |
- python-version: "3.12" | |
django-version: 21 | |
- python-version: "3.12" | |
django-version: 21 | |
- python-version: "3.12" | |
django-version: 22 | |
- python-version: "3.12" | |
django-version: 30 | |
- python-version: "3.12" | |
django-version: 31 | |
- python-version: "3.12" | |
django-version: 40 | |
- python-version: "3.12" | |
django-version: 41 | |
- python-version: "3.12" | |
django-version: main | |
runs-on: ubuntu-latest | |
steps: | |
- 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 --upgrade pip | |
pip install tox | |
- name: Run tox - Python ${{ matrix.python-version}}, Django ${{ matrix.django-version }} | |
env: | |
TOXENV: py-dj${{ matrix.django-version }} | |
run: tox | |
build: | |
permissions: | |
id-token: write # IMPORTANT: this permission is mandatory for trusted publishing | |
runs-on: ubuntu-latest | |
needs: | |
- lint | |
- test | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- name: Install dependencies | |
run: python -m pip install --upgrade pip build | |
- name: Build package | |
run: python -m build | |
- name: Save built package | |
uses: actions/upload-artifact@v3 | |
with: | |
name: package | |
path: dist | |
- name: Publish to PyPi | |
if: ${{ github.ref_type == 'tag' }} | |
uses: pypa/gh-action-pypi-publish@release/v1 | |
with: | |
print_hash: true |