diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 00000000..95283181 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,38 @@ +name: Lint + +on: [push, pull_request] + +jobs: + flake8: + name: flake8 + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: 3.9 + - name: Install flake8 + run: pip install --upgrade flake8 + - name: Run flake8 + uses: liskin/gh-problem-matcher-wrap@v1 + with: + linters: flake8 + run: flake8 + + isort: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: 3.9 + - run: python -m pip install isort + - name: isort + uses: liskin/gh-problem-matcher-wrap@v1 + with: + linters: isort + run: isort -c -rc -df djangocms_snippet diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..1b4f6752 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,40 @@ +name: CodeCov + +on: [push, pull_request] + +jobs: + unit-tests: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + python-version: [ 3.7, 3.8, 3.9, ] # latest release minus two + requirements-file: [ + dj22_cms37.txt, + dj22_cms38.txt, + dj30_cms37.txt, + dj30_cms38.txt, + dj31_cms38.txt, + ] + os: [ + ubuntu-20.04, + ] + + steps: + - uses: actions/checkout@v1 + - 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 -r tests/requirements/${{ matrix.requirements-file }} + python setup.py install + + - name: Run coverage + run: coverage run setup.py test + + - name: Upload Coverage to Codecov + uses: codecov/codecov-action@v1 diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index d5efac84..00000000 --- a/.travis.yml +++ /dev/null @@ -1,42 +0,0 @@ -language: python - -dist: xenial - -matrix: - include: - - python: 3.5 - env: TOX_ENV='flake8' - - python: 3.5 - env: TOX_ENV='isort' - # Django 2.2 - - python: 3.5 - env: DJANGO='dj22' CMS='cms37' - - python: 3.6 - env: DJANGO='dj22' CMS='cms37' - - python: 3.7 - env: DJANGO='dj22' CMS='cms37' - - python: 3.8 - env: DJANGO='dj22' CMS='cms37' - # Django 3.0, always run the lowest supported version - - python: 3.6 - env: DJANGO='dj30' CMS='cms37' - # Django 3.1, always run the lowest supported version - - python: 3.6 - env: DJANGO='dj31' CMS='cms38' - allow_failures: - - python: 3.6 - env: DJANGO='dj31' CMS='cms38' - -install: - - pip install coverage isort tox - - "if [[ $TRAVIS_PYTHON_VERSION == '3.5' ]]; then export PY_VER=py35; fi" - - "if [[ $TRAVIS_PYTHON_VERSION == '3.6' ]]; then export PY_VER=py36; fi" - - "if [[ $TRAVIS_PYTHON_VERSION == '3.7' ]]; then export PY_VER=py37; fi" - - "if [[ $TRAVIS_PYTHON_VERSION == '3.8' ]]; then export PY_VER=py37; fi" - - "if [[ ${DJANGO}z != 'z' ]]; then export TOX_ENV=$PY_VER-$DJANGO-$CMS; fi" - -script: - - tox -e $TOX_ENV - -after_success: - - bash <(curl -s https://codecov.io/bash) diff --git a/setup.py b/setup.py index df1d6b97..9e41005e 100644 --- a/setup.py +++ b/setup.py @@ -6,6 +6,7 @@ REQUIREMENTS = [ 'django-cms>=3.7', + 'django-treebeard>=4.3,<4.5', ] diff --git a/tests/requirements.txt b/tests/requirements/base.txt similarity index 100% rename from tests/requirements.txt rename to tests/requirements/base.txt diff --git a/tests/requirements/dj22_cms37.txt b/tests/requirements/dj22_cms37.txt new file mode 100644 index 00000000..6b96a102 --- /dev/null +++ b/tests/requirements/dj22_cms37.txt @@ -0,0 +1,4 @@ +-r base.txt + +Django>=2.2,<3.0 +django-cms>=3.7,<3.8 diff --git a/tests/requirements/dj22_cms38.txt b/tests/requirements/dj22_cms38.txt new file mode 100644 index 00000000..22c4fef2 --- /dev/null +++ b/tests/requirements/dj22_cms38.txt @@ -0,0 +1,4 @@ +-r base.txt + +Django>=2.2,<3.0 +django-cms>=3.8,<3.9 diff --git a/tests/requirements/dj30_cms37.txt b/tests/requirements/dj30_cms37.txt new file mode 100644 index 00000000..edcfd450 --- /dev/null +++ b/tests/requirements/dj30_cms37.txt @@ -0,0 +1,4 @@ +-r base.txt + +Django>=3.0,<3.1 +django-cms>=3.7,<3.8 diff --git a/tests/requirements/dj30_cms38.txt b/tests/requirements/dj30_cms38.txt new file mode 100644 index 00000000..7bc3c0be --- /dev/null +++ b/tests/requirements/dj30_cms38.txt @@ -0,0 +1,4 @@ +-r base.txt + +Django>=3.0,<3.1 +django-cms>=3.8,<3.9 diff --git a/tests/requirements/dj31_cms38.txt b/tests/requirements/dj31_cms38.txt new file mode 100644 index 00000000..d17fdb42 --- /dev/null +++ b/tests/requirements/dj31_cms38.txt @@ -0,0 +1,4 @@ +-r base.txt + +Django>=3.1,<3.2 +django-cms>=3.8,<3.9 diff --git a/tox.ini b/tox.ini index f6a62fad..4d1596db 100644 --- a/tox.ini +++ b/tox.ini @@ -39,7 +39,7 @@ known_django = django [testenv] deps = - -r{toxinidir}/tests/requirements.txt + -r{toxinidir}/tests/requirements/base.txt dj22: Django>=2.2,<3.0 dj30: Django>=3.0,<3.1 dj31: Django>=3.1,<3.2