mirror of
https://github.com/openstreetmap/mod_tile.git
synced 2025-07-23 00:28:34 +00:00

* To facilitate running `memcached` tests for all jobs * `CentOS`/`Debian`/`Fedora` jobs don't seem to like running `memcached` on `localhost` * `FreeBSD` jobs don't seem to like running `memcached` on `0.0.0.0`
233 lines
6.0 KiB
YAML
233 lines
6.0 KiB
YAML
---
|
|
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
|
|
CTEST_HOST: localhost
|
|
LIBRARY_PATH: /usr/local/lib
|
|
TMPDIR: /tmp
|
|
name: >-
|
|
${{ matrix.box_generic }}
|
|
(${{ matrix.build_system }})
|
|
(${{ matrix.compiler }})
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
box_generic:
|
|
- 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/freebsd-vagrant-action@v1.4
|
|
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
|