- test: printf-builtin
monolithic: yes
include:
- - os: ubuntu-24.04
- test: apidoc
+ - test: apidoc
- test: coverage
- test: dist
- test: nm
runs-on: ${{ matrix.os }}
strategy:
matrix:
- os: [ ubuntu-latest, ubuntu-20.04 ]
+ os: [ ubuntu-latest, ubuntu-22.04, ubuntu-20.04 ]
test: [ botan, wolfssl, openssl, openssl-3, openssl-awslc, gcrypt ]
leak-detective: [ no, yes ]
exclude:
- # test custom-built libs only on one platform
+ # test custom-built libs only on the latest platform
+ - os: ubuntu-22.04
+ test: botan
- os: ubuntu-20.04
test: botan
+ - os: ubuntu-22.04
+ test: wolfssl
- os: ubuntu-20.04
test: wolfssl
+ - os: ubuntu-22.04
+ test: openssl-3
- os: ubuntu-20.04
test: openssl-3
+ - os: ubuntu-22.04
+ test: openssl-awslc
- os: ubuntu-20.04
test: openssl-awslc
env:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- os: [ ubuntu-20.04 ]
+ os: [ ubuntu-22.04, ubuntu-20.04 ]
test: [ all, nm ]
compiler: [ gcc, clang ]
exclude:
LEAK_DETECTIVE: ${{ matrix.leak-detective || 'no' }}
CC: ${{ matrix.compiler || 'gcc' }}
TEST: ${{ matrix.test }}
- # LSan causes spurious SIGSEGV after tests due to DTLS handling by glibc
+ # LSan causes spurious SIGSEGV after tests due to DTLS handling by glibc (on 20.04)
ASAN_OPTIONS: intercept_tls_get_addr=0
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
- path: ~/.ccache
+ # path is different on newer systems
+ path: |
+ ~/.cache/ccache
+ ~/.ccache
key: ccache-${{ matrix.os }}-${{ env.CC }}-${{ matrix.test }}-${{ github.sha }}
restore-keys: |
ccache-${{ matrix.os }}-${{ env.CC }}-${{ matrix.test }}-
prepare_system_openssl()
{
- # On systems that ship OpenSSL 3 (e.g. Ubuntu 22.04), we require debug
+ # On systems that ship OpenSSL 3 (e.g. Ubuntu 22.04+), we require debug
# symbols to whitelist leaks
if test "$1" = "deps"; then
echo "deb http://ddebs.ubuntu.com $(lsb_release -cs) main restricted
deb http://ddebs.ubuntu.com $(lsb_release -cs)-proposed main restricted" | \
sudo tee -a /etc/apt/sources.list.d/ddebs.list
sudo apt-get install -qq ubuntu-dbgsym-keyring
- DEPS="$DEPS libssl3-dbgsym"
+ if [ "$ID" = "ubuntu" -a "$VERSION_ID" = "24.04" ]; then
+ DEPS="$DEPS libssl3t64-dbgsym"
+ else
+ DEPS="$DEPS libssl3-dbgsym"
+ fi
fi
if test "$LEAK_DETECTIVE" = "yes"; then
# make sure we can properly whitelist functions with leak detective
DEPS="$DEPS binutils-dev"
CONFIG="$CONFIG --enable-bfd-backtraces"
- else
+ elif [ "$ID" = "ubuntu" -a "$VERSION_ID" != "24.04" ]; then
# with ASan we have to use the (extremely) slow stack unwind as the
# shipped version of the library is built with -fomit-frame-pointer
export ASAN_OPTIONS=fast_unwind_on_malloc=0