name: 'Build Nominatim'

inputs:
    dependencies:
        description: 'Where to install dependencies from (pip/apt)'
        required: false
        default: 'pip'

runs:
    using: "composite"

    steps:
        - name: Clean out the disk
          run: |
            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 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 python3-icu python3-datrie python3-jinja2 python3-psutil python3-dotenv python3-yaml python3-sqlalchemy python3-psycopg python3-asyncpg
          shell: bash
          if: inputs.dependencies == 'apt'

        - name: Setup virtual environment (for pip)
          run: |
            virtualenv venv
            ./venv/bin/pip install -U pip
          shell: bash
          if: inputs.dependencies == 'pip'

        - name: Setup virtual environment (for apt)
          run: |
            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
