Skip to content

Commit bd6ca6a

Browse files
committed
test smkoe dep and fix test.sh path
1 parent 4891898 commit bd6ca6a

File tree

1 file changed

+131
-124
lines changed

1 file changed

+131
-124
lines changed
Lines changed: 131 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
name: GeoNode Test Suites
22

3-
on: [push, workflow_dispatch]
3+
on:
4+
push:
5+
branches:
6+
- main
7+
- 3.x
8+
workflow_dispatch:
49

510
jobs:
611
# -------------------------
7-
# BUILD IMMAGINI
12+
# BUILD IMAGES
813
# -------------------------
914
build_images:
1015
name: Build and cache Docker images
@@ -17,7 +22,7 @@ jobs:
1722
- name: Set up Docker Buildx
1823
uses: docker/setup-buildx-action@v3
1924

20-
# Cache condivisa tra job dello stesso run
25+
# Shared cache for all jobs within the same workflow run
2126
- name: Restore Docker build cache
2227
uses: actions/cache@v4
2328
with:
@@ -31,12 +36,13 @@ jobs:
3136
DOCKER_BUILDKIT: 1
3237

3338
# -------------------------
34-
# TEMPLATE PER TUTTI I TEST JOB
39+
# SMOKE TESTS (MUST PASS FIRST)
3540
# -------------------------
3641
geonode_test_suite_smoke:
3742
name: Smoke Tests
3843
needs: build_images
3944
runs-on: ubuntu-22.04
45+
4046
steps:
4147
- uses: actions/checkout@v4
4248
- uses: actions/cache@v4
@@ -69,7 +75,7 @@ jobs:
6975
docker compose --env-file .env_test -f docker-compose-test.yml exec db psql -U postgres -d test_geonode -c \
7076
"CREATE EXTENSION IF NOT EXISTS postgis;"
7177
docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -c \
72-
"./tests/test.sh geonode.tests.smoke geonode.tests.test_rest_api geonode.tests.test_search geonode.tests.test_utils geonode.tests.test_headers"
78+
"cd /usr/src/geonode && bash ./tests/test.sh geonode.tests.smoke geonode.tests.test_rest_api geonode.tests.test_search geonode.tests.test_utils geonode.tests.test_headers"
7379
7480
- name: Upload coverage to Codecov
7581
run: |
@@ -91,112 +97,94 @@ jobs:
9197
# -------------------------
9298
# MAIN TEST SUITE
9399
# -------------------------
94-
geonode_test_suite:
95-
name: Main Tests
96-
needs: build_images
97-
runs-on: ubuntu-22.04
98-
steps:
99-
- uses: actions/checkout@v4
100-
- uses: actions/cache@v4
101-
with:
102-
path: /tmp/.buildx-cache
103-
key: geonode-cache-${{ github.run_id }}
104-
105-
- name: Start stack
106-
run: docker compose --env-file .env_test -f docker-compose-test.yml up -d
107-
108-
- name: Wait for services
109-
run: |
110-
n=1; m=10
111-
until [ $n -gt $m ]; do
112-
sleep 60
113-
DJANGO_STATUS=$(docker inspect --format='{{.State.Health.Status}}' django4geonode)
114-
GEOSERVER_STATUS=$(docker inspect --format='{{.State.Health.Status}}' geoserver4geonode)
115-
echo "Waited $n min (out of $m)"
116-
if [[ $DJANGO_STATUS == healthy && $GEOSERVER_STATUS == healthy ]]; then break; fi
117-
docker ps
118-
n=$((n+1))
119-
done
120-
[[ $DJANGO_STATUS == healthy && $GEOSERVER_STATUS == healthy ]]
121-
122-
- name: Run main test suite
123-
run: |
124-
docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -c \
125-
"./tests/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 and 'upload' not in a]))\") geonode.thumbs.tests geonode.people.tests geonode.people.socialaccount.providers.geonode_openid_connect.tests"
126-
127-
- name: Upload coverage
128-
run: |
129-
docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -c \
130-
"bash <(curl -s https://codecov.io/bash) -t 2c0e7780-1640-45f0-93a3-e103b057d8c8 -F main_tests"
131-
132-
- name: Stop stack
133-
if: always()
134-
run: docker compose --env-file .env_test -f docker-compose-test.yml down -v
135-
136-
# -------------------------
137-
# SECURITY TESTS
138-
# -------------------------
139-
geonode_test_security:
140-
name: Security Tests
141-
needs: build_images
142-
runs-on: ubuntu-22.04
143-
steps:
144-
- uses: actions/checkout@v4
145-
- uses: actions/cache@v4
146-
with:
147-
path: /tmp/.buildx-cache
148-
key: geonode-cache-${{ github.run_id }}
149-
- run: docker compose --env-file .env_test -f docker-compose-test.yml up -d
150-
- run: |
151-
docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -c \
152-
"./tests/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]))\")"
153-
- run: docker compose --env-file .env_test -f docker-compose-test.yml down -v
154-
if: always()
155-
156-
# -------------------------
157-
# GIS BACKEND TESTS
158-
# -------------------------
159-
geonode_test_gis_backend:
160-
name: GIS Backend Tests
161-
needs: build_images
162-
runs-on: ubuntu-22.04
163-
steps:
164-
- uses: actions/checkout@v4
165-
- uses: actions/cache@v4
166-
with:
167-
path: /tmp/.buildx-cache
168-
key: geonode-cache-${{ github.run_id }}
169-
- run: docker compose --env-file .env_test -f docker-compose-test.yml up -d
170-
- run: docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -c \
171-
"./tests/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]))\")"
172-
- run: docker compose --env-file .env_test -f docker-compose-test.yml down -v
173-
if: always()
100+
# geonode_test_suite:
101+
# name: Main Tests
102+
# needs: [build_images, geonode_test_suite_smoke] # run only if smoke passed
103+
# runs-on: ubuntu-22.04
104+
#
105+
# steps:
106+
# - uses: actions/checkout@v4
107+
# - uses: actions/cache@v4
108+
# with:
109+
# path: /tmp/.buildx-cache
110+
# key: geonode-cache-${{ github.run_id }}
111+
#
112+
# - name: Start stack
113+
# run: docker compose --env-file .env_test -f docker-compose-test.yml up -d
114+
#
115+
# - name: Wait for services
116+
# run: |
117+
# n=1; m=10
118+
# until [ $n -gt $m ]; do
119+
# sleep 60
120+
# DJANGO_STATUS=$(docker inspect --format='{{.State.Health.Status}}' django4geonode)
121+
# GEOSERVER_STATUS=$(docker inspect --format='{{.State.Health.Status}}' geoserver4geonode)
122+
# echo "Waited $n min (out of $m)"
123+
# if [[ $DJANGO_STATUS == healthy && $GEOSERVER_STATUS == healthy ]]; then break; fi
124+
# docker ps
125+
# n=$((n+1))
126+
# done
127+
# [[ $DJANGO_STATUS == healthy && $GEOSERVER_STATUS == healthy ]]
128+
#
129+
# - name: Run main test suite
130+
# run: |
131+
# docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -c \
132+
# "./tests/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 and 'upload' not in a]))\") geonode.thumbs.tests geonode.people.tests geonode.people.socialaccount.providers.geonode_openid_connect.tests"
133+
#
134+
# - name: Upload coverage
135+
# run: |
136+
# docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -c \
137+
# "bash <(curl -s https://codecov.io/bash) -t 2c0e7780-1640-45f0-93a3-e103b057d8c8 -F main_tests"
138+
#
139+
# - name: Stop stack
140+
# if: always()
141+
# run: docker compose --env-file .env_test -f docker-compose-test.yml down -v
142+
143+
# # -------------------------
144+
# # SECURITY TESTS
145+
# # -------------------------
146+
# geonode_test_security:
147+
# name: Security Tests
148+
# needs: [build_images, geonode_test_suite_smoke]
149+
# runs-on: ubuntu-22.04
150+
# steps:
151+
# - uses: actions/checkout@v4
152+
# - uses: actions/cache@v4
153+
# with:
154+
# path: /tmp/.buildx-cache
155+
# key: geonode-cache-${{ github.run_id }}
156+
# - run: docker compose --env-file .env_test -f docker-compose-test.yml up -d
157+
# - run: |
158+
# docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -c \
159+
# "./tests/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]))\")"
160+
# - run: docker compose --env-file .env_test -f docker-compose-test.yml down -v
161+
# if: always()
162+
#
163+
# # -------------------------
164+
# # GIS BACKEND TESTS
165+
# # -------------------------
166+
# geonode_test_gis_backend:
167+
# name: GIS Backend Tests
168+
# needs: [build_images, geonode_test_suite_smoke]
169+
# runs-on: ubuntu-22.04
170+
# steps:
171+
# - uses: actions/checkout@v4
172+
# - uses: actions/cache@v4
173+
# with:
174+
# path: /tmp/.buildx-cache
175+
# key: geonode-cache-${{ github.run_id }}
176+
# - run: docker compose --env-file .env_test -f docker-compose-test.yml up -d
177+
# - run: docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -c \
178+
# "./tests/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]))\")"
179+
# - run: docker compose --env-file .env_test -f docker-compose-test.yml down -v
180+
# if: always()
174181

