3 on: [ push, pull_request ]
10 - uses: actions/checkout@v2
17 echo "::set-output name=date::$(/bin/date -u "+%Y%W")"
20 - uses: actions/cache@v2
23 data/country_grid.sql.gz
24 key: nominatim-country-data-${{ steps.get-date.outputs.date }}
26 - name: Package tarball
28 if [ ! -f data/country_grid.sql.gz ]; then
29 wget --no-verbose -O data/country_grid.sql.gz https://www.nominatim.org/data/country_grid.sql.gz
32 tar cjf nominatim-src.tar.bz2 Nominatim
33 mv nominatim-src.tar.bz2 Nominatim
35 - name: 'Upload Artifact'
36 uses: actions/upload-artifact@v2
39 path: nominatim-src.tar.bz2
44 runs-on: ubuntu-latest
54 install_mode: install-apache
57 image: ubuntu:${{ matrix.ubuntu }}.04
61 shell: sudo -Hu nominatim bash --noprofile --norc -eo pipefail {0}
64 - name: Prepare container
66 export APT_LISTCHANGES_FRONTEND=none
67 export DEBIAN_FRONTEND=noninteractive
69 apt-get install -y git sudo wget
70 ln -snf /usr/share/zoneinfo/$CONTAINER_TIMEZONE /etc/localtime && echo $CONTAINER_TIMEZONE > /etc/timezone
73 - name: Setup import user
75 useradd -m nominatim -G sudo
76 echo '%sudo ALL=(ALL:ALL) NOPASSWD: ALL' > /etc/sudoers.d/nopasswd
77 echo "/home/nominatim/Nominatim/vagrant/Install-on-Ubuntu-$UBUNTU.sh no $INSTALL_MODE" > /home/nominatim/vagrant.sh
80 UBUNTU: ${{ matrix.ubuntu }}
81 INSTALL_MODE: ${{ matrix.install_mode }}
83 - uses: actions/download-artifact@v2
91 echo "::set-output name=date::$(/bin/date -u "+%Y%W")"
94 - name: Install Nominatim
96 export USERNAME=nominatim
97 export USERHOME=/home/nominatim
99 tar xf nominatim-src.tar.bz2
101 working-directory: /home/nominatim
103 - uses: actions/cache@v2
106 monaco-latest.osm.pbf
107 key: nominatim-test-data-${{ steps.get-date.outputs.date }}
109 - name: Prepare import environment
111 if [ ! -f monaco-latest.osm.pbf ]; then
112 wget --no-verbose https://download.geofabrik.de/europe/monaco-latest.osm.pbf
114 mkdir data-env data-env-reverse
115 chown nominatim. data-env data-env-reverse
119 run: nominatim import --osm-file ../monaco-latest.osm.pbf
120 working-directory: data-env
122 - name: Import special phrases
123 run: nominatim special-phrases --import-from-wiki
124 working-directory: data-env
126 - name: Check full import
127 run: nominatim admin --check-database
128 working-directory: data-env
130 - name: Warm up database
131 run: nominatim admin --warm
132 working-directory: data-env
136 sudo apt-get install -y python3-pip
137 pip3 install --user osmium
138 nominatim replication --init
139 NOMINATIM_REPLICATION_MAX_DIFF=1 nominatim replication --once
140 working-directory: data-env
142 - name: Run reverse-only import
144 echo 'NOMINATIM_DATABASE_DSN="pgsql:dbname=reverse"' > .env
145 nominatim import --osm-file ../monaco-latest.osm.pbf --reverse-only --no-updates
146 working-directory: data-env-reverse
148 NOMINATIM_DATABASE_DSN: pgsql:dbname=reverse
150 - name: Check reverse import
151 run: nominatim admin --check-database
152 working-directory: data-env-reverse