X-Git-Url: https://git.openstreetmap.org/nominatim.git/blobdiff_plain/6cc06828dbc722deb1c06dc4176400f727eb24dc..5dee3cf7f76ac8615ce820aebe3013de8a411350:/.github/workflows/ci-tests.yml diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml index 1fa7e19d..51ab377b 100644 --- a/.github/workflows/ci-tests.yml +++ b/.github/workflows/ci-tests.yml @@ -19,6 +19,7 @@ jobs: - uses: actions/checkout@v2 with: submodules: true + path: Nominatim - name: Setup PHP uses: shivammathur/setup-php@v2 @@ -35,43 +36,57 @@ jobs: - uses: actions/cache@v2 with: path: | - data/country_osm_grid.sql.gz - 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 pylint python3-pytest python3-behave - 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 + working-directory: Nominatim/test/php - name: Python unit tests run: py.test-3 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 + working-directory: Nominatim/test/bdd import: - runs-on: ubuntu-20.04 + strategy: + matrix: + ubuntu: [18, 20] + include: + - ubuntu: 18 + postgresql: 9.5 + postgis: 2.5 + - ubuntu: 20 + postgresql: 13 + postgis: 3 + + runs-on: ubuntu-${{ matrix.ubuntu }}.04 steps: - uses: actions/checkout@v2 with: submodules: true + path: Nominatim - name: Get Date id: get-date @@ -82,46 +97,71 @@ jobs: - uses: actions/cache@v2 with: path: | - data/country_osm_grid.sql.gz + country_grid.sql.gz + key: nominatim-country-data-${{ steps.get-date.outputs.date }} + + - uses: actions/cache@v2 + with: + path: | monaco-latest.osm.pbf - key: nominatim-data-${{ steps.get-date.outputs.date }} + key: nominatim-test-data-${{ steps.get-date.outputs.date }} - - uses: ./.github/actions/setup-postgresql + - uses: actions/setup-python@v2 with: - postgresql-version: 13 - postgis-version: 3 - - uses: ./.github/actions/build-nominatim + python-version: 3.5 + if: matrix.ubuntu == 18 - - name: Download import data + - uses: ./Nominatim/.github/actions/setup-postgresql + with: + postgresql-version: ${{ matrix.postgresql }} + postgis-version: ${{ matrix.postgis }} + - uses: ./Nominatim/.github/actions/build-nominatim + + - name: Install extra dependencies for Ubuntu 18 + run: | + sudo apt-get install libicu-dev + pip3 install python-dotenv psycopg2==2.7.7 jinja2==2.8 psutil==5.4.2 pyicu osmium + shell: bash + if: matrix.ubuntu == 18 + + - name: Clean installation + run: rm -rf Nominatim build + shell: bash + + - 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: | - mkdir data-env - cd data-env - ../build/nominatim import --osm-file ../monaco-latest.osm.pbf + run: nominatim import --osm-file ../monaco-latest.osm.pbf shell: bash + working-directory: data-env - name: Import special phrases - run: ../build/nominatim special-phrases --from-wiki | psql -d nominatim + run: nominatim special-phrases --import-from-wiki working-directory: data-env - name: Check import - run: ../build/nominatim check-database + run: nominatim admin --check-database + working-directory: data-env + + - name: Warm up database + run: nominatim admin --warm working-directory: data-env - name: Run update run: | - ../build/nominatim replication --init - ../build/nominatim replication --once + nominatim replication --init + nominatim replication --once working-directory: data-env - name: Run reverse-only import - run : | - echo 'NOMINATIM_DATABASE_DSN="pgsql:dbname=reverse"' > .env - ../build/nominatim import --osm-file ../monaco-latest.osm.pbf --reverse-only + run : nominatim import --osm-file ../monaco-latest.osm.pbf --reverse-only working-directory: data-env + env: + NOMINATIM_DATABASE_DSN: pgsql:dbname=reverse