CI/Docs updates (#470)

* Deprecate macOS 12 and add macOS 15
* Deprecate Fedora 39 and add Fedora 41
* Upgrade CodeCov actions to v4
* Fix FreeBSD 14 CI builds
This commit is contained in:
Hummeltech
2024-11-11 09:38:57 -07:00
committed by GitHub
parent 5aadf31ccc
commit 4eed25522a
16 changed files with 96 additions and 63 deletions

View File

@ -4,7 +4,7 @@ runs:
steps:
- name: Set `CPACK_PACKAGE_FILE_NAME`
run: |
echo "CPACK_PACKAGE_FILE_NAME=mod_tile-${GITHUB_SHA}-$(echo ${{ matrix.image || matrix.os || matrix.box_generic || github.job }}-${{ matrix.build_system }}-${{ matrix.compiler }} | sed 's/[^0-9a-zA-Z-]/_/g')" >> ${GITHUB_ENV}
echo "CPACK_PACKAGE_FILE_NAME=mod_tile-${GITHUB_SHA}-$(echo ${{ matrix.image || matrix.os || matrix.box_freebsd || github.job }}-${{ matrix.build_system }}-${{ matrix.compiler }} | sed 's/[^0-9a-zA-Z-]/_/g')" >> ${GITHUB_ENV}
shell: bash --noprofile --norc -euxo pipefail {0}
- name: Set `CPACK_OPTIONS`

View File

@ -15,7 +15,7 @@ runs:
- name: Set `TEST_ARTIFACT_NAME`
run: |
echo "TEST_ARTIFACT_NAME=$(echo ${{ matrix.image || matrix.os || matrix.box_generic || github.job }}-${{ matrix.build_system }}-${{ matrix.compiler }} | sed 's/[^0-9a-zA-Z-]/_/g')" >> ${GITHUB_ENV}
echo "TEST_ARTIFACT_NAME=$(echo ${{ matrix.image || matrix.os || matrix.box_freebsd || github.job }}-${{ matrix.build_system }}-${{ matrix.compiler }} | sed 's/[^0-9a-zA-Z-]/_/g')" >> ${GITHUB_ENV}
shell: bash --noprofile --norc -euxo pipefail {0}
if: failure()

View File

@ -4,6 +4,8 @@ inputs:
default: ""
lcov-extra-options:
default: ""
codecov-token:
default: ""
runs:
using: composite
@ -33,9 +35,12 @@ runs:
shell: bash --noprofile --norc -euxo pipefail {0}
- name: Report `mod_tile` coverage results to `codecov.io`
uses: codecov/codecov-action@v3.1.5
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ inputs.codecov-token }}
with:
files: coverage.info
disable_search: true
file: coverage.info
- name: Write `mod_tile` coverage summary to `$GITHUB_STEP_SUMMARY`
run: |
@ -53,7 +58,7 @@ runs:
- name: Set `COVERAGE_ARTIFACT_NAME`
run: |
echo "COVERAGE_ARTIFACT_NAME=$(echo ${{ matrix.image || matrix.os || matrix.box_generic || github.job }}-${{ matrix.build_system }}-${{ matrix.compiler }} | sed 's/[^0-9a-zA-Z-]/_/g')" >> ${GITHUB_ENV}
echo "COVERAGE_ARTIFACT_NAME=$(echo ${{ matrix.image || matrix.os || matrix.box_freebsd || github.job }}-${{ matrix.build_system }}-${{ matrix.compiler }} | sed 's/[^0-9a-zA-Z-]/_/g')" >> ${GITHUB_ENV}
shell: bash --noprofile --norc -euxo pipefail {0}
- name: Upload `mod_tile` coverage artifacts

View File

@ -15,7 +15,7 @@ runs:
path: |
mapnik-build
mapnik-src
key: ${{ matrix.image || matrix.os || matrix.box_generic || github.job }}-${{ matrix.compiler }}-mapnik-${{ inputs.version }}
key: ${{ matrix.image || matrix.os || matrix.box_freebsd || github.job }}-${{ matrix.compiler }}-mapnik-${{ inputs.version }}
- name: Checkout `Mapnik`
uses: actions/checkout@v4

