Skip to content

rename

rename #24

Workflow file for this run

name: GeoNode Test Suites
on: [push, workflow_dispatch]
jobs:
# -------------------------------------------------
# BUILD DOCKER IMAGES AND SHARE AS ARTIFACTS
# -------------------------------------------------
build_and_test:
name: Build and Run Tests
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Build all services (Docker Compose v2)
run: |
docker compose --env-file .env_test -f docker-compose-test.yml build --progress plain
- name: Start the stack
run: docker compose --env-file .env_test -f docker-compose-test.yml up -d
working-directory: ${{ github.workspace }}
# - name: Wait for services to become healthy
# run: |
# n=1
# m=10
# until [ $n -gt $m ]
# do
# sleep 60
# DJANGO_STATUS=$(docker inspect --format='{{.State.Health.Status}}' django4geonode)
# GEOSERVER_STATUS=$(docker inspect --format='{{.State.Health.Status}}' geoserver4geonode)
# echo "⏳ Waited $n min (of $m)"
# if [[ $DJANGO_STATUS == healthy && $GEOSERVER_STATUS == healthy ]]; then
# break
# fi
# docker ps
# n=$((n+1))
# done
# [[ $DJANGO_STATUS == healthy && $GEOSERVER_STATUS == healthy ]]
# working-directory: ${{ github.workspace }}
- name: Setup test databases
run: |
docker compose --env-file .env_test -f docker-compose-test.yml exec db psql -U postgres -c 'SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid <> pg_backend_pid();'
docker compose --env-file .env_test -f docker-compose-test.yml exec db createdb -U postgres -T postgres test_postgres
docker compose --env-file .env_test -f docker-compose-test.yml exec db createdb -U postgres -T postgres test_geonode
docker compose --env-file .env_test -f docker-compose-test.yml exec db createdb -U postgres -T postgres test_geonode_data
docker compose --env-file .env_test -f docker-compose-test.yml exec db psql -U postgres -d test_geonode -c 'CREATE EXTENSION IF NOT EXISTS postgis;'
docker compose --env-file .env_test -f docker-compose-test.yml exec db psql -U postgres -d test_geonode_data -c 'CREATE EXTENSION IF NOT EXISTS postgis;'
- name: Run tests
run: |
docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -lc '
TESTS=$(python -c "import sys;from geonode import settings;print(' '.join([a+'.tests' for a in settings.GEONODE_APPS]))") &&
./tests/test.sh \
geonode.tests.smoke \
$TESTS \
geonode.tests.test_search \
geonode.tests.test_utils \
geonode.tests.test_headers \
geonode.api.tests \
geonode.tests.test_rest_api \
geonode.base.api.tests \
geonode.layers.api.tests \
geonode.maps.api.tests \
geonode.documents.api.tests \
geonode.geoapps.api.tests \
geonode.upload \
geonode.tests.csw \
geonode.catalogue.backends.tests
'
working-directory: ${{ github.workspace }}
- name: Stop stack (always)
if: always()
run: docker compose --env-file .env_test -f docker-compose-test.yml down -v
working-directory: ${{ github.workspace }}