Skip to content

Merge pull request #2248 from joto/refactor-timer-debug #1832

Merge pull request #2248 from joto/refactor-timer-debug

Merge pull request #2248 from joto/refactor-timer-debug #1832

Workflow file for this run

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