Showing 1,112 changed files with 246,750 additions and 194,730 deletions.
143 changes: 89 additions & 54 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ jobs:
build:

docker:
- image: circleci/buildpack-deps:trusty
- image: circleci/buildpack-deps:focal

parameters:
load_docker_cache:
Expand All @@ -26,16 +26,16 @@ jobs:
steps:
- restore_cache:
keys:
- v1-docker-images-{{ .Branch }}
- v2-docker-images-{{ .Branch }}
- run:
name: Load Docker layers cache
command: |
docker load -i ~/docker-layers-cache.tar || true
- run:
name: Build the stack
command: docker-compose -f docker-compose.yml build
working_directory: scripts/spcgeonode/
command: docker-compose -f docker-compose-test.yml build --no-cache
working_directory: ./

- when:
condition: <<parameters.save_docker_cache>>
Expand All @@ -47,26 +47,26 @@ jobs:
docker save -o ~/docker-layers-cache.tar $(docker images -a --format "{{.ID}}")
when: always
- save_cache:
key: v1-docker-images-{{ .Branch }}-{{ epoch }}
key: v2-docker-images-{{ .Branch }}-{{ epoch }}
paths:
- ~/docker-layers-cache.tar
when: always

- run:
name: Start the stack
command: docker-compose -f docker-compose.yml up -d --build
working_directory: scripts/spcgeonode/
command: docker-compose -f docker-compose-test.yml up -d
working_directory: ./

- run:
name: Wait for everything to start...
command: |
n=1
m=60
m=10
until [ $n -gt $m ]
do
sleep 60
DJANGO_STATUS=$(docker inspect --format="{{json .State.Health.Status}}" spcgeonode_django_1)
GEOSERVER_STATUS=$(docker inspect --format="{{json .State.Health.Status}}" spcgeonode_geoserver_1)
DJANGO_STATUS=$(docker inspect --format="{{json .State.Health.Status}}" django4geonode)
GEOSERVER_STATUS=$(docker inspect --format="{{json .State.Health.Status}}" geoserver4geonode)
echo ""
echo "Waited $n min (out of $m min)"
if [[ $DJANGO_STATUS == '"healthy"' ]] && [[ $GEOSERVER_STATUS == '"healthy"' ]]; then
Expand All @@ -85,12 +85,12 @@ jobs:

- run:
name: Geoserver logs (debug)
command: docker logs spcgeonode_geoserver_1 --tail 500
command: docker logs geoserver4geonode --tail 500
when: on_fail

- run:
name: Django logs (debug)
command: docker logs spcgeonode_django_1 --tail 500
command: docker logs django4geonode --tail 500
when: on_fail

- when:
Expand All @@ -99,61 +99,96 @@ jobs:
- run:
name: Run test suite
command: |
docker-compose -f docker-compose.yml exec django bash -c 'echo "Running <<parameters.test_suite>>"'
docker-compose -f docker-compose.yml exec postgres psql -U postgres -c 'SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid <> pg_backend_pid();'
docker-compose -f docker-compose.yml exec postgres createdb -U postgres -T postgres test_postgres
docker-compose -f docker-compose.yml run --rm django bash -c 'ASYNC_SIGNALS=False python manage.py test -v 3 --keepdb <<parameters.test_suite>>'
working_directory: scripts/spcgeonode/
docker-compose -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 -f docker-compose-test.yml exec db createdb -U postgres -T postgres test_postgres
docker-compose -f docker-compose-test.yml exec db createdb -U postgres -T postgres test_geonode
docker-compose -f docker-compose-test.yml exec db createdb -U postgres -T postgres test_geonode_data
docker-compose -f docker-compose-test.yml exec db psql -U postgres -d test_geonode -c 'CREATE EXTENSION IF NOT EXISTS postgis;'
docker-compose -f docker-compose-test.yml exec db psql -U postgres -d test_geonode_data -c 'CREATE EXTENSION IF NOT EXISTS postgis;'
docker-compose -f docker-compose-test.yml exec django bash -c '<<parameters.test_suite>>'
working_directory: ./
no_output_timeout: 10m
- run:
name: Run pep8 checks
command: |
docker-compose -f docker-compose-test.yml exec django bash -c 'flake8 geonode'
docker-compose -f docker-compose-test.yml exec django bash -c 'codecov; bash <(curl -s https://codecov.io/bash) -t 2c0e7780-1640-45f0-93a3-e103b057d8c8'
working_directory: ./

workflows:

