diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml new file mode 100644 index 00000000..0032320b --- /dev/null +++ b/.github/workflows/python-app.yml @@ -0,0 +1,120 @@ +# This workflow will install Python dependencies, run tests and lint with a single version of Python +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: Python application + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + tests_python: + name: Test on Python ${{ matrix.python_version }} and Django ${{ matrix.django_version }} on ${{ matrix.database }} + runs-on: ubuntu-latest + strategy: + matrix: + django_version: [ '1.11', '2.0', '2.1', '2.2', '3.0', '3.1' ] + python_version: [ '3.4', '3.5', '3.6', '3.7', '3.8', '3.9' ] + database: [ 'postgres' ] + exclude: + - django_version: '1.11' + python_version: '3.8' + - django_version: '1.11' + python_version: '3.9' + + - django_version: '2.0' + python_version: '3.8' + - django_version: '2.0' + python_version: '3.9' + + - django_version: '2.1' + python_version: '3.4' + - django_version: '2.1' + python_version: '3.8' + - django_version: '2.1' + python_version: '3.9' + + - django_version: '2.2' + python_version: '3.4' + + - django_version: '3.0' + python_version: '3.4' + - django_version: '3.0' + python_version: '3.5' + + - django_version: '3.1' + python_version: '3.4' + - django_version: '3.1' + python_version: '3.5' + include: + - django_version: '2.2' + python_version: '3.7' + database: 'sqlite' + env: + SPATIALITE_LIBRARY_PATH: 'mod_spatialite' + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }} + + services: + postgres: + image: postgis/postgis:10-2.5 + env: + # must specify password for PG Docker container image, see: https://registry.hub.docker.com/_/postgres?tab=description&page=1&name=10 + POSTGRES_PASSWORD: password + POSTGRES_DB: test_db + ports: + - 5432:5432 + # needed because the postgres container does not provide a healthcheck + options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 + + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python_version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python_version }} + - name: Cache pip + uses: actions/cache@v2 + with: + # This path is specific to Ubuntu + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ matrix.django_version }}-${{ matrix.database }} + - name: Install dependencies + run: | + sudo apt-get update -qq + sudo apt-get install -y libproj-dev libgeos-dev gdal-bin libgdal-dev + python -m pip install --upgrade pip + pip install -U flake8 coveralls psycopg2-binary argparse + pip install -U Django~=${{ matrix.django_version }} + - name: Lint with flake8 + run: | + flake8 --ignore=E501,W504 leaflet + - name: Test Django >= 2.0 + if: matrix.django_version != '1.11' + run: | + python -W error::DeprecationWarning -W error::PendingDeprecationWarning -m coverage run ./quicktest.py leaflet --db=${{ matrix.database }} + - name: Test Django 1.11 + if: matrix.django_version == '1.11' + run: | + python -m coverage run ./quicktest.py leaflet --db=${{ matrix.database }} + - name: Coverage + if: ${{ success() }} + run: | + coveralls + + tests_node: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Use Node.js + uses: actions/setup-node@v1 + with: + node-version: 8.12.0 + - name: Install dependencies + run: | + npm install leaflet/tests/ + - name: Test node + run: | + node node_modules/mocha-phantomjs/bin/mocha-phantomjs leaflet/tests/index.html diff --git a/quicktest.py b/quicktest.py index 799bfb1b..4eaa05a6 100644 --- a/quicktest.py +++ b/quicktest.py @@ -42,9 +42,9 @@ def run_tests(self): 'default': { 'ENGINE': 'django.contrib.gis.db.backends.postgis', 'NAME': 'test_db', - 'HOST': '127.0.0.1', + 'HOST': 'localhost', 'USER': 'postgres', - 'PASSWORD': '', + 'PASSWORD': 'password', } }