175182
# -------------------------
176183
# REST API TESTS
177184
# -------------------------
178185
geonode_test_rest_apis:
179186
name: REST API Tests
180-
needs: build_images
181-
runs-on: ubuntu-22.04
182-
steps:
183-
- uses: actions/checkout@v4
184-
- uses: actions/cache@v4
185-
with:
186-
path: /tmp/.buildx-cache
187-
key: geonode-cache-${{ github.run_id }}
188-
- run: docker compose --env-file .env_test -f docker-compose-test.yml up -d
189-
- run: docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -c \
190-
"./tests/test.sh geonode.api.tests geonode.base.api.tests geonode.layers.api.tests geonode.maps.api.tests geonode.documents.api.tests geonode.geoapps.api.tests"
191-
- run: docker compose --env-file .env_test -f docker-compose-test.yml down -v
192-
if: always()
193-
194-
# -------------------------
195-
# CSW TESTS
196-
# -------------------------
197-
geonode_test_csw:
198-
name: CSW Tests
199-
needs: build_images
187+
needs: [build_images, geonode_test_suite_smoke]
200188
runs-on: ubuntu-22.04
201189
steps:
202190
- uses: actions/checkout@v4
@@ -206,25 +194,44 @@ jobs:
206194
key: geonode-cache-${{ github.run_id }}
207195
- run: docker compose --env-file .env_test -f docker-compose-test.yml up -d
208196
- run: docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -c \
209-
"./tests/test.sh geonode.tests.csw geonode.catalogue.backends.tests"
197+
"cd /usr/src/geonode && bash ./tests/test.sh geonode.api.tests geonode.base.api.tests geonode.layers.api.tests geonode.maps.api.tests geonode.documents.api.tests geonode.geoapps.api.tests"
210198
- run: docker compose --env-file .env_test -f docker-compose-test.yml down -v
211199
if: always()
212200