commit:
jobs:
- build:
name: setup
load_docker_cache: true
save_docker_cache: true
test_suite: 'geonode.tests.smoke'
name: geonode_test_suite_smoke
load_docker_cache: false
save_docker_cache: false
test_suite: ./test.sh geonode.tests.smoke geonode.tests.test_message_notifications geonode.tests.test_rest_api geonode.tests.test_search geonode.tests.test_utils
- build:
name: tests_integration
load_docker_cache: true
name: geonode_test_suite
load_docker_cache: false
save_docker_cache: false
test_suite: 'geonode.tests.integration'
requires:
- setup
test_suite: ./test.sh $(python -c "import sys;from geonode import settings;sys.stdout.write('\'' '\''.join([a+'\''.tests'\'' for a in settings.GEONODE_APPS if '\''security'\'' not in a and '\''geoserver'\'' not in a]))") geonode.thumbs.tests
- build:
name: tests_core
load_docker_cache: true
name: geonode_test_security
load_docker_cache: false
save_docker_cache: false
test_suite: $(python -c "import sys;from geonode import settings;sys.stdout.write('\'' '\''.join([a+'\''.tests'\'' for a in settings.GEONODE_CORE_APPS]))")
requires:
- setup
test_suite: ./test.sh $(python -c "import sys;from geonode import settings;sys.stdout.write('\'' '\''.join([a+'\''.tests'\'' for a in settings.GEONODE_APPS if '\''security'\'' in a]))")
- build:
name: tests_internal
load_docker_cache: true
name: geonode_test_gis_backend
load_docker_cache: false
save_docker_cache: false
test_suite: $(python -c "import sys;from geonode import settings;sys.stdout.write('\'' '\''.join([a+'\''.tests'\'' for a in settings.GEONODE_INTERNAL_APPS]))")
requires:
- setup
test_suite: ./test.sh $(python -c "import sys;from geonode import settings;sys.stdout.write('\'' '\''.join([a+'\''.tests'\'' for a in settings.GEONODE_APPS if '\''geoserver'\'' in a]))")
- build:
name: tests_contrib
load_docker_cache: true
name: geonode_test_rest_apis
load_docker_cache: false
save_docker_cache: false
test_suite: $(python -c "import sys;from geonode import settings;sys.stdout.write('\'' '\''.join([a+'\''.tests'\'' for a in settings.GEONODE_CONTRIB_APPS]))")
requires:
- setup

nightly:
triggers:
- schedule:
cron: "0 0 * * *"
filters:
branches:
only:
- spcgeonode-release
- spcgeonode
jobs:
test_suite: ./test.sh geonode.base.api.tests geonode.layers.api.tests geonode.maps.api.tests geonode.documents.api.tests geonode.geoapps.api.tests geonode.upload.api.tests
- build:
name: geonode_test_csw
load_docker_cache: false
save_docker_cache: false
test_suite: ./test.sh geonode.catalogue.backends.tests
- build:
name: geonode_test_csw_integration
load_docker_cache: false
save_docker_cache: true
test_suite: geonode.tests.smoke geonode.tests.integration $(python -c "import sys;from geonode import settings;sys.stdout.write('\'' '\''.join([a+'\''.tests'\'' for a in settings.GEONODE_APPS]))")
save_docker_cache: false
test_suite: ./test_csw.sh

# TODO
# - build:
# name: geonode_test_integration_upload
# load_docker_cache: true
# save_docker_cache: false
# test_suite: ./test_upload.sh
# requires:
# - geonode_test_suite_smoke
# - build:
# name: tests_integration
# load_docker_cache: true
# save_docker_cache: false
# test_suite: 'geonode.tests.integration'
# requires:
# - geonode_test_suite_smoke
# - build:
# name: tests_geoserver_integration
# load_docker_cache: true
# save_docker_cache: false
# test_suite: 'geonode.geoserver.tests.integration geonode.monitoring.tests.integration'
# requires:
# - geonode_test_suite_smoke

# nightly:
# triggers:
# - schedule:
# cron: "0 0 * * *"
# filters:
# branches:
# only:
# - master
# - 3.x
# jobs:
# - build:
# load_docker_cache: false
# save_docker_cache: true
# test_suite: geonode.tests.smoke geonode.tests.integration $(python -c "import sys;from geonode import settings;sys.stdout.write('\'' '\''.join([a+'\''.tests'\'' for a in settings.GEONODE_APPS]))")
31 changes: 29 additions & 2 deletions .clabot
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,36 @@
"giohappy",
"bieganowski",
"petrus7",
"mattiagiupponi",
"Florian Hoedt",
"abulojoshua1",
"jonnyforestGIS",
"JorgeMartinezG"
]
"JorgeMartinezG",
"admire",
"NyakudyaA",
"jannefleischer",
"AstunTechnology",
"khaledboka",
"breadexperience",
"abyssal",
"Smicattoc",
"niamh-av",
"burner761",
"binkiesbane",
"rukarangi",
"sarahsmi",
"malnajdi",
"etj",
"allyoucanmap",
"marthamareal",
"stefmec",
"ricardogsilva",
"allilou",
"asgharsir",
"meomancer",
"italogsfernandes",
"jcaceres85",
"luorlandini",
"minardimarcello"
]
}
2 changes: 0 additions & 2 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
geonode/uploaded
geonode/qgis_layer
geonode/qgis_tiles
geonode/static_root
geonode/static/.components
geonode/static/node_modules
Expand Down
Loading