GHA: canary-matrix.yml maintenance +ubuntu-26.04 +gcc-16 +clang22

This commit is contained in:
Darryl L. Miles 2026-07-19 12:52:32 +01:00 committed by R. Timothy Edwards
parent 86fbd2b50f
commit 3fb47d9668
1 changed files with 81 additions and 16 deletions

View File

@ -12,40 +12,83 @@ jobs:
strategy: strategy:
max-parallel: 3 max-parallel: 3
matrix: matrix:
os: [ubuntu-24.04, ubuntu-22.04] os: [ubuntu-26.04, ubuntu-24.04, ubuntu-22.04]
# Configure Options # Configure Options
# X11 OGL CAIRO # X11 OGL CAIRO
pkgs: [all, none, no_tk_tcl_rl, no_tk_tcl_brl, no_zlib, no_gc_gl_gu, no_gc, no_gl_gu] pkgs: [all, none, no_tk_tcl_rl, no_tk_tcl_brl, no_zlib, no_gc_gl_gu, no_gc, no_gl_gu]
# Toolchain # Toolchain:
# ubuntu-20.04 [gcc-9, clang-10] # ubuntu-20.04 [gcc-9, clang-10] # gcc-7 .. gcc-10 / clang-7 .. clang-12 + clang-18
# ubuntu-22.04 [gcc-11, clang-14] # ubuntu-22.04 [gcc-11, clang-14] # gcc-9 .. gcc-12 / clang-11 .. clang-15
# ubuntu-24.04 [gcc-13, clang-18] # ubuntu-24.04 [gcc-13, clang-18] # gcc-9 .. gcc-14 / clang-14 .. clang-20
tc: [default, gcc-10, gcc-11, gcc-12, gcc-13, gcc-14, clang-14, clang-15, clang-17, clang-18, clang-19] # ubuntu-26.04 [gcc-15, clang-21] # gcc-11 .. gcc-16 / clang-17 .. clang-22
tc: [default, gcc-10, gcc-11, gcc-12, gcc-13, gcc-14, gcc-15, gcc-16, clang-14, clang-15, clang-16, clang-17, clang-18, clang-19, clang-20, clang-21, clang-22]
exclude: exclude:
# These exclusions are mainly because they are unavailable or already covered
# gcc-10 .. gcc-12
- os: ubuntu-22.04 - os: ubuntu-22.04
tc: gcc-13 tc: gcc-13 # unavail (too new)
- os: ubuntu-22.04 - os: ubuntu-22.04
tc: gcc-14 tc: gcc-14 # unavail (too new)
- os: ubuntu-22.04 - os: ubuntu-22.04
tc: clang-17 tc: gcc-15 # unavail (too new)
- os: ubuntu-22.04
tc: gcc-16 # unavail (too new)
# clang-14 .. clang-15
- os: ubuntu-22.04
tc: clang-16 # unavail (too new)
- os: ubuntu-22.04
tc: clang-17 # unavail (too new)
- os: ubuntu-22.04 # some sources show this as present but not found - os: ubuntu-22.04 # some sources show this as present but not found
tc: clang-18 tc: clang-18 # unavail (too new)
- os: ubuntu-22.04 - os: ubuntu-22.04
tc: clang-19 tc: clang-19 # unavail (too new)
- os: ubuntu-22.04
tc: clang-20 # unavail (too new)
- os: ubuntu-22.04
tc: clang-21 # unavail (too new)
- os: ubuntu-22.04
tc: clang-22 # unavail (too new)
- os: ubuntu-24.04 - os: ubuntu-24.04
tc: gcc-10 tc: gcc-10 # covered with 22.04
- os: ubuntu-24.04 - os: ubuntu-24.04
tc: gcc-11 tc: gcc-11 # covered with 22.04
# gcc-12 .. gcc-14
- os: ubuntu-24.04 - os: ubuntu-24.04
tc: clang-14 tc: gcc-15 # unavail (too new)
- os: ubuntu-24.04 - os: ubuntu-24.04
tc: clang-15 tc: gcc-16 # unavail (too new)
- os: ubuntu-24.04
tc: clang-14 # covered with 22.04
- os: ubuntu-24.04
tc: clang-15 # covered with 22.04
# clang-16 .. clang-20
- os: ubuntu-24.04
tc: clang-21 # unavail (too new)
- os: ubuntu-24.04
tc: clang-22 # unavail (too new)
- os: ubuntu-26.04
tc: gcc-10 # unavail (too old)
- os: ubuntu-26.04
tc: gcc-11 # covered with 22.04
- os: ubuntu-26.04
tc: gcc-12 # covered with 24.04
- os: ubuntu-26.04
tc: gcc-13 # covered with 24.04
# gcc-14 .. gcc-16
- os: ubuntu-26.04
tc: clang-14 # unavail
- os: ubuntu-26.04
tc: clang-15 # unavail
- os: ubuntu-26.04
tc: clang-16 # unavail
# clang-17 .. clang-22
fail-fast: false fail-fast: false
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v7
- name: Matrix Check - name: Matrix Check
env: env:
@ -128,6 +171,11 @@ jobs:
echo "CONFIGURE_ARGS=${_configure_args[*]}" >> $GITHUB_ENV echo "CONFIGURE_ARGS=${_configure_args[*]}" >> $GITHUB_ENV
# -std=c17 needed by gcc-15 gcc-16
echo "BUILD_CFLAGS=-std=c17 -D_DEFAULT_SOURCE=1" >> $GITHUB_ENV
#echo "BUILD_CXXFLAGS=" >> $GITHUB_ENV
#echo "BUILD_LDFLAGS=" >> $GITHUB_ENV
- name: Setup Toolchain - name: Setup Toolchain
env: env:
MATRIX_TC: ${{ matrix.tc }} MATRIX_TC: ${{ matrix.tc }}
@ -208,9 +256,26 @@ jobs:
export CPP="clang-cpp-${BUILD_CLANG_VERSION}" export CPP="clang-cpp-${BUILD_CLANG_VERSION}"
fi fi
if [ -n "$BUILD_CFLAGS" ]
then
export CFLAGS="${BUILD_CFLAGS}"
fi
if [ -n "$BUILD_CXXFLAGS" ]
then
export CXXFLAGS="${BUILD_CXXFLAGS}"
fi
if [ -n "$BUILD_LDFLAGS" ]
then
export LDFLAGS="${BUILD_LDFLAGS}"
fi
set -o pipefail # due to pipe inside CI set -o pipefail # due to pipe inside CI
./configure $CONFIGURE_ARGS 2>&1 | tee CONFIGURE.LOG ./configure $CONFIGURE_ARGS 2>&1 | tee CONFIGURE.LOG
unset CFLAGS
unset CXXFLAGS
unset LDFLAGS
egrep "^(CPP|CXX|CC)\s" defs.mak egrep "^(CPP|CXX|CC)\s" defs.mak
# Add -Wall for CI loggings # Add -Wall for CI loggings