Skip to content

Commit

Permalink
CI/Docs updates (#470)
Browse files Browse the repository at this point in the history
* Deprecate macOS 12 and add macOS 15
* Deprecate Fedora 39 and add Fedora 41
* Upgrade CodeCov actions to v4
* Fix FreeBSD 14 CI builds
  • Loading branch information
hummeltech authored Nov 11, 2024
1 parent 5aadf31 commit 4eed255
Show file tree
Hide file tree
Showing 16 changed files with 96 additions and 63 deletions.
2 changes: 1 addition & 1 deletion .github/actions/cmake/package/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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`
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/cmake/test/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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()

Expand Down
11 changes: 8 additions & 3 deletions .github/actions/coverage/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ inputs:
default: ""
lcov-extra-options:
default: ""
codecov-token:
default: ""

runs:
using: composite
Expand Down Expand Up @@ -33,9 +35,12 @@ runs:
shell: bash --noprofile --norc -euxo pipefail {0}

- name: Report `mod_tile` coverage results to `codecov.io`
uses: codecov/[email protected]
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: |
Expand All @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
83 changes: 44 additions & 39 deletions .github/actions/dependencies/install/action.yml
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -30,6 +64,7 @@ inputs:
debian-test-dependencies:
default: >-
apache2
git
jq
lcov
memcached
Expand All @@ -47,6 +82,7 @@ inputs:
sqlite-devel
fedora-test-dependencies:
default: >-
git
httpd
jq
lcov
Expand Down Expand Up @@ -75,6 +111,7 @@ inputs:
curl
glib
httpd
icu4c
iniparser
libmemcached
mapnik
Expand Down Expand Up @@ -103,6 +140,7 @@ inputs:
jq
lcov
memcached
procps
opensuse-mapnik-build-dependencies:
default: >-
cmake
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down
25 changes: 16 additions & 9 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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/') &&
Expand Down Expand Up @@ -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
Expand All @@ -161,16 +165,16 @@ jobs:
fail-fast: false
matrix:
os:
- macos-12
- macos-13
- macos-14
build_system:
- CMake
compiler:
- LLVM
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:
Expand All @@ -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'
Expand All @@ -218,22 +223,22 @@ 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:
- LLVM
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:
Expand All @@ -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

Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docker-image-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion docker/centos/stream/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion docker/centos/stream/Dockerfile.autotools
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 3 additions & 1 deletion docker/debian/Dockerfile
Original file line number Diff line number Diff line change
@@ -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

Expand Down Expand Up @@ -54,6 +55,7 @@ FROM debian:${debian_version} AS runner

## Arguments
ARG debian_version
ARG libiniparser_version
ARG libmapnik_version
ARG runner_additional_packages

Expand All @@ -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 \
Expand Down
4 changes: 3 additions & 1 deletion docker/debian/Dockerfile.autotools
Original file line number Diff line number Diff line change
@@ -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

Expand Down Expand Up @@ -45,6 +46,7 @@ FROM debian:${debian_version} AS runner

## Arguments
ARG debian_version
ARG libiniparser_version
ARG libmapnik_version
ARG runner_additional_packages

Expand All @@ -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
Expand Down
Loading

0 comments on commit 4eed255

Please sign in to comment.