View File

@ -1,5 +1,39 @@
---
inputs:
centos-stream-build-dependencies:
default: >-
cairo-devel
glib2-devel
httpd-devel
iniparser-devel
libcurl-devel
libmemcached-devel
librados2-devel
centos-stream-test-dependencies:
default: >-
httpd
jq
lcov
memcached
procps
centos-stream-mapnik-build-dependencies:
default: >-
boost-devel
cmake
freetype-devel
gdal-devel
git
harfbuzz-devel
libicu-devel
libjpeg-devel
libpng-devel
libtiff-devel
libwebp-devel
libxml2-devel
postgresql-devel
proj-devel
sqlite-devel
zlib-devel
debian-build-dependencies:
default: >-
apache2-dev
@ -30,6 +64,7 @@ inputs:
debian-test-dependencies:
default: >-
apache2
git
jq
lcov
memcached
@ -47,6 +82,7 @@ inputs:
sqlite-devel
fedora-test-dependencies:
default: >-
git
httpd
jq
lcov
@ -75,6 +111,7 @@ inputs:
curl
glib
httpd
icu4c
iniparser
libmemcached
mapnik
@ -103,6 +140,7 @@ inputs:
jq
lcov
memcached
procps
opensuse-mapnik-build-dependencies:
default: >-
cmake
@ -121,40 +159,6 @@ inputs:
proj-devel
sqlite3-devel
zlib-devel
rhel-build-dependencies:
default: >-
cairo-devel
glib2-devel
httpd-devel
iniparser-devel
libcurl-devel
libmemcached-devel
librados2-devel
rhel-test-dependencies:
default: >-
httpd
jq
lcov
memcached
procps
rhel-mapnik-build-dependencies:
default: >-
boost-devel
cmake
freetype-devel
gdal-devel
git
harfbuzz-devel
libicu-devel
libjpeg-devel
libpng-devel
libtiff-devel
libwebp-devel
libxml2-devel
postgresql-devel
proj-devel
sqlite-devel
zlib-devel
ubuntu-build-dependencies:
default: >-
apache2-dev
@ -185,13 +189,14 @@ inputs:
ubuntu-test-dependencies:
default: >-
apache2
git
jq
lcov
memcached
mapnik-build-version-centos-stream:
default: 4.0.0
default: 4.0.3
mapnik-build-version-opensuse:
default: 4.0.0
default: 4.0.3
runs:
using: composite
@ -201,9 +206,9 @@ runs:
with:
dependencies: epel-release
packages: >-
${{ inputs.rhel-build-dependencies }}
${{ inputs.rhel-mapnik-build-dependencies }}
${{ inputs.rhel-test-dependencies }}
${{ inputs.centos-stream-build-dependencies }}
${{ inputs.centos-stream-mapnik-build-dependencies }}
${{ inputs.centos-stream-test-dependencies }}
${{ matrix.build_system == 'CMake' && 'cmake' || 'autoconf automake redhat-rpm-config' }}
${{ matrix.compiler == 'LLVM' && 'clang' || 'gcc gcc-c++' }}
rpm-build

View File

