317 lines
9.6 KiB
YAML
317 lines
9.6 KiB
YAML
|
name: CI
|
||
|
|
||
|
on: [ push, pull_request ]
|
||
|
|
||
|
jobs:
|
||
|
|
||
|
linux:
|
||
|
runs-on: ubuntu-latest
|
||
|
timeout-minutes: 40
|
||
|
strategy:
|
||
|
fail-fast: false
|
||
|
matrix:
|
||
|
name: [Ubuntu-18, Ubuntu-20, Ubuntu-21, Debian-9, Debian-10, Debian-11, Debian-Testing, Debian-Experimental, Fedora-34]
|
||
|
build_type: [Dev]
|
||
|
cpp_compiler: [g++]
|
||
|
cpp_version: [c++11]
|
||
|
include:
|
||
|
- name: Ubuntu-18
|
||
|
# Uses gcc 7.5.0, clang 6.0.0, cmake 3.10.2
|
||
|
image: "ubuntu:18.04"
|
||
|
ubuntu: 18
|
||
|
installer: apt
|
||
|
- name: Ubuntu-20
|
||
|
# Uses gcc 9.3.0, clang 10.0.0, cmake 3.16.3
|
||
|
image: "ubuntu:20.04"
|
||
|
ubuntu: 20
|
||
|
installer: apt
|
||
|
- name: Ubuntu-21
|
||
|
# Uses gcc 10.3.0, clang, 12.0.0, cmake 3.18.4
|
||
|
image: "ubuntu:21.04"
|
||
|
ubuntu: 21
|
||
|
installer: apt
|
||
|
- name: Debian-9
|
||
|
# Uses gcc 6.3.0, clang 3.8.1, cmake 3.7.2
|
||
|
image: "debian:stretch"
|
||
|
installer: apt
|
||
|
- name: Debian-10
|
||
|
# Uses gcc 8.3.0, clang 7.0.1, cmake 3.13.4
|
||
|
image: "debian:buster"
|
||
|
installer: apt
|
||
|
- name: Debian-11
|
||
|
# Uses gcc 10.2.1, clang 11.0.1, cmake 3.18.4
|
||
|
image: "debian:bullseye"
|
||
|
installer: apt
|
||
|
- name: Debian-11
|
||
|
# Uses gcc 10.2.1, clang 11.0.1, cmake 3.18.4
|
||
|
image: "debian:bullseye"
|
||
|
installer: apt
|
||
|
cpp_version: c++17
|
||
|
- name: Debian-11
|
||
|
# Uses gcc 10.2.1, clang 11.0.1, cmake 3.18.4
|
||
|
image: "debian:bullseye"
|
||
|
installer: apt
|
||
|
cpp_version: c++20
|
||
|
- name: Debian-11
|
||
|
# Uses gcc 10.2.1, clang 11.0.1, cmake 3.18.4
|
||
|
image: "debian:bullseye"
|
||
|
installer: apt
|
||
|
c_compiler: clang
|
||
|
cpp_compiler: clang++
|
||
|
cpp_version: c++17
|
||
|
- name: Debian-11
|
||
|
# Uses gcc 10.2.1, clang 11.0.1, cmake 3.18.4
|
||
|
image: "debian:bullseye"
|
||
|
installer: apt
|
||
|
c_compiler: clang
|
||
|
cpp_compiler: clang++
|
||
|
cpp_version: c++20
|
||
|
- name: Debian-11
|
||
|
# Uses gcc 10.2.1, clang 11.0.1, cmake 3.18.4
|
||
|
image: "debian:bullseye"
|
||
|
installer: apt
|
||
|
build_type: RelWithDebInfo
|
||
|
- name: Debian-11
|
||
|
# Uses gcc 10.2.1, clang 11.0.1, cmake 3.18.4
|
||
|
image: "debian:bullseye"
|
||
|
installer: apt
|
||
|
c_compiler: clang
|
||
|
cpp_compiler: clang++
|
||
|
- name: Debian-11
|
||
|
# Uses gcc 10.2.1, clang 11.0.1, cmake 3.18.4
|
||
|
image: "debian:bullseye"
|
||
|
installer: apt
|
||
|
c_compiler: clang
|
||
|
cpp_compiler: clang++
|
||
|
CXXFLAGS: -fsanitize=address,undefined,integer -fno-sanitize-recover=all -fno-omit-frame-pointer
|
||
|
LDFLAGS: -fsanitize=address,undefined,integer
|
||
|
- name: Debian-Testing
|
||
|
# Uses gcc 10.3.0, clang 11.1.0, cmake 3.21.3
|
||
|
image: "debian:testing"
|
||
|
installer: apt
|
||
|
CXXFLAGS: -Wno-stringop-overread
|
||
|
- name: Debian-Testing
|
||
|
# Uses gcc 10.3.0, clang 11.1.0, cmake 3.21.3
|
||
|
image: "debian:testing"
|
||
|
installer: apt
|
||
|
c_compiler: clang
|
||
|
cpp_compiler: clang++
|
||
|
- name: Debian-Experimental
|
||
|
# Uses gcc 11, clang 14, cmake 3.21.3
|
||
|
image: "debian:experimental"
|
||
|
installer: apt
|
||
|
CXXFLAGS: -Wno-stringop-overread
|
||
|
- name: Debian-Experimental
|
||
|
# Uses gcc 11, clang 14, cmake 3.21.3
|
||
|
image: "debian:experimental"
|
||
|
installer: apt
|
||
|
c_compiler: clang-14
|
||
|
cpp_compiler: clang++-14
|
||
|
- name: Fedora-34
|
||
|
# Uses gcc 11.2.1, clang 12.0.1, cmake 3.20.5
|
||
|
image: "fedora:34"
|
||
|
installer: dnf
|
||
|
CXXFLAGS: -Wno-stringop-overread
|
||
|
- name: Fedora-35
|
||
|
# Uses gcc 11.2.1, clang 12.0.1, cmake 3.20.5
|
||
|
image: "fedora:35"
|
||
|
installer: dnf
|
||
|
CXXFLAGS: -Wno-stringop-overread
|
||
|
container:
|
||
|
image: ${{ matrix.image }}
|
||
|
env:
|
||
|
LANG: en_US.UTF-8
|
||
|
BUILD_TYPE: ${{ matrix.build_type }}
|
||
|
CXXFLAGS: ${{ matrix.CXXFLAGS }}
|
||
|
LDFLAGS: ${{ matrix.LDFLAGS }}
|
||
|
CC: ${{ matrix.c_compiler }}
|
||
|
CXX: ${{ matrix.cpp_compiler }}
|
||
|
CPP_VERSION: ${{ matrix.cpp_version }}
|
||
|
WITH_PROJ: ON
|
||
|
steps:
|
||
|
- name: Prepare container (apt)
|
||
|
run: |
|
||
|
export APT_LISTCHANGES_FRONTEND=none
|
||
|
export DEBIAN_FRONTEND=noninteractive
|
||
|
apt-get update -qq
|
||
|
apt-get install -y \
|
||
|
clang \
|
||
|
cmake \
|
||
|
doxygen \
|
||
|
g++ \
|
||
|
git \
|
||
|
graphviz \
|
||
|
libboost-dev \
|
||
|
libbz2-dev \
|
||
|
libexpat1-dev \
|
||
|
libgdal-dev \
|
||
|
libgeos++-dev \
|
||
|
liblz4-dev \
|
||
|
libproj-dev \
|
||
|
libsparsehash-dev \
|
||
|
make \
|
||
|
ruby \
|
||
|
ruby-json \
|
||
|
spatialite-bin \
|
||
|
zlib1g-dev
|
||
|
shell: bash
|
||
|
if: matrix.installer == 'apt'
|
||
|
- name: Install compiler
|
||
|
shell: bash
|
||
|
run: |
|
||
|
export APT_LISTCHANGES_FRONTEND=none
|
||
|
export DEBIAN_FRONTEND=noninteractive
|
||
|
apt-get install -y clang-14
|
||
|
if: matrix.cpp_compiler == 'clang++-14'
|
||
|
- name: Prepare container (dnf)
|
||
|
run: |
|
||
|
dnf install --quiet --assumeyes \
|
||
|
boost-devel \
|
||
|
bzip2-devel \
|
||
|
cmake \
|
||
|
doxygen \
|
||
|
expat-devel \
|
||
|
gcc-c++ \
|
||
|
gdal-devel \
|
||
|
gdalcpp-static \
|
||
|
geos-devel \
|
||
|
git \
|
||
|
graphviz \
|
||
|
lz4-devel \
|
||
|
make \
|
||
|
proj-devel \
|
||
|
ruby \
|
||
|
rubygem-json \
|
||
|
sparsehash-devel \
|
||
|
spatialite-tools \
|
||
|
zlib-devel
|
||
|
shell: bash
|
||
|
if: matrix.installer == 'dnf'
|
||
|
# Use v1 of checkout because v2 doesn't work with submodules
|
||
|
- uses: actions/checkout@v1
|
||
|
with:
|
||
|
submodules: true
|
||
|
- uses: ./.github/actions/install-protozero
|
||
|
- uses: ./.github/actions/cmake
|
||
|
- uses: ./.github/actions/build
|
||
|
- uses: ./.github/actions/ctest
|
||
|
|
||
|
ubuntu-latest:
|
||
|
runs-on: ubuntu-20.04
|
||
|
timeout-minutes: 40
|
||
|
env:
|
||
|
CC: clang-13
|
||
|
CXX: clang++-13
|
||
|
BUILD_TYPE: Dev
|
||
|
WITH_PROJ: ON
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
with:
|
||
|
submodules: true
|
||
|
- name: Install new clang
|
||
|
run: |
|
||
|
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
|
||
|
sudo add-apt-repository 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main'
|
||
|
shell: bash
|
||
|
- uses: ./.github/actions/install-ubuntu
|
||
|
- uses: ./.github/actions/install-protozero
|
||
|
- uses: ./.github/actions/cmake
|
||
|
- uses: ./.github/actions/build
|
||
|
- uses: ./.github/actions/ctest
|
||
|
|
||
|
macos10-dev:
|
||
|
runs-on: macos-10.15
|
||
|
timeout-minutes: 60
|
||
|
env:
|
||
|
CC: clang
|
||
|
CXX: clang++
|
||
|
BUILD_TYPE: Dev
|
||
|
WITH_PROJ: OFF
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
with:
|
||
|
submodules: true
|
||
|
- uses: ./.github/actions/install-macos
|
||
|
- uses: ./.github/actions/install-protozero
|
||
|
- uses: ./.github/actions/cmake
|
||
|
- uses: ./.github/actions/build
|
||
|
- uses: ./.github/actions/ctest
|
||
|
|
||
|
macos11-dev:
|
||
|
runs-on: macos-11
|
||
|
timeout-minutes: 60
|
||
|
env:
|
||
|
CC: clang
|
||
|
CXX: clang++
|
||
|
BUILD_TYPE: Dev
|
||
|
WITH_PROJ: OFF
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
with:
|
||
|
submodules: true
|
||
|
- uses: ./.github/actions/install-macos
|
||
|
- uses: ./.github/actions/install-protozero
|
||
|
- uses: ./.github/actions/cmake
|
||
|
- uses: ./.github/actions/build
|
||
|
- uses: ./.github/actions/ctest
|
||
|
|
||
|
macos11-release:
|
||
|
runs-on: macos-11
|
||
|
timeout-minutes: 60
|
||
|
env:
|
||
|
CC: clang
|
||
|
CXX: clang++
|
||
|
BUILD_TYPE: Release
|
||
|
WITH_PROJ: OFF
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
with:
|
||
|
submodules: true
|
||
|
- uses: ./.github/actions/install-macos
|
||
|
- uses: ./.github/actions/install-protozero
|
||
|
- uses: ./.github/actions/cmake
|
||
|
- uses: ./.github/actions/build
|
||
|
- uses: ./.github/actions/ctest
|
||
|
|
||
|
windows-2019-minimal:
|
||
|
runs-on: windows-2019
|
||
|
timeout-minutes: 40
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
with:
|
||
|
submodules: true
|
||
|
- uses: ./.github/actions/install-windows
|
||
|
- uses: ./.github/actions/install-protozero
|
||
|
- uses: ./.github/actions/cmake-windows
|
||
|
- uses: ./.github/actions/build-windows
|
||
|
- uses: ./.github/actions/ctest-windows
|
||
|
|
||
|
windows-2019-full:
|
||
|
runs-on: windows-2019
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
with:
|
||
|
submodules: true
|
||
|
- uses: ./.github/actions/install-windows
|
||
|
- name: Install extra packages
|
||
|
run: vcpkg install geos:x64-windows gdal:x64-windows proj4:x64-windows
|
||
|
shell: bash
|
||
|
- uses: ./.github/actions/install-protozero
|
||
|
- uses: ./.github/actions/cmake-windows
|
||
|
- uses: ./.github/actions/build-windows
|
||
|
- uses: ./.github/actions/ctest-windows
|
||
|
|
||
|
windows-2022-minimal:
|
||
|
runs-on: windows-2022
|
||
|
timeout-minutes: 40
|
||
|
steps:
|
||
|
- uses: actions/checkout@v2
|
||
|
with:
|
||
|
submodules: true
|
||
|
- uses: ./.github/actions/install-windows
|
||
|
- uses: ./.github/actions/install-protozero
|
||
|
- uses: ./.github/actions/cmake-windows
|
||
|
- uses: ./.github/actions/build-windows
|
||
|
- uses: ./.github/actions/ctest-windows
|
||
|
|