+ python3 -m behave -DREMOVE_TEMPLATE=1 -DBUILDDIR=$GITHUB_WORKSPACE/build -DTOKENIZER=legacy --format=progress3
+ working-directory: Nominatim/test/bdd
+
+
+ python-api-test:
+ needs: create-archive
+ runs-on: ubuntu-22.04
+
+ steps:
+ - uses: actions/download-artifact@v3
+ with:
+ name: full-source
+
+ - name: Unpack Nominatim
+ run: tar xf nominatim-src.tar.bz2
+
+ - uses: ./Nominatim/.github/actions/setup-postgresql
+ with:
+ postgresql-version: 15
+ postgis-version: 3
+
+ - uses: ./Nominatim/.github/actions/build-nominatim
+ with:
+ flavour: 'ubuntu-22'
+
+ - name: Install test prerequsites
+ run: sudo apt-get install -y -qq python3-behave
+
+ - name: Install Python webservers
+ run: pip3 install starlette asgi_lifespan httpx
+
+ - name: BDD tests (starlette)
+ run: |
+ python3 -m behave -DREMOVE_TEMPLATE=1 -DBUILDDIR=$GITHUB_WORKSPACE/build -DAPI_ENGINE=starlette --format=progress3
+ working-directory: Nominatim/test/bdd
+
+
+ install:
+ runs-on: ubuntu-latest
+ needs: create-archive
+
+ strategy:
+ matrix:
+ name: [Ubuntu-20, Ubuntu-22]
+ include:
+ - name: Ubuntu-20
+ image: "ubuntu:20.04"
+ ubuntu: 20
+ install_mode: install-apache
+ - name: Ubuntu-22
+ image: "ubuntu:22.04"
+ ubuntu: 22
+ install_mode: install-apache
+
+ container:
+ image: ${{ matrix.image }}
+ env:
+ LANG: en_US.UTF-8
+
+ defaults:
+ run:
+ shell: sudo -Hu nominatim bash --noprofile --norc -eo pipefail {0}
+
+ steps:
+ - name: Prepare container (Ubuntu)
+ run: |
+ export APT_LISTCHANGES_FRONTEND=none
+ export DEBIAN_FRONTEND=noninteractive
+ apt-get update -qq
+ apt-get install -y git sudo wget
+ ln -snf /usr/share/zoneinfo/$CONTAINER_TIMEZONE /etc/localtime && echo $CONTAINER_TIMEZONE > /etc/timezone
+ shell: bash
+
+ - name: Setup import user
+ run: |
+ useradd -m nominatim
+ echo 'nominatim ALL=(ALL:ALL) NOPASSWD: ALL' > /etc/sudoers.d/nominiatim
+ echo "/home/nominatim/Nominatim/vagrant/Install-on-${OS}.sh no $INSTALL_MODE" > /home/nominatim/vagrant.sh
+ shell: bash
+ env:
+ OS: ${{ matrix.name }}
+ INSTALL_MODE: ${{ matrix.install_mode }}
+
+ - uses: actions/download-artifact@v3
+ with:
+ name: full-source
+ path: /home/nominatim
+
+ - name: Install Nominatim
+ run: |
+ export USERNAME=nominatim
+ export USERHOME=/home/nominatim
+ export NOSYSTEMD=yes
+ export HAVE_SELINUX=no
+ tar xf nominatim-src.tar.bz2
+ . vagrant.sh
+ working-directory: /home/nominatim
+
+ - name: Prepare import environment
+ run: |
+ mv Nominatim/test/testdb/apidb-test-data.pbf test.pbf
+ mv Nominatim/settings/flex-base.lua flex-base.lua
+ mv Nominatim/settings/import-extratags.lua import-extratags.lua
+ mv Nominatim/settings/taginfo.lua taginfo.lua
+ rm -rf Nominatim
+ mkdir data-env-reverse
+ working-directory: /home/nominatim
+
+ - name: Print version
+ run: nominatim --version
+ working-directory: /home/nominatim/nominatim-project
+
+ - name: Print taginfo
+ run: lua taginfo.lua
+ working-directory: /home/nominatim
+
+ - name: Collect host OS information
+ run: nominatim admin --collect-os-info
+ working-directory: /home/nominatim/nominatim-project