name: 'Build Nominatim'
inputs:
- flavour:
- description: 'Version of Ubuntu to install on'
+ dependencies:
+ description: 'Where to install dependencies from (pip/apt)'
required: false
- default: 'ubuntu-20'
- cmake-args:
- description: 'Additional options to hand to cmake'
- required: false
- default: ''
- lua:
- description: 'Version of Lua to use'
- required: false
- default: '5.3'
+ default: 'pip'
runs:
using: "composite"
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${{ matrix.flavour }} prerequisites
+ - name: Install general prerequisites
+ run: |
+ sudo apt-get install -y -qq libspatialite-dev libsqlite3-mod-spatialite libicu-dev virtualenv python3-dev osm2pgsql
+ shell: bash
+
+ - name: Install prerequisites from apt
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} lua-dkjson
- 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.31 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
- pip3 install sqlalchemy psycopg
- fi
+ sudo apt-get install -y -qq python3-icu python3-datrie python3-jinja2 python3-psutil python3-dotenv python3-yaml python3-sqlalchemy python3-psycopg python3-asyncpg
shell: bash
- env:
- FLAVOUR: ${{ inputs.flavour }}
- CMAKE_ARGS: ${{ inputs.cmake-args }}
- LUA_VERSION: ${{ inputs.lua }}
+ if: inputs.dependencies == 'apt'
- - name: Configure
- run: mkdir build && cd build && cmake $CMAKE_ARGS ../Nominatim
+ - name: Setup virtual environment (for pip)
+ run: |
+ virtualenv venv
+ ./venv/bin/pip install -U pip
shell: bash
- env:
- CMAKE_ARGS: ${{ inputs.cmake-args }}
+ if: inputs.dependencies == 'pip'
- - name: Build
+ - name: Setup virtual environment (for apt)
run: |
- make -j2 all
- sudo make install
+ virtualenv venv --system-site-packages
+ shell: bash
+ if: inputs.dependencies == 'apt'
+
+ - name: Build nominatim
+ run: ./venv/bin/pip install Nominatim/packaging/nominatim-{api,db}
shell: bash
- working-directory: build