From 8c56e939750ae785b806dfa4e043590760c90ab6 Mon Sep 17 00:00:00 2001 From: nessita <124304+nessita@users.noreply.github.com> Date: Tue, 17 Jun 2025 15:25:47 -0300 Subject: [PATCH] Refs #36009 -- Added GitHub action workflow to run tests with latest stable postgis version. --- .github/workflows/data/test_postgis.py.tpl | 20 +++++++ .github/workflows/postgis.yml | 61 ++++++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 .github/workflows/data/test_postgis.py.tpl create mode 100644 .github/workflows/postgis.yml diff --git a/.github/workflows/data/test_postgis.py.tpl b/.github/workflows/data/test_postgis.py.tpl new file mode 100644 index 0000000000..684972c41e --- /dev/null +++ b/.github/workflows/data/test_postgis.py.tpl @@ -0,0 +1,20 @@ +from test_sqlite import * # NOQA + +DATABASES = { + "default": { + "ENGINE": "django.contrib.gis.db.backends.postgis", + "USER": "user", + "NAME": "geodjango", + "PASSWORD": "postgres", + "HOST": "localhost", + "PORT": 5432, + }, + "other": { + "ENGINE": "django.contrib.gis.db.backends.postgis", + "USER": "user", + "NAME": "geodjango2", + "PASSWORD": "postgres", + "HOST": "localhost", + "PORT": 5432, + }, +} diff --git a/.github/workflows/postgis.yml b/.github/workflows/postgis.yml new file mode 100644 index 0000000000..940f7d4248 --- /dev/null +++ b/.github/workflows/postgis.yml @@ -0,0 +1,61 @@ +name: GeoDjango Tests + +on: + pull_request: + types: [labeled, synchronize, opened, reopened] + paths-ignore: + - 'docs/**' + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + postgis-latest: + if: contains(github.event.pull_request.labels.*.name, 'geodjango') + runs-on: ubuntu-latest + name: Latest PostGIS + services: + postgres: + image: postgis/postgis:latest + env: + POSTGRES_DB: geodjango + POSTGRES_USER: user + POSTGRES_PASSWORD: postgres + ports: + - 5432:5432 + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.13' + cache: 'pip' + cache-dependency-path: 'tests/requirements/py3.txt' + - name: Install libmemcached-dev for pylibmc + run: sudo apt install libmemcached-dev + - name: Install geospatial dependencies + run: sudo apt install -y binutils libproj-dev gdal-bin + - name: Print PostGIS versions + env: + POSTGRES_DB: geodjango + POSTGRES_USER: user + POSTGRES_PASSWORD: postgres + run: | + PGPASSWORD=$POSTGRES_PASSWORD psql -U $POSTGRES_USER -d $POSTGRES_DB -h localhost -c "SELECT PostGIS_full_version();" + - name: Install and upgrade packaging tools + run: python -m pip install --upgrade pip setuptools wheel + - run: python -m pip install -r tests/requirements/py3.txt -r tests/requirements/postgres.txt -e . + - name: Create PostgreSQL settings file + run: mv ./.github/workflows/data/test_postgis.py.tpl ./tests/test_postgis.py + - name: Run PostGIS tests + run: python -Wall tests/runtests.py -v2 --settings=test_postgis