diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 00000000..e3e786ae --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,55 @@ +name: Tests +on: [push, pull_request] + +jobs: + test: + name: Run test + runs-on: ubuntu-latest + continue-on-error: ${{ matrix.django-rest-framework == 'master' }} + strategy: + fail-fast: false + matrix: + python-version: ["3.6", "3.7", "3.8", "3.9"] + django: ["2.2", "3.0", "3.1"] + django-rest-framework: ["3.12", "master"] + env: + PYTHON: ${{ matrix.python-version }} + DJANGO: ${{ matrix.django }} + DJANGO_REST_FRAMEWORK: ${{ matrix.django-rest-framework }} + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install tox tox-gh-actions + - name: Test with tox + run: tox + - name: Upload coverage report + uses: codecov/codecov-action@v1 + with: + env_vars: PYTHON,DJANGO,DJANGO_REST_FRAMEWORK + check: + name: Run check + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + tox-env: ["black", "lint", "docs"] + steps: + - uses: actions/checkout@v2 + - name: Set up Python 3.6 + uses: actions/setup-python@v2 + with: + python-version: 3.6 + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install tox + - name: Run lint + run: tox + env: + TOXENV: ${{ matrix.tox-env }} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 65ea1cc8..00000000 --- a/.travis.yml +++ /dev/null @@ -1,88 +0,0 @@ -language: python -dist: xenial -sudo: required -cache: pip -# Favor explicit over implicit and use an explicit build matrix. -matrix: - allow_failures: - - env: TOXENV=py36-django22-drfmaster - - env: TOXENV=py37-django22-drfmaster - - env: TOXENV=py38-django22-drfmaster - - env: TOXENV=py39-django22-drfmaster - - env: TOXENV=py36-django30-drfmaster - - env: TOXENV=py37-django30-drfmaster - - env: TOXENV=py38-django30-drfmaster - - env: TOXENV=py39-django30-drfmaster - - env: TOXENV=py36-django31-drfmaster - - env: TOXENV=py37-django31-drfmaster - - env: TOXENV=py38-django31-drfmaster - - env: TOXENV=py39-django31-drfmaster - - include: - - python: 3.6 - env: TOXENV=black - - python: 3.6 - env: TOXENV=lint - - python: 3.6 - env: TOXENV=docs - - - python: 3.6 - env: TOXENV=py36-django22-drf312 - - python: 3.6 - env: TOXENV=py36-django22-drfmaster - - python: 3.6 - env: TOXENV=py36-django30-drf312 - - python: 3.6 - env: TOXENV=py36-django30-drfmaster - - python: 3.6 - env: TOXENV=py36-django31-drf312 - - python: 3.6 - env: TOXENV=py36-django31-drfmaster - - - python: 3.7 - env: TOXENV=py37-django22-drf312 - - python: 3.7 - env: TOXENV=py37-django22-drfmaster - - python: 3.7 - env: TOXENV=py37-django30-drf312 - - python: 3.7 - env: TOXENV=py37-django30-drfmaster - - python: 3.7 - env: TOXENV=py37-django31-drf312 - - python: 3.7 - env: TOXENV=py37-django31-drfmaster - - - python: 3.8 - env: TOXENV=py38-django22-drf312 - - python: 3.8 - env: TOXENV=py38-django22-drfmaster - - python: 3.8 - env: TOXENV=py38-django30-drf312 - - python: 3.8 - env: TOXENV=py38-django30-drfmaster - - python: 3.8 - env: TOXENV=py38-django31-drf312 - - python: 3.8 - env: TOXENV=py38-django31-drfmaster - - - python: 3.9 - env: TOXENV=py39-django22-drf312 - - python: 3.9 - env: TOXENV=py39-django22-drfmaster - - python: 3.9 - env: TOXENV=py39-django30-drf312 - - python: 3.9 - env: TOXENV=py39-django30-drfmaster - - python: 3.9 - env: TOXENV=py39-django31-drf312 - - python: 3.9 - env: TOXENV=py39-django31-drfmaster - - -install: - - pip install tox -script: - - tox -after_success: - - pip install codecov - - codecov -e TOXENV --required diff --git a/README.rst b/README.rst index 3501e8a1..86e20fd3 100644 --- a/README.rst +++ b/README.rst @@ -2,8 +2,9 @@ JSON API and Django Rest Framework ================================== -.. image:: https://travis-ci.com/django-json-api/django-rest-framework-json-api.svg?branch=master - :target: https://travis-ci.com/django-json-api/django-rest-framework-json-api +.. image:: hhttps://github.com/django-json-api/django-rest-framework-json-api/workflows/Tests/badge.svg + :alt: Tests + :target: https://github.com/django-json-api/django-rest-framework-json-api/actions .. image:: https://readthedocs.org/projects/django-rest-framework-json-api/badge/?version=latest :alt: Read the docs diff --git a/tox.ini b/tox.ini index dc808c01..dab1676c 100644 --- a/tox.ini +++ b/tox.ini @@ -3,6 +3,23 @@ envlist = py{36,37,38,39}-django{22,30,31}-drf{312,master}, lint,docs +[gh-actions] +python = + 3.6: py36 + 3.7: py37 + 3.8: py38 + 3.9: py39 + +[gh-actions:env] +DJANGO = + 2.2: django22 + 3.0: django30 + 3.1: django31 + +DJANGO_REST_FRAMEWORK = + 3.12: drf312 + master: drfmaster + [testenv] deps = django22: Django>=2.2,<2.3