Skip to content

Update GitHub Actions #128

Update GitHub Actions

Update GitHub Actions #128

Workflow file for this run

# 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:
- '3.2'
- '4.0'
- '4.1'
- '4.2'
- '5.0'
python_version:
- '3.8'
- '3.9'
- '3.10'
- '3.11'
- '3.12'
database: [ 'postgres' ]
exclude:
- django_version: '5.0'
python_version: '3.8'
- django_version: '5.0'
python_version: '3.9'
- django_version: '3.2'
python_version: '3.11'
- django_version: '4.0'
python_version: '3.11'
- django_version: '3.2'
python_version: '3.12'
- django_version: '4.0'
python_version: '3.12'
- django_version: '4.1'
python_version: '3.12'
include:
- django_version: '3.2'
python_version: '3.8'
database: 'sqlite'
env:
SPATIALITE_LIBRARY_PATH: 'mod_spatialite'
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
services:
postgres:
image: postgis/postgis:12-3.2
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@v4
- name: Set up Python ${{ matrix.python_version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python_version }}
- name: Cache pip
uses: actions/cache@v4
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 psycopg2-binary argparse
pip install -U Django~=${{ matrix.django_version }}.0
- name: Lint with flake8
run: |
flake8 --ignore=E501,W504 leaflet
- name: Test
run: |
python -W error::DeprecationWarning -W error::PendingDeprecationWarning quicktest.py leaflet --db=${{ matrix.database }}
tests_node:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: |
npm install leaflet/tests/
- name: Test node
run: |
node node_modules/mocha-phantomjs/bin/mocha-phantomjs leaflet/tests/index.html