@ -22,8 +22,8 @@ jobs:
image:
- "debian:11"
- "debian:12"
- "fedora:39"
- "fedora:40"
- "fedora:41"
- "opensuse/leap:15"
- "quay.io/centos/centos:stream9"
- "ubuntu:22.04"
@ -83,6 +83,8 @@ jobs:
- name: Process & Report `mod_tile` coverage results
uses: ./.github/actions/coverage
with:
codecov-token: ${{ secrets.CODECOV_TOKEN }}
if: |
matrix.compiler != 'LLVM' &&
!startsWith(matrix.image, 'opensuse/') &&
@ -137,6 +139,8 @@ jobs:
- name: Process & Report `mod_tile` coverage results
uses: ./.github/actions/coverage
with:
codecov-token: ${{ secrets.CODECOV_TOKEN }}
- name: Package `mod_tile`
uses: ./.github/actions/cmake/package
@ -161,8 +165,8 @@ jobs:
fail-fast: false
matrix:
os:
- macos-12
- macos-13
- macos-14
build_system:
- CMake
compiler:
@ -170,7 +174,7 @@ jobs:
on_default_branch:
- ${{ contains(github.ref, 'master') || contains(github.ref, 'develop') || contains(github.ref, 'CI') }}
include:
- os: macos-14
- os: macos-15
build_system: CMake
compiler: LLVM
exclude:
@ -197,6 +201,7 @@ jobs:
- name: Process & Report `mod_tile` coverage results
uses: ./.github/actions/coverage
with:
codecov-token: ${{ secrets.CODECOV_TOKEN }}
genhtml-extra-options: --keep-going --ignore-errors count,inconsistent,range
lcov-extra-options: --keep-going --ignore-errors count,inconsistent,range
if: matrix.os != 'macos-12'
@ -218,14 +223,14 @@ jobs:
LIBRARY_PATH: /usr/local/lib
TMPDIR: /tmp
name: >-
${{ matrix.box_generic }}
${{ matrix.box_freebsd }}
(${{ matrix.build_system }})
(${{ matrix.compiler }})
runs-on: ubuntu-latest
strategy:
matrix:
box_generic:
- freebsd13
box_freebsd:
- FreeBSD-13.4-STABLE
build_system:
- CMake
compiler:
@ -233,7 +238,7 @@ jobs:
on_default_branch:
- ${{ contains(github.ref, 'master') || contains(github.ref, 'develop') || contains(github.ref, 'CI') }}
include:
- box_generic: freebsd14
- box_freebsd: FreeBSD-14.1-STABLE
build_system: CMake
compiler: LLVM
exclude:
@ -249,9 +254,9 @@ jobs:
echo "TEST_PARALLEL_LEVEL=$(nproc)" >> ${GITHUB_ENV}
- name: Provision VM
uses: hummeltech/freebsd-vagrant-action@v2
uses: hummeltech/freebsd-vagrant-action@v3
with:
box: generic/${{ matrix.box_generic }}
box: freebsd/${{ matrix.box_freebsd }}
cpus: ${{ env.BUILD_PARALLEL_LEVEL }}
memory: 4096
@ -273,6 +278,8 @@ jobs:
- name: Process & Report `mod_tile` coverage results
uses: ./.github/actions/coverage
with:
codecov-token: ${{ secrets.CODECOV_TOKEN }}
- name: Package `mod_tile`
uses: ./.github/actions/cmake/package

View File

@ -35,8 +35,8 @@ jobs:
- centos-stream-9
- debian-11
- debian-12
- fedora-39
- fedora-40
- fedora-41
- opensuse-leap-15
- ubuntu-22.04
- ubuntu-24.04

View File

@ -2,7 +2,7 @@
# Arguments
ARG centos_stream_version=9
ARG extra_repository=crb
ARG mapnik_version=4.0.0
ARG mapnik_version=4.0.3
# Mapnik Builder
FROM quay.io/centos/centos:stream${centos_stream_version} AS mapnik-builder

View File

@ -2,7 +2,7 @@
# Arguments
ARG centos_stream_version=9
ARG extra_repository=crb
ARG mapnik_version=4.0.0
ARG mapnik_version=4.0.3
# Mapnik Builder
FROM quay.io/centos/centos:stream${centos_stream_version} AS mapnik-builder

View File

