3 on: [ push, pull_request ]
19 - uses: actions/checkout@v2
25 uses: shivammathur/setup-php@v2
33 echo "::set-output name=date::$(/bin/date -u "+%Y%W")"
36 - uses: actions/cache@v2
40 key: nominatim-country-data-${{ steps.get-date.outputs.date }}
42 - uses: ./Nominatim/.github/actions/setup-postgresql
44 postgresql-version: ${{ matrix.postgresql }}
45 postgis-version: ${{ matrix.postgis }}
46 - uses: ./Nominatim/.github/actions/build-nominatim
48 - name: Install test prerequsites
49 run: sudo apt-get install -y -qq php-codesniffer pylint python3-pytest python3-behave python3-coverage
52 run: phpcs --report-width=120 .
53 working-directory: Nominatim
55 - name: Python linting
56 run: pylint --extension-pkg-whitelist=osmium nominatim
57 working-directory: Nominatim
59 - name: PHP unit tests
60 run: phpunit --coverage-clover ../../coverage-php.xml ./
61 working-directory: Nominatim/test/php
63 - name: Python unit tests
65 python3-coverage run -m pytest ./test/python
66 python3-coverage xml -o ./coverage-pytest.xml
68 working-directory: Nominatim
72 python3-coverage run -m behave -DREMOVE_TEMPLATE=1 -DBUILDDIR=$GITHUB_WORKSPACE/build --format=progress3
73 python3-coverage xml -o ../../coverage-bdd.xml
75 working-directory: Nominatim/test/bdd
77 - name: Upload coverage to Codecov
78 uses: codecov/codecov-action@v1
80 files: ./Nominatim/coverage*.xml
83 name: codecov-umbrella
84 fail_ci_if_error: true
85 path_to_write_report: ./coverage/codecov_report.txt
92 - uses: actions/checkout@v2
100 echo "::set-output name=date::$(/bin/date -u "+%Y%W")"
103 - uses: actions/cache@v2
107 key: nominatim-country-data-${{ steps.get-date.outputs.date }}
109 - uses: actions/cache@v2
112 monaco-latest.osm.pbf
113 key: nominatim-test-data-${{ steps.get-date.outputs.date }}
115 - uses: ./Nominatim/.github/actions/setup-postgresql
117 postgresql-version: 13
119 - uses: ./Nominatim/.github/actions/build-nominatim
121 - name: Clean installation
122 run: rm -rf Nominatim build
125 - name: Prepare import environment
127 if [ ! -f monaco-latest.osm.pbf ]; then
128 wget --no-verbose https://download.geofabrik.de/europe/monaco-latest.osm.pbf
135 run: nominatim import --osm-file ../monaco-latest.osm.pbf
137 working-directory: data-env
139 - name: Import special phrases
140 run: nominatim special-phrases --import-from-wiki
141 working-directory: data-env
144 run: nominatim admin --check-database
145 working-directory: data-env
149 nominatim replication --init
150 nominatim replication --once
151 working-directory: data-env
153 - name: Run reverse-only import
154 run : nominatim import --osm-file ../monaco-latest.osm.pbf --reverse-only
155 working-directory: data-env
157 NOMINATIM_DATABASE_DSN: pgsql:dbname=reverse