Refactor code that gets a mutex and calls into Lua code #1414
Workflow file for this run
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-11" | |
- "macos-12" # latest | |
- "macos-13" | |
runs-on: ${{ matrix.os }} | |
env: | |
LUA_VERSION: 5.4 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install prerequisites | |
run: | | |
brew install lua boost postgis pandoc cimg potrace nlohmann-json | |
pip3 install psycopg2 behave osmium | |
pg_ctl -D /usr/local/var/postgres init | |
pg_ctl -D /usr/local/var/postgres start | |
# Work around homebrew postgresql installation screw-up, see | |
# https://github.com/actions/runner-images/issues/6176 | |
ln -s $(pg_config --libdir)/* /usr/local/lib/ || true | |
ln -s $(pg_config --includedir)/* /usr/local/include/ | |
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/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 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- 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 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- 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 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- 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 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/build-and-test | |
ubuntu20-pg12-gcc10-jit: | |
runs-on: ubuntu-20.04 | |
env: | |
CC: gcc-10 | |
CXX: g++-10 | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: ON | |
POSTGRESQL_VERSION: 12 | |
POSTGIS_VERSION: 2.5 | |
BUILD_TYPE: Debug | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/build-and-test | |
ubuntu20-pg13-clang10-jit: | |
runs-on: ubuntu-20.04 | |
env: | |
CC: clang-10 | |
CXX: clang++-10 | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: ON | |
POSTGRESQL_VERSION: 13 | |
POSTGIS_VERSION: 3 | |
BUILD_TYPE: Debug | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/build-and-test | |
ubuntu20-pg13-clang10-proj6: | |
runs-on: ubuntu-20.04 | |
env: | |
CC: clang-10 | |
CXX: clang++-10 | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: OFF | |
POSTGRESQL_VERSION: 13 | |
POSTGIS_VERSION: 3 | |
USE_PROJ_LIB: 6 | |
BUILD_TYPE: Debug | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/build-and-test | |
ubuntu20-pg13-clang10-noproj: | |
runs-on: ubuntu-20.04 | |
env: | |
CC: clang-10 | |
CXX: clang++-10 | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: OFF | |
POSTGRESQL_VERSION: 13 | |
POSTGIS_VERSION: 3 | |
USE_PROJ_LIB: off | |
BUILD_TYPE: Debug | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/build-and-test | |
ubuntu20-pg13-clang10-cpp17: | |
runs-on: ubuntu-20.04 | |
env: | |
CC: clang-10 | |
CXX: clang++-10 | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: OFF | |
POSTGRESQL_VERSION: 14 | |
POSTGIS_VERSION: 3 | |
USE_PROJ_LIB: 6 | |
BUILD_TYPE: Debug | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- 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 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/build-and-test | |
ubuntu20-pg13-gcc10-release-nolua: | |
runs-on: ubuntu-20.04 | |
env: | |
CC: gcc-10 | |
CXX: g++-10 | |
POSTGRESQL_VERSION: 13 | |
POSTGIS_VERSION: 2.5 | |
BUILD_TYPE: Release | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/build-and-test | |
ubuntu22-pg14-clang14-jit: | |
runs-on: ubuntu-22.04 | |
env: | |
CC: clang-14 | |
CXX: clang++-14 | |
LUA_VERSION: 5.4 | |
LUAJIT_OPTION: ON | |
POSTGRESQL_VERSION: 14 | |
POSTGIS_VERSION: 3 | |
BUILD_TYPE: Debug | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/build-and-test | |
ubuntu22-pg14-clang14-proj6: | |
runs-on: ubuntu-22.04 | |
env: | |
CC: clang-14 | |
CXX: clang++-14 | |
LUA_VERSION: 5.4 | |
LUAJIT_OPTION: OFF | |
POSTGRESQL_VERSION: 14 | |
POSTGIS_VERSION: 3 | |
USE_PROJ_LIB: 6 | |
BUILD_TYPE: Debug | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/build-and-test | |
ubuntu22-pg14-clang14-noproj: | |
runs-on: ubuntu-22.04 | |
env: | |
CC: clang-14 | |
CXX: clang++-14 | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: OFF | |
POSTGRESQL_VERSION: 14 | |
POSTGIS_VERSION: 3 | |
USE_PROJ_LIB: off | |
BUILD_TYPE: Debug | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/build-and-test | |
ubuntu22-pg14-clang14-cpp17: | |
runs-on: ubuntu-22.04 | |
env: | |
CC: clang-14 | |
CXX: clang++-14 | |
LUA_VERSION: 5.4 | |
LUAJIT_OPTION: OFF | |
POSTGRESQL_VERSION: 14 | |
POSTGIS_VERSION: 3 | |
USE_PROJ_LIB: 6 | |
BUILD_TYPE: Debug | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/build-and-test | |
ubuntu22-pg14-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: 14 | |
POSTGIS_VERSION: 3 | |
BUILD_TYPE: Release | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/build-and-test | |
ubuntu22-pg14-gcc12-release-nolua: | |
runs-on: ubuntu-22.04 | |
env: | |
CC: gcc-12 | |
CXX: g++-12 | |
EXTRA_FLAGS: -Wno-stringop-overread | |
POSTGRESQL_VERSION: 14 | |
POSTGIS_VERSION: 3 | |
BUILD_TYPE: Release | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/build-and-test | |
ubuntu22-pg14-clang14-cpp20: | |
runs-on: ubuntu-22.04 | |
env: | |
CC: clang-14 | |
CXX: clang++-14 | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: OFF | |
POSTGRESQL_VERSION: 14 | |
POSTGIS_VERSION: 3 | |
CPP_VERSION: 20 | |
BUILD_TYPE: Debug | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/build-and-test | |
ubuntu22-pg14-gcc12-cpp20: | |
runs-on: ubuntu-22.04 | |
env: | |
CC: gcc-12 | |
CXX: g++-12 | |
LUA_VERSION: 5.3 | |
LUAJIT_OPTION: OFF | |
POSTGRESQL_VERSION: 14 | |
POSTGIS_VERSION: 3 | |
CPP_VERSION: 20 | |
BUILD_TYPE: Debug | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/ubuntu-prerequisites | |
- uses: ./.github/actions/build-and-test | |
windows: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [windows-2019, windows-2022] | |
runs-on: ${{ matrix.os }} | |
env: | |
GETOPT_INCLUDE_DIR: ${{ github.workspace }}/../wingetopt/src | |
GETOPT_LIBRARY: ${{ github.workspace }}/../wingetopt/build/Release/wingetopt.lib | |
VCPKG_DEFAULT_BINARY_CACHE: C:/vcpkg_binary_cache | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
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@v3 | |
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-getopt | |
- 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:/artifact/osm2pgsql-bin/ | |
shell: bash | |
working-directory: build | |
if: matrix.os == 'windows-2022' | |
- name: 'Upload Artifact' | |
uses: actions/upload-artifact@v3 | |
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@v3 | |
- uses: actions/cache@v3 | |
with: | |
path: | | |
C:/postgis.zip | |
key: postgis-cache | |
- uses: actions/download-artifact@v3 | |
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 | |