2021-04-06 20:34:18 +03:00
|
|
|
name: CI
|
|
|
|
|
|
|
|
on:
|
|
|
|
push:
|
|
|
|
branches:
|
2021-04-16 19:23:18 +03:00
|
|
|
- master
|
2021-04-06 20:34:18 +03:00
|
|
|
pull_request:
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
tests:
|
|
|
|
name: Python ${{ matrix.python-version }}
|
2023-04-15 09:11:35 +03:00
|
|
|
runs-on: ubuntu-20.04
|
2021-04-06 20:34:18 +03:00
|
|
|
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
python-version:
|
|
|
|
- '3.8'
|
|
|
|
- '3.9'
|
2021-12-10 15:04:27 +03:00
|
|
|
- '3.10'
|
2022-11-21 13:47:21 +03:00
|
|
|
- '3.11'
|
2024-02-20 16:12:07 +03:00
|
|
|
- '3.12'
|
2024-10-10 01:39:36 +03:00
|
|
|
- '3.13'
|
2021-04-06 20:34:18 +03:00
|
|
|
|
|
|
|
steps:
|
2023-09-09 10:55:32 +03:00
|
|
|
- uses: actions/checkout@v4
|
2021-04-06 20:34:18 +03:00
|
|
|
|
2024-02-28 13:57:33 +03:00
|
|
|
- uses: actions/setup-python@v5
|
2021-04-06 20:34:18 +03:00
|
|
|
with:
|
|
|
|
python-version: ${{ matrix.python-version }}
|
2022-03-23 14:28:46 +03:00
|
|
|
cache: 'pip'
|
|
|
|
cache-dependency-path: 'requirements/*.txt'
|
2021-04-06 20:34:18 +03:00
|
|
|
|
|
|
|
- name: Upgrade packaging tools
|
|
|
|
run: python -m pip install --upgrade pip setuptools virtualenv wheel
|
|
|
|
|
|
|
|
- name: Install dependencies
|
2023-04-15 09:11:35 +03:00
|
|
|
run: python -m pip install --upgrade codecov tox
|
2022-12-08 11:01:07 +03:00
|
|
|
|
|
|
|
- name: Run tox targets for ${{ matrix.python-version }}
|
Add support for Python 3.13 (#9527)
* Add support for Python 3.13
* Fix extracting tox env with -dev Python versions
* Fix view description inspection in Python 3.13
Python 3.13 introduced docstrings for None: https://github.com/python/cpython/pull/117813
In Python 3.12, this is an empty string:
```
➜ python3.12
Python 3.12.6 (main, Sep 10 2024, 19:06:17) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> d = None
>>> d.__doc__
>>>
```
In Python 3.13, it's no longer empty:
```
➜ python3.13
Python 3.13.0rc2+ (heads/3.13:660baa1, Sep 10 2024, 18:57:50) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> d = None
>>> d.__doc__
'The type of the None singleton.'
>>>
```
Adding a check in the inspector that get the view description out the view function docstring to catch this edge case.
2024-09-11 12:39:52 +03:00
|
|
|
run: tox run -f py$(echo ${{ matrix.python-version }} | tr -d . | cut -f 1 -d '-')
|
2021-04-06 20:34:18 +03:00
|
|
|
|
|
|
|
- name: Run extra tox targets
|
|
|
|
if: ${{ matrix.python-version == '3.9' }}
|
|
|
|
run: |
|
|
|
|
tox -e base,dist,docs
|
|
|
|
|
|
|
|
- name: Upload coverage
|
2023-04-15 09:11:35 +03:00
|
|
|
run: |
|
|
|
|
codecov -e TOXENV,DJANGO
|
2023-08-15 08:17:08 +03:00
|
|
|
|
|
|
|
test-docs:
|
|
|
|
name: Test documentation links
|
|
|
|
runs-on: ubuntu-22.04
|
|
|
|
steps:
|
2024-03-06 18:06:24 +03:00
|
|
|
- uses: actions/checkout@v4
|
2023-08-15 08:17:08 +03:00
|
|
|
|
2024-02-28 13:57:33 +03:00
|
|
|
- uses: actions/setup-python@v5
|
2023-08-15 08:17:08 +03:00
|
|
|
with:
|
2023-08-17 13:21:03 +03:00
|
|
|
python-version: '3.9'
|
2023-08-15 08:17:08 +03:00
|
|
|
|
|
|
|
- name: Install dependencies
|
|
|
|
run: pip install -r requirements/requirements-documentation.txt
|
|
|
|
|
|
|
|
# Start mkdocs server and wait for it to be ready
|
|
|
|
- run: mkdocs serve &
|
|
|
|
- run: WAIT_TIME=0 && until nc -vzw 2 localhost 8000 || [ $WAIT_TIME -eq 5 ]; do sleep $(( WAIT_TIME++ )); done
|
|
|
|
- run: if [ $WAIT_TIME == 5 ]; then echo cannot start mkdocs server on http://localhost:8000; exit 1; fi
|
|
|
|
|
|
|
|
- name: Check links
|
|
|
|
continue-on-error: true
|
|
|
|
run: pylinkvalidate.py -P http://localhost:8000/
|
|
|
|
|
|
|
|
- run: echo "Done"
|