tests:
runs-on: ubuntu-20.04
+ strategy:
+ matrix:
+ postgresql: [9.5, 13]
+ include:
+ - postgresql: 9.5
+ postgis: 2.5
+ - postgresql: 13
+ postgis: 3
+
steps:
- uses: actions/checkout@v2
with:
submodules: true
+ - name: Setup PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: '7.4'
+ tools: phpunit, phpcs
+
+ - name: Get Date
+ id: get-date
+ run: |
+ echo "::set-output name=date::$(/bin/date -u "+%Y%W")"
+ shell: bash
+
+ - uses: actions/cache@v2
+ with:
+ path: |
+ {{ github.workspace }}/data/country_osm_grid.sql.gz
+ {{ github.workspace }}/monaco-latest.osm.pbf
+ key: nominatim-data-${{ steps.get-date.outputs.date }}
+
+ - uses: ./.github/actions/setup-postgresql
+ with:
+ postgresql-version: ${{ matrix.postgresql }}
+ postgis-version: ${{ matrix.postgis }}
- uses: ./.github/actions/build-nominatim
- name: Install test prerequsites
- run: |
- sudo apt-get install -y -qq php-codesniffer python3-tidylib
- sudo pip3 install behave nose
+ run: sudo apt-get install -y -qq php-codesniffer pylint python3-pytest python3-behave
- name: PHP linting
run: phpcs --report-width=120 .
- - name: Setup database
- run: |
- sudo systemctl start postgresql
- sudo -u postgres createuser -S www-data
- sudo -u postgres createuser -s runner
- shell: bash
+ - name: Python linting
+ run: pylint nominatim
- name: PHP unit tests
run: phpunit ./
working-directory: test/php
+ - name: Python unit tests
+ run: py.test-3 test/python
+
- name: BDD tests
- run: behave -DREMOVE_TEMPLATE=1 --format=progress3 db osm2pgsql
+ run: behave -DREMOVE_TEMPLATE=1 --format=progress3
working-directory: test/bdd
import:
with:
submodules: true
- - uses: ./.github/actions/build-nominatim
-
- - name: Download test extract
- run: wget --no-verbose https://download.geofabrik.de/europe/monaco-latest.osm.pbf
-
- - name: Setup database
+ - name: Get Date
+ id: get-date
run: |
- sudo systemctl start postgresql
- sudo -u postgres createuser -S www-data
- sudo -u postgres createuser -s runner
+ echo "::set-output name=date::$(/bin/date -u "+%Y%W")"
shell: bash
- - name: Create configuartion
+ - uses: actions/cache@v2
+ with:
+ path: |
+ {{ github.workspace }}/data/country_osm_grid.sql.gz
+ {{ github.workspace }}/monaco-latest.osm.pbf
+ key: nominatim-data-${{ steps.get-date.outputs.date }}
+
+ - uses: ./.github/actions/setup-postgresql
+ with:
+ postgresql-version: 13
+ postgis-version: 3
+ - uses: ./.github/actions/build-nominatim
+
+ - name: Create configuration
run: |
- echo '<?php' > settings/local.php
- echo " @define('CONST_Pyosmium_Binary', '/usr/lib/python3-pyosmium/pyosmium-get-changes');" >> settings/local.php
+ echo "NOMINATIM_PYOSMIUM_BINARY=/usr/lib/python3-pyosmium/pyosmium-get-changes" >> .env
working-directory: build
+ - name: Download import data
+ run: |
+ if [ ! -f monaco-latest.osm.pbf ]; then
+ wget --no-verbose https://download.geofabrik.de/europe/monaco-latest.osm.pbf
+ fi
+ shell: bash
+
- name: Import
- run: php ./utils/setup.php --osm-file ../monaco-latest.osm.pbf --osm2pgsql-cache 500 --all
+ run: ./nominatim import --osm-file ../monaco-latest.osm.pbf
working-directory: build
- name: Import special phrases
- run: php ./utils/specialphrases.php --wiki-import | psql -d nominatim
+ run: ./nominatim special-phrases --from-wiki | psql -d nominatim
working-directory: build
- name: Check import
- run: php ./utils/check_import_finished.php
+ run: ./nominatim check-database
working-directory: build
- name: Run update
run: |
- php ./utils/update.php --init-updates
- php ./utils/update.php --import-osmosis
+ ./nominatim replication --init
+ ./nominatim replication --once
+ working-directory: build
+
+ - name: Run reverse-only import
+ run : |
+ dropdb nominatim
+ php ./nominatim import --osm-file ../monaco-latest.osm.pbf --reverse-only
working-directory: build