@ -1,6 +1,7 @@
# hadolint global ignore=DL3008,DL3025,DL3059
# Arguments
ARG debian_version=12
ARG libiniparser_version=1
ARG libmapnik_version=3.1
ARG runner_additional_packages=libcurl4 libglib2.0
@ -54,6 +55,7 @@ FROM debian:${debian_version} AS runner
## Arguments
ARG debian_version
ARG libiniparser_version
ARG libmapnik_version
ARG runner_additional_packages
@ -66,7 +68,7 @@ RUN --mount=type=cache,sharing=locked,id=debian:${debian_version}-/var/cache/apt
apt-get --no-install-recommends --yes install ${runner_additional_packages} \
apache2 \
libcairo2 \
libiniparser1 \
libiniparser${libiniparser_version} \
libmapnik${libmapnik_version} \
libmemcached11 \
libmemcachedutil2 \

View File

@ -1,6 +1,7 @@
# hadolint global ignore=DL3008,DL3025,DL3059
# Arguments
ARG debian_version=12
ARG libiniparser_version=1
ARG libmapnik_version=3.1
ARG runner_additional_packages=libcurl4 libglib2.0
@ -45,6 +46,7 @@ FROM debian:${debian_version} AS runner
## Arguments
ARG debian_version
ARG libiniparser_version
ARG libmapnik_version
ARG runner_additional_packages
@ -57,7 +59,7 @@ RUN --mount=type=cache,sharing=locked,id=debian:${debian_version}-/var/cache/apt
apt-get --no-install-recommends --yes install ${runner_additional_packages} \
apache2 \
libcairo2 \
libiniparser1 \
libiniparser${libiniparser_version} \
libmapnik${libmapnik_version} \
libmemcached11 \
librados2

View File

@ -134,6 +134,7 @@ services:
build:
<<: *build_defaults_debian
args:
libiniparser_version: 4
libmapnik_version: "4.0"
debian_version: unstable
runner_additional_packages: >-
@ -144,6 +145,7 @@ services:
build:
<<: *build_defaults_debian
args:
libiniparser_version: 4
libmapnik_version: "4.0"
debian_version: unstable
runner_additional_packages: >-
@ -192,6 +194,12 @@ services:
<<: *build_defaults_fedora
args:
fedora_version: "40"
fedora-41:
<<: *service_defaults
build:
<<: *build_defaults_fedora
args:
fedora_version: "41"
fedora-rawhide:
<<: *service_defaults
build:

View File

@ -2,7 +2,7 @@
# Arguments
ARG boost_version
ARG gcc_version
ARG mapnik_version=4.0.0
ARG mapnik_version=4.0.3
ARG opensuse_release=leap
ARG opensuse_version=15
@ -107,6 +107,7 @@ RUN --mount=type=cache,sharing=locked,id=opensuse/${opensuse_release}:${opensuse
libtiff-devel \
libwebp-devel \
libxml2-devel \
procps \
proj-devel \
tar

View File

@ -6,7 +6,7 @@ Please see our [Continuous Integration script](/.github/workflows/build-and-test
A Docker-based building & testing setup pipeline is also available [here](/docker) for your convenience.
## Fedora 34/35/36/37/38/39/40
## Fedora 34/35/36/37/38/39/40/41
```shell
#!/usr/bin/env bash
@ -29,7 +29,8 @@ sudo dnf --assumeyes --setopt=install_weak_deps=False install \
libmemcached-devel \
librados-devel \
mapnik-devel \
mapnik-static
mapnik-static \
procps
# Download, Build, Test & Install `mod_tile`
export CMAKE_BUILD_PARALLEL_LEVEL=$(nproc)

View File

@ -4,7 +4,7 @@ This document provides users with step-by-step instructions on how to compile an
Please see our [Continuous Integration script](/.github/workflows/build-and-test.yml) for more details.
## macOS 11/12/13/14
## macOS 11/12/13/14/15
```shell
#!/usr/bin/env bash
@ -22,6 +22,7 @@ brew install \
curl \
glib \
httpd \
icu4c \
iniparser \
libmemcached \
mapnik \

View File

@ -38,6 +38,7 @@ sudo zypper --non-interactive install \
libtiff-devel \
libwebp-devel \
libxml2-devel \
procps \
proj-devel \
tar