name: CI Tests on: [ push, pull_request ] jobs: 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 - name: PHP linting run: phpcs --report-width=120 . - name: PHP unit tests run: phpunit ./ working-directory: test/php - name: BDD tests run: behave -DREMOVE_TEMPLATE=1 --format=progress3 db osm2pgsql working-directory: test/bdd import: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 with: submodules: true - 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: 13 postgis-version: 3 - uses: ./.github/actions/build-nominatim - name: Create configuration run: | 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 working-directory: build - name: Import special phrases run: php ./utils/specialphrases.php --wiki-import | psql -d nominatim working-directory: build - name: Check import run: php ./utils/check_import_finished.php working-directory: build - name: Run update run: | php ./utils/update.php --init-updates php ./utils/update.php --import-osmosis working-directory: build - name: Run reverse-only import run : | dropdb nominatim php ./utils/setup.php --osm-file ../monaco-latest.osm.pbf --reverse-only --all working-directory: build