name: 'Build Nominatim'
inputs:
- ubuntu:
+ flavour:
description: 'Version of Ubuntu to install on'
required: false
- default: '20'
+ default: 'ubuntu-20'
cmake-args:
description: 'Additional options to hand to cmake'
required: false
sudo rm -rf /opt/hostedtoolcache/go /opt/hostedtoolcache/CodeQL /usr/lib/jvm /usr/local/share/chromium /usr/local/lib/android
df -h
shell: bash
- - name: Install prerequisites
+ - name: Install${{ matrix.flavour }} prerequisites
run: |
sudo apt-get install -y -qq libboost-system-dev libboost-filesystem-dev libexpat1-dev zlib1g-dev libbz2-dev libpq-dev libproj-dev libicu-dev liblua${LUA_VERSION}-dev lua${LUA_VERSION}
- if [ "x$UBUNTUVER" == "x18" ]; then
+ if [ "$FLAVOUR" == "oldstuff" ]; then
pip3 install MarkupSafe==2.0.1 python-dotenv psycopg2==2.7.7 jinja2==2.8 psutil==5.4.2 pyicu==2.9 osmium PyYAML==5.1 sqlalchemy==1.4 datrie asyncpg
else
sudo apt-get install -y -qq python3-icu python3-datrie python3-pyosmium python3-jinja2 python3-psutil python3-psycopg2 python3-dotenv python3-yaml python3-asyncpg
fi
shell: bash
env:
- UBUNTUVER: ${{ inputs.ubuntu }}
+ FLAVOUR: ${{ inputs.flavour }}
CMAKE_ARGS: ${{ inputs.cmake-args }}
LUA_VERSION: ${{ inputs.lua }}
needs: create-archive
strategy:
matrix:
- ubuntu: [18, 20, 22]
+ flavour: [oldstuff, "ubuntu-20", "ubuntu-22"]
include:
- - ubuntu: 18
- postgresql: 9.6
- postgis: 2.5
- php: 7.2
- - ubuntu: 20
+ - flavour: oldstuff
+ ubuntu: 20
+ postgresql: '9.6'
+ postgis: '2.5'
+ php: '7.3'
+ lua: '5.1'
+ - flavour: ubuntu-20
+ ubuntu: 20
postgresql: 13
postgis: 3
- php: 7.4
- - ubuntu: 22
+ php: '7.4'
+ lua: '5.3'
+ - flavour: ubuntu-22
+ ubuntu: 22
postgresql: 15
postgis: 3
- php: 8.1
+ php: '8.1'
+ lua: '5.3'
runs-on: ubuntu-${{ matrix.ubuntu }}.04
- uses: actions/setup-python@v4
with:
python-version: 3.7
- if: matrix.ubuntu == 18
+ if: matrix.flavour == 'oldstuff'
- uses: ./Nominatim/.github/actions/setup-postgresql
with:
- uses: ./Nominatim/.github/actions/build-nominatim
with:
- ubuntu: ${{ matrix.ubuntu }}
+ flavour: ${{ matrix.flavour }}
+ lua: ${{ matrix.lua }}
- name: Install test prerequsites (behave from apt)
run: sudo apt-get install -y -qq python3-behave
- if: matrix.ubuntu == 20
+ if: matrix.flavour == 'ubuntu-20'
- name: Install test prerequsites (behave from pip)
run: pip3 install behave==1.2.6
- if: ${{ (matrix.ubuntu == 18) || (matrix.ubuntu == 22) }}
+ if: (matrix.flavour == 'oldstuff') || (matrix.flavour == 'ubuntu-22')
- name: Install test prerequsites (from apt for Ununtu 2x)
run: sudo apt-get install -y -qq python3-pytest uvicorn
- if: matrix.ubuntu >= 20
+ if: matrix.flavour != 'oldstuff'
- name: Install test prerequsites (from pip for Ubuntu 18)
run: pip3 install pytest uvicorn
- if: matrix.ubuntu == 18
+ if: matrix.flavour == 'oldstuff'
- name: Install Python webservers
run: pip3 install falcon sanic sanic-testing starlette
- name: Install newer Python packages (for typechecking info)
run: pip3 install -U osmium uvicorn
- if: matrix.ubuntu >= 20
+ if: matrix.flavour != 'oldstuff'
- name: Python static typechecking
run: python3 -m mypy --strict nominatim
working-directory: Nominatim
- if: matrix.ubuntu >= 20
+ if: matrix.flavour != 'oldstuff'
legacy-test:
needs: create-archive
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
- php-version: 7.4
+ php-version: '7.4'
- uses: ./Nominatim/.github/actions/setup-postgresql
with:
- uses: ./Nominatim/.github/actions/build-nominatim
with:
- ubuntu: 20
cmake-args: -DBUILD_MODULE=on
- name: Install test prerequsites
* [PyICU](https://pypi.org/project/PyICU/)
* [PyYaml](https://pyyaml.org/) (5.1+)
* [datrie](https://github.com/pytries/datrie)
- * [PHP](https://php.net) (7.0 or later)
+ * [PHP](https://php.net) (7.3+)
* PHP-pgsql
* PHP-intl (bundled with PHP)
* PHP-cgi (for running queries from the command line)
if args.node:
params = dict(osmtype='N', osmid=args.node)
elif args.way:
- params = dict(osmtype='W', osmid=args.node)
+ params = dict(osmtype='W', osmid=args.way)
elif args.relation:
- params = dict(osmtype='R', osmid=args.node)
+ params = dict(osmtype='R', osmid=args.relation)
else:
params = dict(place_id=args.place_id)
if args.object_class:
flex.set_prefilters{delete_keys = {'building', 'source',
'source', '*source', 'type',
- 'is_in:postcode', '*:wikidata',
+ 'is_in:postcode', '*:wikidata', '*:wikipedia',
'*:prefix', '*:suffix', 'name:prefix:*', 'name:suffix:*',
'name:etymology', 'name:signed', 'name:botanical',
'addr:street:name', 'addr:street:type'},
'alt_name', 'alt_name:*', 'alt_name_*',
'official_name', 'official_name:*',
'place_name', 'place_name:*',
- 'short_name', 'short_name:*', 'brand'},
+ 'short_name', 'short_name:*'},
extra = {'ref', 'int_ref', 'nat_ref', 'reg_ref',
'loc_ref', 'old_ref',
'iata', 'icao', 'pcode', 'pcode:*', 'ISO3166-2'},
flex.set_prefilters{delete_keys = {'building', 'source', 'highway',
'addr:housenumber', 'addr:street', 'addr:city',
'source', '*source', 'type',
- 'is_in:postcode', '*:wikidata',
+ 'is_in:postcode', '*:wikidata', '*:wikipedia',
'*:prefix', '*:suffix', 'name:prefix:*', 'name:suffix:*',
'name:etymology', 'name:signed', 'name:botanical',
'addr:street:name', 'addr:street:type'},
'alt_name', 'alt_name:*', 'alt_name_*',
'official_name', 'official_name:*',
'place_name', 'place_name:*',
- 'short_name', 'short_name:*', 'brand'},
+ 'short_name', 'short_name:*'},
extra = {'ref', 'int_ref', 'nat_ref', 'reg_ref',
'loc_ref', 'old_ref',
'iata', 'icao', 'pcode', 'pcode:*', 'ISO3166-2'}
extra_keys = {'*:prefix', '*:suffix', 'name:prefix:*', 'name:suffix:*',
'name:etymology', 'name:signed', 'name:botanical',
'wikidata', '*:wikidata',
+ '*:wikipedia', 'brand:wikipedia:*',
'addr:street:name', 'addr:street:type'}
}
extra_keys = {'*:prefix', '*:suffix', 'name:prefix:*', 'name:suffix:*',
'name:etymology', 'name:signed', 'name:botanical',
'wikidata', '*:wikidata',
+ '*:wikipedia', 'brand:wikipedia:*',
'addr:street:name', 'addr:street:type'}
}
flex.set_prefilters{delete_keys = {'building', 'source',
'addr:housenumber', 'addr:street',
'source', '*source', 'type',
- 'is_in:postcode', '*:wikidata',
+ 'is_in:postcode', '*:wikidata', '*:wikipedia',
'*:prefix', '*:suffix', 'name:prefix:*', 'name:suffix:*',
'name:etymology', 'name:signed', 'name:botanical',
'addr:street:name', 'addr:street:type'},
'alt_name', 'alt_name:*', 'alt_name_*',
'official_name', 'official_name:*',
'place_name', 'place_name:*',
- 'short_name', 'short_name:*', 'brand'},
+ 'short_name', 'short_name:*'},
extra = {'ref', 'int_ref', 'nat_ref', 'reg_ref',
'loc_ref', 'old_ref',
'iata', 'icao', 'pcode', 'pcode:*', 'ISO3166-2'}
-all: bdd php
+all: bdd php python
no-test-db: bdd-no-test-db php
bdd:
cd bdd && behave -DREMOVE_TEMPLATE=1
-icu:
- cd bdd && behave -DREMOVE_TEMPLATE=1 -DTOKENIZER=icu
-
php:
cd php && phpunit ./
pytest python
-.PHONY: bdd php no-test-db
+.PHONY: bdd php no-test-db python