Replaced broken redoc link by working link #4020
Workflow file for this run
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: Build | |
| on: | |
| push: | |
| paths-ignore: | |
| - '**.md' | |
| - 'docs/**' | |
| pull_request: | |
| branches: | |
| - master | |
| paths-ignore: | |
| - '!**.md' | |
| - 'docs/**' | |
| release: | |
| types: | |
| - released | |
| jobs: | |
| main: | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| include: | |
| - python-version: '3.12' | |
| env: | |
| PYGEOAPI_CONFIG: "$(pwd)/pygeoapi-config.yml" | |
| services: | |
| postgres: | |
| image: postgis/postgis:14-3.2 | |
| ports: | |
| - 5432:5432 | |
| env: | |
| POSTGRES_DB: test | |
| POSTGRES_PASSWORD: ${{ secrets.DatabasePassword || 'postgres' }} | |
| steps: | |
| - name: Pre-pull Docker Images | |
| run: | | |
| docker pull container-registry.oracle.com/database/express:21.3.0-xe & | |
| docker pull appropriate/curl:latest & | |
| docker pull elasticsearch:8.17.0 & | |
| docker pull opensearchproject/opensearch:2.18.0 & | |
| docker pull mongo:8.0.4 & | |
| docker pull ghcr.io/cgs-earth/sensorthings-action:0.1.0 & | |
| docker pull postgis/postgis:14-3.2 & | |
| - name: Clear up GitHub runner diskspace | |
| run: | | |
| echo "Space before" | |
| df -h / | |
| sudo rm -rf /usr/local/lib/android | |
| sudo rm -rf /usr/share/dotnet | |
| echo "Space after" | |
| df -h / | |
| - name: Chown user | |
| run: | | |
| sudo chown -R $USER:$USER $GITHUB_WORKSPACE | |
| - uses: actions/checkout@master | |
| - uses: actions/setup-python@v5 | |
| name: Setup Python ${{ matrix.python-version }} | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Configure sysctl limits | |
| run: | | |
| sudo swapoff -a | |
| sudo sysctl -w vm.swappiness=1 | |
| sudo sysctl -w fs.file-max=262144 | |
| sudo sysctl -w vm.max_map_count=262144 | |
| - name: "Install and run MySQL 📦" | |
| uses: mirromutth/mysql-action@v1.1 | |
| with: | |
| host port: 3306 | |
| mysql version: '8.0' | |
| mysql database: test_geo_app | |
| mysql root password: mysql # This is a dummy password here; not actually used in prod | |
| mysql user: pygeoapi | |
| mysql password: mysql | |
| - name: Install and run Elasticsearch 📦 | |
| uses: getong/elasticsearch-action@v1.2 | |
| with: | |
| elasticsearch version: '8.17.0' | |
| host port: 9200 | |
| container port: 9200 | |
| host node port: 9300 | |
| node port: 9300 | |
| discovery type: 'single-node' | |
| - name: Install and run OpenSearch 📦 | |
| uses: esmarkowski/opensearch-github-action@v1.0.0 | |
| with: | |
| version: 2.18.0 | |
| security-disabled: true | |
| port: 9209 | |
| - name: Install and run MongoDB | |
| uses: supercharge/mongodb-github-action@1.12.0 | |
| with: | |
| mongodb-version: '8.0.4' | |
| - name: Install and run SensorThingsAPI | |
| uses: cgs-earth/sensorthings-action@v0.1.0 | |
| - name: Install sqlite and gpkg dependencies | |
| uses: awalsh128/cache-apt-pkgs-action@v1.4.3 | |
| with: | |
| packages: libsqlite3-mod-spatialite | |
| version: 4.3.0a-6build1 | |
| - name: Use ubuntuGIS unstable ppa | |
| run: | | |
| sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable | |
| sudo apt update | |
| sudo apt-get install gdal-bin libgdal-dev -y | |
| shell: bash | |
| # - name: Install GDAL with Python bindings | |
| # uses: awalsh128/cache-apt-pkgs-action@v1.4.3 | |
| # with: | |
| # packages: gdal-bin libgdal-dev | |
| # version: 3.11.3 | |
| - name: Install and run Oracle | |
| run: | | |
| docker run -d --name oracledb -e ORACLE_PWD=oracle -v ${{ github.workspace }}/tests/data/oracle/init-db:/opt/oracle/scripts/startup -p 1521:1521 container-registry.oracle.com/database/express:21.3.0-xe | |
| - name: Install requirements 📦 | |
| run: | | |
| pip3 install setuptools | |
| pip3 install -r requirements.txt | |
| pip3 install -r requirements-admin.txt | |
| pip3 install -r requirements-starlette.txt | |
| pip3 install -r requirements-dev.txt | |
| pip3 install -r requirements-provider.txt | |
| pip3 install -r requirements-manager.txt | |
| pip3 install -r requirements-django.txt | |
| pip3 install . | |
| pip3 install GDAL==`gdal-config --version` | |
| - name: setup test data ⚙️ | |
| run: | | |
| python3 tests/load_es_data.py tests/data/ne_110m_populated_places_simple.geojson geonameid | |
| python3 tests/load_opensearch_data.py tests/data/ne_110m_populated_places_simple.geojson geonameid | |
| python3 tests/load_mongo_data.py tests/data/ne_110m_populated_places_simple.geojson | |
| gunzip < tests/data/hotosm_bdi_waterways.sql.gz | psql postgresql://postgres:${{ secrets.DatabasePassword || 'postgres' }}@localhost:5432/test | |
| psql postgresql://postgres:${{ secrets.DatabasePassword || 'postgres' }}@localhost:5432/test -f tests/data/dummy_data.sql | |
| psql postgresql://postgres:${{ secrets.DatabasePassword || 'postgres' }}@localhost:5432/test -f tests/data/dummy_types_data.sql | |
| psql postgresql://postgres:${{ secrets.DatabasePassword || 'postgres' }}@localhost:5432/test -f tests/data/postgres_manager_full_structure.backup.sql | |
| mysql -h 127.0.0.1 -P 3306 -u root -p'mysql' test_geo_app < tests/data/mysql_data.sql | |
| docker ps | |
| python3 tests/load_oracle_data.py | |
| - name: run API tests ⚙️ | |
| run: pytest tests/api --ignore-glob='*_live.py' | |
| - name: run Formatter tests ⚙️ | |
| run: pytest tests/formatter | |
| - name: run Provider tests ⚙️ | |
| env: | |
| POSTGRESQL_PASSWORD: ${{ secrets.DatabasePassword || 'postgres' }} | |
| run: pytest tests/provider --ignore-glob='*_live.py' | |
| - name: run Manager tests ⚙️ | |
| env: | |
| POSTGRESQL_PASSWORD: ${{ secrets.DatabasePassword || 'postgres' }} | |
| run: pytest tests/manager | |
| - name: run other tests ⚙️ | |
| run: pytest tests/other --ignore-glob='*_live.py' | |
| - name: failed tests 🚩 | |
| if: ${{ failure() }} | |
| run: | | |
| pip3 list -v |