debug docker images #15
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: GeoNode Test Suites | |
| on: [push, workflow_dispatch] | |
| jobs: | |
| # ------------------------------------------------- | |
| # BUILD DOCKER IMAGES AND SHARE AS ARTIFACTS | |
| # ------------------------------------------------- | |
| build_images: | |
| name: Build and export Docker images | |
| 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: List built images | |
| run: docker images ls | |
| # - name: Save built Docker images | |
| # run: | | |
| # mkdir -p docker_images | |
| # docker save -o docker_images/django.tar geonode/geonode:latest-ubuntu-24.04 | |
| # docker save -o docker_images/geoserver.tar geonode/geoserver:2.24.4-latest | |
| # docker save -o docker_images/db.tar geonode/postgis:15-3.5-latest || true | |
| # | |
| # - name: Upload Docker images as artifact | |
| # uses: actions/upload-artifact@v4 | |
| # with: | |
| # name: docker-images | |
| # path: docker_images | |
| # retention-days: 1 # automatically expires after 1 day | |
| # | |
| # geonode_test_suite_smoke: | |
| # name: Test tests location | |
| # needs: build_images | |
| # runs-on: ubuntu-24.04 | |
| # | |
| # steps: | |
| # - name: Checkout repository | |
| # uses: actions/checkout@v4 | |
| # | |
| # - name: Download built Docker images | |
| # uses: actions/download-artifact@v4 | |
| # with: | |
| # name: docker-images | |
| # path: docker_images | |
| # | |
| # - name: Load Docker images | |
| # run: | | |
| # docker load -i docker_images/django.tar | |
| # docker load -i docker_images/geoserver.tar | |
| # docker load -i docker_images/db.tar || true | |
| # docker load -i docker_images/celery.tar || true | |
| # | |
| # - 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: Run smoke tests | |
| # run: | | |
| # docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -lc \ | |
| # "pwd && ls -all /usr/src/geonode" | |
| # 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 }} | |
| # # ------------------------------------------------- | |
| # # SMOKE TESTS (BLOCKING) | |
| # # ------------------------------------------------- | |
| # geonode_test_suite_smoke: | |
| # name: Smoke Tests | |
| # needs: build_images | |
| # runs-on: ubuntu-24.04 | |
| # | |
| # steps: | |
| # - name: Checkout repository | |
| # uses: actions/checkout@v4 | |
| # | |
| # - name: Download built Docker images | |
| # uses: actions/download-artifact@v4 | |
| # with: | |
| # name: docker-images | |
| # path: docker_images | |
| # | |
| # - name: Load Docker images | |
| # run: | | |
| # docker load -i docker_images/django.tar | |
| # docker load -i docker_images/geoserver.tar | |
| # docker load -i docker_images/db.tar || true | |
| # docker load -i docker_images/celery.tar || true | |
| # | |
| # - 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: Run smoke tests | |
| # run: | | |
| # docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -lc \ | |
| # "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" | |
| # 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 }} | |
| # | |
| # | |
| # # ------------------------------------------------- | |
| # # OTHER TEST SUITES (DEPEND ON SMOKE) | |
| # # ------------------------------------------------- | |
| # geonode_test_suite: | |
| # name: Main Tests | |
| # needs: [build_images, geonode_test_suite_smoke] | |
| # runs-on: ubuntu-24.04 | |
| # | |
| # steps: | |
| # - uses: actions/checkout@v4 | |
| # - uses: actions/download-artifact@v4 | |
| # with: | |
| # name: docker-images | |
| # path: docker_images | |
| # - run: | | |
| # docker load -i docker_images/django.tar | |
| # docker load -i docker_images/geoserver.tar | |
| # docker load -i docker_images/db.tar || true | |
| # docker load -i docker_images/celery.tar || true | |
| # - run: docker compose --env-file .env_test -f docker-compose-test.yml up -d | |
| # - run: | | |
| # docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -lc \ | |
| # "cd /usr/src/geonode && bash 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" | |
| # - run: docker compose --env-file .env_test -f docker-compose-test.yml down -v | |
| # if: always() | |
| # | |
| # | |
| # geonode_test_security: | |
| # name: Security Tests | |
| # needs: [build_images, geonode_test_suite_smoke] | |
| # runs-on: ubuntu-24.04 | |
| # steps: | |
| # - uses: actions/checkout@v4 | |
| # - uses: actions/download-artifact@v4 | |
| # with: | |
| # name: docker-images | |
| # path: docker_images | |
| # - run: | | |
| # docker load -i docker_images/django.tar | |
| # docker load -i docker_images/geoserver.tar | |
| # - run: docker compose --env-file .env_test -f docker-compose-test.yml up -d | |
| # - run: | | |
| # docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -lc \ | |
| # "cd /usr/src/geonode && bash 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]))\")" | |
| # - run: docker compose --env-file .env_test -f docker-compose-test.yml down -v | |
| # if: always() | |
| # | |
| # | |
| # geonode_test_gis_backend: | |
| # name: GIS Backend Tests | |
| # needs: [build_images, geonode_test_suite_smoke] | |
| # runs-on: ubuntu-24.04 | |
| # steps: | |
| # - uses: actions/checkout@v4 | |
| # - uses: actions/download-artifact@v4 | |
| # with: | |
| # name: docker-images | |
| # path: docker_images | |
| # - run: | | |
| # docker load -i docker_images/django.tar | |
| # docker load -i docker_images/geoserver.tar | |
| # - run: docker compose --env-file .env_test -f docker-compose-test.yml up -d | |
| # - run: | | |
| # docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -lc \ | |
| # "cd /usr/src/geonode && bash 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]))\")" | |
| # - run: docker compose --env-file .env_test -f docker-compose-test.yml down -v | |
| # if: always() | |
| # | |
| # | |
| # geonode_test_rest_apis: | |
| # name: REST API Tests | |
| # needs: [build_images, geonode_test_suite_smoke] | |
| # runs-on: ubuntu-24.04 | |
| # steps: | |
| # - uses: actions/checkout@v4 | |
| # - uses: actions/download-artifact@v4 | |
| # with: | |
| # name: docker-images | |
| # path: docker_images | |
| # - run: | | |
| # docker load -i docker_images/django.tar | |
| # docker load -i docker_images/geoserver.tar | |
| # - run: docker compose --env-file .env_test -f docker-compose-test.yml up -d | |
| # - run: | | |
| # docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -lc \ | |
| # "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" | |
| # - run: docker compose --env-file .env_test -f docker-compose-test.yml down -v | |
| # if: always() | |
| # | |
| # | |
| # geonode_test_csw: | |
| # name: CSW Tests | |
| # needs: [build_images, geonode_test_suite_smoke] | |
| # runs-on: ubuntu-24.04 | |
| # steps: | |
| # - uses: actions/checkout@v4 | |
| # - uses: actions/download-artifact@v4 | |
| # with: | |
| # name: docker-images | |
| # path: docker_images | |
| # - run: | | |
| # docker load -i docker_images/django.tar | |
| # docker load -i docker_images/geoserver.tar | |
| # - run: docker compose --env-file .env_test -f docker-compose-test.yml up -d | |
| # - run: | | |
| # docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -lc \ | |
| # "cd /usr/src/geonode && bash tests/test.sh geonode.tests.csw geonode.catalogue.backends.tests" | |
| # - run: docker compose --env-file .env_test -f docker-compose-test.yml down -v | |
| # if: always() | |
| # | |
| # | |
| # geonode_upload: | |
| # name: Upload Tests | |
| # needs: [build_images, geonode_test_suite_smoke] | |
| # runs-on: ubuntu-24.04 | |
| # steps: | |
| # - uses: actions/checkout@v4 | |
| # - uses: actions/download-artifact@v4 | |
| # with: | |
| # name: docker-images | |
| # path: docker_images | |
| # - run: | | |
| # docker load -i docker_images/django.tar | |
| # docker load -i docker_images/geoserver.tar | |
| # - run: docker compose --env-file .env_test -f docker-compose-test.yml up -d | |
| # - run: | | |
| # docker compose --env-file .env_test -f docker-compose-test.yml exec django bash -lc \ | |
| # "cd /usr/src/geonode && bash tests/test.sh geonode.upload" | |
| # - run: docker compose --env-file .env_test -f docker-compose-test.yml down -v | |
| # if: always() | |
| # | |
| # | |
| # # ------------------------------------------------- | |
| # # CLEANUP JOB: REMOVE ALL ARTIFACTS AT THE END | |
| # # ------------------------------------------------- | |
| # cleanup_artifacts: | |
| # name: Cleanup Artifacts | |
| # needs: | |
| # - geonode_test_suite_smoke | |
| # - geonode_test_suite | |
| # - geonode_test_security | |
| # - geonode_test_gis_backend | |
| # - geonode_test_rest_apis | |
| # - geonode_test_csw | |
| # - geonode_upload | |
| # runs-on: ubuntu-24.04 | |
| # if: always() | |
| # steps: | |
| # - name: Delete all uploaded artifacts | |
| # uses: geekyeggo/delete-artifact@v5 | |
| # with: | |
| # failOnError: false |