]> git.openstreetmap.org Git - nominatim.git/blobdiff - .github/actions/build-nominatim/action.yml
switch actions to pip-based install
[nominatim.git] / .github / actions / build-nominatim / action.yml
index 70392d79284728218a4ad593b42323c178dc25c7..85eef53fc4e4b6281ed2e5fb8b9cee3365af09e6 100644 (file)
@@ -1,18 +1,10 @@
 name: 'Build Nominatim'
 
 inputs:
 name: 'Build Nominatim'
 
 inputs:
-    flavour:
-        description: 'Version of Ubuntu to install on'
+    dependencies:
+        description: 'Where to install dependencies from (pip/apt)'
         required: false
         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"
 
 runs:
     using: "composite"
@@ -23,30 +15,30 @@ runs:
             sudo rm -rf /opt/hostedtoolcache/go /opt/hostedtoolcache/CodeQL /usr/lib/jvm /usr/local/share/chromium /usr/local/lib/android
             df -h
           shell: bash
             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: |
           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 nlohmann-json3-dev
-            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
           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
           shell: bash
-          env:
-            CMAKE_ARGS: ${{ inputs.cmake-args }}
+          if: inputs.dependencies == 'pip'
 
 
-        - name: Build
+        - name: Setup virtual environment (for apt)
           run: |
           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
           shell: bash
-          working-directory: build