Merge pull request #2248 from joto/refactor-timer-debug #1832
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: [ push, pull_request ] | |
jobs: | |
macos: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- "macos-12" | |
- "macos-13" | |
- "macos-14" # latest | |
runs-on: ${{ matrix.os }} | |
env: | |
LUA_VERSION: 5.4 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install prerequisites | |
run: | | |
# Workaround for github/brew problem. Python is already install | |
# on the Github action runner and then homebrew comes along... | |
# See also: https://github.com/Homebrew/homebrew-core/issues/173191 | |
rm -f /usr/local/bin/2to3* /usr/local/bin/idle3* /usr/local/bin/pydoc3* /usr/local/bin/python3* | |
brew install boost lua nlohmann-json opencv pandoc postgis potrace python3 | |
# --break-system-packages is needed on macOS 14 | |
pip3 install --break-system-packages psycopg2 behave osmium | |
mkdir ~/postgres | |
pg_ctl -D ~/postgres init | |
pg_ctl -D ~/postgres start | |
shell: bash | |
- name: Setup database | |
run: | | |
psql -d postgres -c 'CREATE EXTENSION postgis' | |
psql -d postgres -c 'CREATE EXTENSION hstore' | |
psql -d postgres -c 'SELECT PostGIS_Full_Version()' | |
mkdir -m 700 $GITHUB_WORKSPACE/tablespacetest | |
psql -d postgres -c "CREATE TABLESPACE tablespacetest LOCATION '$GITHUB_WORKSPACE/tablespacetest'" | |
shell: bash | |
- uses: ./.github/actions/linux-cmake | |
- uses: ./.github/actions/build-and-test | |
with: | |
test-wrapper: '' | |
env: | |
PGHOST: /tmp | |
ubuntu20-pg96-gcc10-jit: | |
runs-on: ubuntu-20.04 | |
env: | |
CC: gcc-10 | |
CXX: g++-10 | |
EXTRA_FLAGS: -Wno-unused-but-set-parameter # workaround for GCC bug | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: ON | |
POSTGRESQL_VERSION: 9.6 | |
POSTGIS_VERSION: 2.5 | |
BUILD_TYPE: Release | |
PSYCOPG: 2 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/linux-cmake | |
- uses: ./.github/actions/build-and-test | |
ubuntu20-pg96-clang10-jit: | |
runs-on: ubuntu-20.04 | |
env: | |
CC: clang-10 | |
CXX: clang++-10 | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: ON | |
POSTGRESQL_VERSION: 9.6 | |
POSTGIS_VERSION: 2.5 | |
BUILD_TYPE: Release | |
PSYCOPG: 2 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/linux-cmake | |
- uses: ./.github/actions/build-and-test | |
ubuntu20-pg10-gcc10: | |
runs-on: ubuntu-20.04 | |
env: | |
CC: gcc-10 | |
CXX: g++-10 | |
EXTRA_FLAGS: -Wno-unused-but-set-parameter # workaround for GCC bug | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: OFF | |
POSTGRESQL_VERSION: 10 | |
POSTGIS_VERSION: 3 | |
BUILD_TYPE: Debug | |
PSYCOPG: 2 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/linux-cmake | |
- uses: ./.github/actions/build-and-test | |
ubuntu20-pg11-clang10: | |
runs-on: ubuntu-20.04 | |
env: | |
CC: clang-10 | |
CXX: clang++-10 | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: OFF | |
POSTGRESQL_VERSION: 11 | |
POSTGIS_VERSION: 2.5 | |
BUILD_TYPE: Debug | |
PSYCOPG: 2 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/linux-cmake | |
- uses: ./.github/actions/build-and-test | |
ubuntu20-pg13-gcc10-jit: | |
runs-on: ubuntu-20.04 | |
env: | |
CC: gcc-10 | |
CXX: g++-10 | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: ON | |
POSTGRESQL_VERSION: 13 | |
POSTGIS_VERSION: 2.5 | |
BUILD_TYPE: Debug | |
PSYCOPG: 2 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/linux-cmake | |
- uses: ./.github/actions/build-and-test | |
ubuntu20-pg15-clang10-jit: | |
runs-on: ubuntu-20.04 | |
env: | |
CC: clang-10 | |
CXX: clang++-10 | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: ON | |
POSTGRESQL_VERSION: 15 | |
POSTGIS_VERSION: 3 | |
BUILD_TYPE: Debug | |
PSYCOPG: 2 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/linux-cmake | |
- uses: ./.github/actions/build-and-test | |
ubuntu20-pg15-clang10-noproj: | |
runs-on: ubuntu-20.04 | |
env: | |
CC: clang-10 | |
CXX: clang++-10 | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: OFF | |
POSTGRESQL_VERSION: 15 | |
POSTGIS_VERSION: 3 | |
WITH_PROJ: OFF | |
BUILD_TYPE: Debug | |
PSYCOPG: 2 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/linux-cmake | |
- uses: ./.github/actions/build-and-test | |
ubuntu20-pg16-clang10: | |
runs-on: ubuntu-20.04 | |
env: | |
CC: clang-10 | |
CXX: clang++-10 | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: OFF | |
POSTGRESQL_VERSION: 16 | |
POSTGIS_VERSION: 3 | |
BUILD_TYPE: Debug | |
PSYCOPG: 2 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/linux-cmake | |
- uses: ./.github/actions/build-and-test | |
ubuntu20-pg13-gcc10-release: | |
runs-on: ubuntu-20.04 | |
env: | |
CC: gcc-10 | |
CXX: g++-10 | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: ON | |
POSTGRESQL_VERSION: 13 | |
POSTGIS_VERSION: 2.5 | |
BUILD_TYPE: Release | |
PSYCOPG: 2 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/linux-cmake | |
- uses: ./.github/actions/build-and-test | |
ubuntu22-pg16-clang14-jit: | |
runs-on: ubuntu-22.04 | |
env: | |
CC: clang-14 | |
CXX: clang++-14 | |
LUA_VERSION: 5.4 | |
LUAJIT_OPTION: ON | |
POSTGRESQL_VERSION: 16 | |
POSTGIS_VERSION: 3 | |
BUILD_TYPE: Debug | |
PSYCOPG: 2 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/linux-cmake | |
- uses: ./.github/actions/build-and-test | |
ubuntu22-pg16-clang14-proj: | |
runs-on: ubuntu-22.04 | |
env: | |
CC: clang-14 | |
CXX: clang++-14 | |
LUA_VERSION: 5.4 | |
LUAJIT_OPTION: OFF | |
POSTGRESQL_VERSION: 16 | |
POSTGIS_VERSION: 3 | |
BUILD_TYPE: Debug | |
PSYCOPG: 2 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/linux-cmake | |
- uses: ./.github/actions/build-and-test | |
ubuntu22-pg16-clang14-noproj: | |
runs-on: ubuntu-22.04 | |
env: | |
CC: clang-14 | |
CXX: clang++-14 | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: OFF | |
POSTGRESQL_VERSION: 16 | |
POSTGIS_VERSION: 3 | |
WITH_PROJ: OFF | |
BUILD_TYPE: Debug | |
PSYCOPG: 2 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/linux-cmake | |
- uses: ./.github/actions/build-and-test | |
ubuntu22-pg15-clang14: | |
runs-on: ubuntu-22.04 | |
env: | |
CC: clang-14 | |
CXX: clang++-14 | |
LUA_VERSION: 5.4 | |
LUAJIT_OPTION: OFF | |
POSTGRESQL_VERSION: 15 | |
POSTGIS_VERSION: 3 | |
BUILD_TYPE: Debug | |
PSYCOPG: 2 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/linux-cmake | |
- uses: ./.github/actions/build-and-test | |
ubuntu22-pg16-gcc12-release: | |
runs-on: ubuntu-22.04 | |
env: | |
CC: gcc-12 | |
CXX: g++-12 | |
EXTRA_FLAGS: -Wno-stringop-overread | |
LUA_VERSION: 5.4 | |
LUAJIT_OPTION: ON | |
POSTGRESQL_VERSION: 16 | |
POSTGIS_VERSION: 3 | |
BUILD_TYPE: Release | |
PSYCOPG: 2 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/linux-cmake | |
- uses: ./.github/actions/build-and-test | |
ubuntu22-pg16-clang15-cpp20: | |
runs-on: ubuntu-22.04 | |
env: | |
CC: clang-15 | |
CXX: clang++-15 | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: OFF | |
POSTGRESQL_VERSION: 16 | |
POSTGIS_VERSION: 3 | |
CPP_VERSION: 20 | |
BUILD_TYPE: Debug | |
PSYCOPG: 3 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/linux-cmake | |
- uses: ./.github/actions/build-and-test | |
ubuntu22-pg16-gcc12-cpp20: | |
runs-on: ubuntu-22.04 | |
env: | |
CC: gcc-12 | |
CXX: g++-12 | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: OFF | |
POSTGRESQL_VERSION: 16 | |
POSTGIS_VERSION: 3 | |
CPP_VERSION: 20 | |
BUILD_TYPE: Debug | |
PSYCOPG: 3 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/linux-cmake | |
- uses: ./.github/actions/build-and-test | |
ubuntu24-pg16-gcc14: | |
runs-on: ubuntu-24.04 | |
env: | |
CC: gcc-14 | |
CXX: g++-14 | |
LUA_VERSION: 5.4 | |
LUAJIT_OPTION: OFF | |
POSTGRESQL_VERSION: 16 | |
POSTGIS_VERSION: 3 | |
BUILD_TYPE: Debug | |
PSYCOPG: 3 | |
PIP_OPTION: --break-system-packages | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/linux-cmake | |
- uses: ./.github/actions/build-and-test | |
windows: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-2019, windows-2022] | |
runs-on: ${{ matrix.os }} | |
env: | |
VCPKG_DEFAULT_BINARY_CACHE: C:/vcpkg_binary_cache | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
C:/vcpkg_binary_cache | |
key: vcpkg-binary-cache-${{ matrix.os }}-${{ github.run_id }} | |
restore-keys: | | |
vcpkg-binary-cache-${{ matrix.os }} | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
C:/postgis.zip | |
key: postgis-cache | |
- name: Prepare cache | |
run: if [ ! -d C:/vcpkg_binary_cache ]; then mkdir C:/vcpkg_binary_cache; fi | |
shell: bash | |
- uses: ./.github/actions/win-postgres | |
- uses: ./.github/actions/win-install | |
- uses: ./.github/actions/win-cmake | |
- uses: ./.github/actions/win-build | |
- uses: ./.github/actions/win-test | |
- name: Package osm2pgsql | |
run: | | |
mkdir c:/artifact/ | |
mkdir c:/artifact/osm2pgsql-bin | |
cp -r Release/* ../README.md ../COPYING ../*.style ../scripts ../flex-config c:/vcpkg/installed/x64-windows/share/proj/proj.db c:/artifact/osm2pgsql-bin/ | |
shell: bash | |
working-directory: build | |
if: matrix.os == 'windows-2022' | |
- name: 'Upload Artifact' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: osm2pgsql-win64 | |
path: c:/artifact | |
if: matrix.os == 'windows-2022' | |
windows-package: | |
needs: windows | |
runs-on: windows-2022 | |
env: | |
OSMURL: https://download.geofabrik.de/europe/monaco-latest.osm.bz2 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
C:/postgis.zip | |
key: postgis-cache | |
- uses: actions/download-artifact@v4 | |
with: | |
name: osm2pgsql-win64 | |
- uses: ./.github/actions/win-postgres | |
- name: Set up database | |
run: | | |
& $env:PGBIN\createdb osm | |
& $env:PGBIN\psql -d osm -c "CREATE EXTENSION hstore; CREATE EXTENSION postgis;" | |
shell: pwsh | |
- name: Get test data | |
run: (new-object net.webclient).DownloadFile($env:OSMURL, "testfile.osm.bz2") | |
- name: Execute osm2pgsql | |
run: ./osm2pgsql-bin/osm2pgsql --slim -d osm testfile.osm.bz2 | |
shell: bash | |