- uses: actions/checkout@v2
with:
submodules: true
+ path: Nominatim
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '7.4'
- tools: phpunit, phpcs
+ tools: phpunit, phpcs, composer
- name: Get Date
id: get-date
- 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 }}
+ country_grid.sql.gz
+ key: nominatim-country-data-${{ steps.get-date.outputs.date }}
- - uses: ./.github/actions/setup-postgresql
+ - uses: ./Nominatim/.github/actions/setup-postgresql
with:
postgresql-version: ${{ matrix.postgresql }}
postgis-version: ${{ matrix.postgis }}
- - uses: ./.github/actions/build-nominatim
+ - uses: ./Nominatim/.github/actions/build-nominatim
- name: Install test prerequsites
- run: |
- sudo apt-get install -y -qq php-codesniffer
- sudo pip3 install behave
+ run: sudo apt-get install -y -qq php-codesniffer pylint python3-pytest python3-behave python3-pytest-cov php-codecoverage php-xdebug
- name: PHP linting
run: phpcs --report-width=120 .
+ working-directory: Nominatim
+
+ - name: Python linting
+ run: pylint --extension-pkg-whitelist=osmium nominatim
+ working-directory: Nominatim
- name: PHP unit tests
- run: phpunit ./
- working-directory: test/php
+ run: phpunit --coverage-clover ../../coverage-php.xml ./
+ working-directory: Nominatim/test/php
+
+ - name: Python unit tests
+ run: py.test-3 --cov=nominatim --cov-report=xml test/python
+ working-directory: Nominatim
- name: BDD tests
- run: behave -DREMOVE_TEMPLATE=1 --format=progress3
- working-directory: test/bdd
+ run: |
+ behave -DREMOVE_TEMPLATE=1 -DBUILDDIR=$GITHUB_WORKSPACE/build --format=progress3 -DPHPCOV=./cov
+ composer require phpunit/phpcov:7.0.2
+ vendor/bin/phpcov merge --clover ../../coverage-bdd.xml ./cov
+ working-directory: Nominatim/test/bdd
+
+ - name: Upload coverage to Codecov
+ uses: codecov/codecov-action@v1
+ with:
+ files: ./Nominatim/coverage*.xml
+ directory: ./
+ name: codecov-umbrella
+ fail_ci_if_error: true
+ path_to_write_report: ./coverage/codecov_report.txt
+ verbose: true
import:
runs-on: ubuntu-20.04
- uses: actions/checkout@v2
with:
submodules: true
+ path: Nominatim
- name: Get Date
id: get-date
- 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 }}
+ country_grid.sql.gz
+ key: nominatim-country-data-${{ steps.get-date.outputs.date }}
- - uses: ./.github/actions/setup-postgresql
+ - uses: actions/cache@v2
+ with:
+ path: |
+ monaco-latest.osm.pbf
+ key: nominatim-test-data-${{ steps.get-date.outputs.date }}
+
+ - uses: ./Nominatim/.github/actions/setup-postgresql
with:
postgresql-version: 13
postgis-version: 3
- - uses: ./.github/actions/build-nominatim
+ - uses: ./Nominatim/.github/actions/build-nominatim
- - name: Create configuration
- run: |
- echo "NOMINATIM_PYOSMIUM_BINARY=/usr/lib/python3-pyosmium/pyosmium-get-changes" >> .env
- working-directory: build
+ - name: Clean installation
+ run: rm -rf Nominatim build
+ shell: bash
- - name: Download import data
+ - name: Prepare import environment
run: |
if [ ! -f monaco-latest.osm.pbf ]; then
wget --no-verbose https://download.geofabrik.de/europe/monaco-latest.osm.pbf
fi
+ mkdir data-env
+ cd data-env
shell: bash
- name: Import
- run: ./nominatim import --osm-file ../monaco-latest.osm.pbf
- working-directory: build
+ run: nominatim import --osm-file ../monaco-latest.osm.pbf
+ shell: bash
+ working-directory: data-env
- name: Import special phrases
- run: ./nominatim special-phrases --from-wiki | psql -d nominatim
- working-directory: build
+ run: nominatim special-phrases --import-from-wiki
+ working-directory: data-env
- name: Check import
- run: ./nominatim check-database
- working-directory: build
+ run: nominatim admin --check-database
+ working-directory: data-env
- name: Run update
run: |
- ./nominatim replication --init
- ./nominatim replication --once
- working-directory: build
+ nominatim replication --init
+ nominatim replication --once
+ working-directory: data-env
- name: Run reverse-only import
- run : |
- dropdb nominatim
- php ./nominatim import --osm-file ../monaco-latest.osm.pbf --reverse-only
- working-directory: build
+ run : nominatim import --osm-file ../monaco-latest.osm.pbf --reverse-only
+ working-directory: data-env
+ env:
+ NOMINATIM_DATABASE_DSN: pgsql:dbname=reverse