Skip to content

Minor coverage improvements and CTest clean up (#361) #363

Minor coverage improvements and CTest clean up (#361)

Minor coverage improvements and CTest clean up (#361) #363

---
name: Build & Test
on:
pull_request:
push:
jobs:
Linux:
name: >-
${{ matrix.image }}
(${{ matrix.build_system }})
(${{ matrix.compiler }})
runs-on: ubuntu-latest
strategy:
matrix:
image:
- "centos:7"
- "debian:11"
- "debian:12"
- "debian:testing"
- "fedora:38"
- "fedora:39"
- "fedora:rawhide"
- "opensuse/leap:15"
- "ubuntu:20.04"
- "ubuntu:rolling"
build_system:
- CMake
compiler:
- GNU
on_default_branch:
- ${{ contains(github.ref, 'master') || contains(github.ref, 'develop') || contains(github.ref, 'CI') }}
include:
- image: "ubuntu:22.04"
build_system: Autotools
compiler: GNU
- image: "ubuntu:22.04"
build_system: Autotools
compiler: LLVM
- image: "ubuntu:22.04"
build_system: CMake
compiler: GNU
- image: "ubuntu:22.04"
build_system: CMake
compiler: LLVM
exclude:
- on_default_branch: false
fail-fast: false
container:
env:
CC: ${{ matrix.compiler == 'LLVM' && 'clang' || 'gcc' }}
CXX: ${{ matrix.compiler == 'LLVM' && 'clang++' || 'g++' }}
image: ${{ matrix.image }}
steps:
- name: Install `git` (Amazon Linux 2)
run: yum --assumeyes install git
if: matrix.image == 'amazonlinux:2'
- name: Install `git` (openSUSE)
run: zypper --non-interactive install git
if: startsWith(matrix.image, 'opensuse/')
- name: Checkout code (CentOS 7)
uses: actions/checkout@v3
if: matrix.image == 'centos:7'
- name: Checkout code
uses: actions/checkout@v4
if: matrix.image != 'centos:7'
- name: Install dependencies
uses: ./.github/actions/dependencies/install
- name: Build `mod_tile`
uses: ./.github/actions/build
- name: Test `mod_tile`
uses: ./.github/actions/test
- name: Install `mod_tile`
uses: ./.github/actions/install
Linux-Latest-Mapnik:
continue-on-error: true
name: >-
${{ matrix.image }}
(Latest Mapnik)
(${{ matrix.build_system }})
(${{ matrix.compiler }})
runs-on: ubuntu-latest
strategy:
matrix:
image:
- "debian:12"
- "ubuntu:22.04"
build_system:
- CMake
compiler:
- GNU
mapnik_latest:
- true
fail-fast: false
container:
env:
CC: ${{ matrix.compiler == 'LLVM' && 'clang' || 'gcc' }}
CXX: ${{ matrix.compiler == 'LLVM' && 'clang++' || 'g++' }}
image: ${{ matrix.image }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependencies
uses: ./.github/actions/dependencies/install
- name: Build `mod_tile`
uses: ./.github/actions/build
- name: Test `mod_tile`
uses: ./.github/actions/test
- name: Install `mod_tile`
uses: ./.github/actions/install
macOS:
env:
CFLAGS: -Wno-implicit-function-declaration
LDFLAGS: -undefined dynamic_lookup
LIBRARY_PATH: /usr/local/lib
name: >-
${{ matrix.os }}
(${{ matrix.build_system }})
(${{ matrix.compiler }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- macos-12
build_system:
- CMake
compiler:
- LLVM
on_default_branch:
- ${{ contains(github.ref, 'master') || contains(github.ref, 'develop') || contains(github.ref, 'CI') }}
include:
- os: macos-13
build_system: Autotools
compiler: LLVM
- os: macos-13
build_system: CMake
compiler: LLVM
exclude:
- on_default_branch: false
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependencies
uses: ./.github/actions/dependencies/install
- name: Set ICU_ROOT
run: |
echo "ICU_ROOT=$(brew --prefix icu4c)" >> ${GITHUB_ENV}
- name: Build `mod_tile`
uses: ./.github/actions/build
- name: Test `mod_tile`
uses: ./.github/actions/test
- name: Install `mod_tile`
uses: ./.github/actions/install
FreeBSD:
continue-on-error: true
env:
BUILD_PARALLEL_LEVEL: 2
LIBRARY_PATH: /usr/local/lib
TMPDIR: /tmp
name: >-
${{ matrix.box_generic }}
(${{ matrix.build_system }})
(${{ matrix.compiler }})
runs-on: ubuntu-latest
strategy:
matrix:
box_generic:
- freebsd12
- freebsd13
build_system:
- CMake
compiler:
- LLVM
on_default_branch:
- ${{ contains(github.ref, 'master') || contains(github.ref, 'develop') || contains(github.ref, 'CI') }}
include:
- box_generic: freebsd14
build_system: CMake
compiler: LLVM
exclude:
- on_default_branch: false
fail-fast: false
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Provision VM
uses: hummeltech/[email protected]
with:
box: generic/${{ matrix.box_generic }}
cpus: ${{ env.BUILD_PARALLEL_LEVEL }}
memory: 4096
# Mapnik is not in the `quarterly` repository (2023.10.12)
- name: Use "latest" repository
run: |
sudo mkdir -p /usr/local/etc/pkg/repos
sed 's#/quarterly#/latest#g' /etc/pkg/FreeBSD.conf | sudo tee /usr/local/etc/pkg/repos/FreeBSD.conf
sudo pkg upgrade
- name: Install dependencies
uses: ./.github/actions/dependencies/install
- name: Build `mod_tile`
uses: ./.github/actions/build
- name: Test `mod_tile`
uses: ./.github/actions/test
- name: Install `mod_tile`
uses: ./.github/actions/install