using: "composite"
steps:
- - name: Install prerequisits
- run: sudo apt-get install -y -qq libboost-system-dev libboost-filesystem-dev libexpat1-dev zlib1g-dev libbz2-dev libpq-dev libproj-dev postgresql-13-postgis-3 postgresql-13-postgis-3-scripts postgresql-server-dev-13 python3-psycopg2 python3-pyosmium
- shell: bash
+ - name: Install prerequisits
+ run: sudo apt-get install -y -qq libboost-system-dev libboost-filesystem-dev libexpat1-dev zlib1g-dev libbz2-dev libpq-dev libproj-dev python3-psycopg2 python3-pyosmium
+ shell: bash
- - name: Configure
- run: mkdir build && cd build && cmake ..
- shell: bash
+ - name: Configure
+ run: mkdir build && cd build && cmake ..
+ shell: bash
- - name: Build
- run: |
- make -j2 all
- ./utils/setup.php --setup-website
- shell: bash
- working-directory: build
+ - name: Build
+ run: |
+ make -j2 all
+ ./utils/setup.php --setup-website
+ shell: bash
+ working-directory: build
- - name: Download dependencies
- run: wget -O data/country_osm_grid.sql.gz https://www.nominatim.org/data/country_grid.sql.gz
- shell: bash
+ - name: Download dependencies
+ run: |
+ if [ ! -f data/country_osm_grid.sql.gz ]; then
+ wget --no-verbose -O data/country_osm_grid.sql.gz https://www.nominatim.org/data/country_grid.sql.gz
+ fi
+ shell: bash
--- /dev/null
+name: 'Setup Postgresql and Postgis'
+
+runs:
+ using: "composite"
+
+ steps:
+ - name: Install postgis
+ run: sudo apt-get install -y -qq postgresql-13-postgis-3 postgresql-13-postgis-3-scripts postgresql-server-dev-13
+ shell: bash
+
+ - name: Adapt postgresql configuration
+ run: |
+ echo 'fsync = off' | sudo tee /etc/postgresql/13/main/conf.d/local.conf
+ echo 'synchronous_commit = off' | sudo tee -a /etc/postgresql/13/main/conf.d/local.conf
+ echo 'full_page_writes = off' | sudo tee -a /etc/postgresql/13/main/conf.d/local.conf
+ echo 'shared_buffers = 1GB' | sudo tee -a /etc/postgresql/13/main/conf.d/local.conf
+ shell: bash
+
+ - name: Setup database
+ run: |
+ sudo systemctl start postgresql
+ sudo -u postgres createuser -S www-data
+ sudo -u postgres createuser -s runner
+ shell: bash
with:
submodules: true
+ - name: Get Date
+ id: get-date
+ run: |
+ echo "::set-output name=date::$(/bin/date -u "+%Y%W")"
+ shell: bash
+
+ - uses: actions/cache@v2
+ with:
+ path: |
+ data/country_osm_grid.sql.gz
+ monaco-latest.osm.pbf
+ key: nominatim-data-${{ steps.get-date.outputs.date }}
+
+ - uses: ./.github/actions/setup-postgresql
- uses: ./.github/actions/build-nominatim
- name: Install test prerequsites
- name: PHP linting
run: phpcs --report-width=120 .
- - name: Setup database
- run: |
- sudo systemctl start postgresql
- sudo -u postgres createuser -S www-data
- sudo -u postgres createuser -s runner
- shell: bash
-
- name: PHP unit tests
run: phpunit ./
working-directory: test/php
with:
submodules: true
- - uses: ./.github/actions/build-nominatim
-
- - name: Download test extract
- run: wget --no-verbose https://download.geofabrik.de/europe/monaco-latest.osm.pbf
-
- - name: Setup database
+ - name: Get Date
+ id: get-date
run: |
- sudo systemctl start postgresql
- sudo -u postgres createuser -S www-data
- sudo -u postgres createuser -s runner
+ echo "::set-output name=date::$(/bin/date -u "+%Y%W")"
shell: bash
- - name: Create configuartion
+ - uses: actions/cache@v2
+ with:
+ path: |
+ data/country_osm_grid.sql.gz
+ monaco-latest.osm.pbf
+ key: nominatim-data-${{ steps.get-date.outputs.date }}
+
+ - uses: ./.github/actions/setup-postgresql
+ - uses: ./.github/actions/build-nominatim
+
+ - name: Create configuration
run: |
echo '<?php' > settings/local.php
echo " @define('CONST_Pyosmium_Binary', '/usr/lib/python3-pyosmium/pyosmium-get-changes');" >> settings/local.php
working-directory: build
+ - name: Download import data
+ run: |
+ if [ ! -f monaco-latest.osm.pbf ]; then
+ wget --no-verbose https://download.geofabrik.de/europe/monaco-latest.osm.pbf
+ fi
+ shell: bash
+
- name: Import
run: php ./utils/setup.php --osm-file ../monaco-latest.osm.pbf --osm2pgsql-cache 500 --all
working-directory: build