213-
# -------------------------
214-
# UPLOAD TESTS
215-
# -------------------------
216-
geonode_upload:
217-
name: Upload Tests
218-
needs: build_images
219-
runs-on: ubuntu-22.04
220-
steps:
221-
- uses: actions/checkout@v4
222-
- uses: actions/cache@v4
223-
with:
224-
path: /tmp/.buildx-cache
225-
key: geonode-cache-${{ github.run_id }}
226-
- run: docker compose --env-file .env_test -f docker-compose-test.yml up -d
227-
- run: docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -c \
228-
"./tests/test.sh geonode.upload"
229-
- run: docker compose --env-file .env_test -f docker-compose-test.yml down -v
230-
if: always()
201+
# # -------------------------
202+
# # CSW TESTS
203+
# # -------------------------
204+
# geonode_test_csw:
205+
# name: CSW Tests
206+
# needs: [build_images, geonode_test_suite_smoke]
207+
# runs-on: ubuntu-22.04
208+
# steps:
209+
# - uses: actions/checkout@v4
210+
# - uses: actions/cache@v4
211+
# with:
212+
# path: /tmp/.buildx-cache
213+
# key: geonode-cache-${{ github.run_id }}
214+
# - run: docker compose --env-file .env_test -f docker-compose-test.yml up -d
215+
# - run: docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -c \
216+
# "./tests/test.sh geonode.tests.csw geonode.catalogue.backends.tests"
217+
# - run: docker compose --env-file .env_test -f docker-compose-test.yml down -v
218+
# if: always()
219+
#
220+
# # -------------------------
221+
# # UPLOAD TESTS
222+
# # -------------------------
223+
# geonode_upload:
224+
# name: Upload Tests
225+
# needs: [build_images, geonode_test_suite_smoke]
226+
# runs-on: ubuntu-22.04
227+
# steps:
228+
# - uses: actions/checkout@v4
229+
# - uses: actions/cache@v4
230+
# with:
231+
# path: /tmp/.buildx-cache
232+
# key: geonode-cache-${{ github.run_id }}
233+
# - run: docker compose --env-file .env_test -f docker-compose-test.yml up -d
234+
# - run: docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -c \
235+
# "./tests/test.sh geonode.upload"
236+
# - run: docker compose --env-file .env_test -f docker-compose-test.yml down -v
237+
# if: always()

0 commit comments

Comments
 (0)