Skip to content

Update actions workflows, and support for python, django and drf #103

Update actions workflows, and support for python, django and drf

Update actions workflows, and support for python, django and drf #103

Workflow file for this run

name: Run linter and tests
on: [push, pull_request]
jobs:
test:
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"
drf-version:
- "3.15"
exclude:
- python-version: "3.9"
django-version: "5.0"
- python-version: "3.9"
django-version: "5.1"
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 flake8 codecov setuptools
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Install Django version
run: |
python -m pip install "Django==${{ matrix.django-version }}.*"
- name: Install DRF version
run: |
python -m pip install "djangorestframework==${{ matrix.drf-version }}.*"
- name: Python, Django and DRF versions
run: |
echo "Python ${{ matrix.python-version }} -> Django ${{ matrix.django-version }} -> DRF ${{ matrix.drf-version }}"
python --version
echo "Django: `django-admin --version`"
echo "DRF: `pip show djangorestframework|grep Version|sed s/Version:\ //`"
- name: Setup environment
run: |
pip install -e .
python setup.py install
- name: Run tests
run: |
# prepare Django project: link all necessary data from the test project into the root directory
# Hint: Simply changing the directory does not work (leads to missing files in coverage report)
ln -s ./tests/test test
ln -s ./tests/manage.py manage.py
ln -s ./tests/settings.py settings.py
ln -s ./tests/urls.py urls.py
# run tests with coverage
coverage run --source='./django_rest_passwordreset' manage.py test
coverage xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4