Skip to content

Refactor code that gets a mutex and calls into Lua code #1414

Refactor code that gets a mutex and calls into Lua code

Refactor code that gets a mutex and calls into Lua code #1414

Workflow file for this run

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