From c2624818739916652a041164939afaba5bb5ee73 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Sat, 8 Nov 2025 13:54:11 +0100 Subject: [PATCH] GHA/linux: build and test LibreSSL with Fil-C curl, enable pytests Build and cache LibreSSL locally with Fil-C and enable it in the Fil-C job. Also: - disable test 776 in the Fil-C job. It fails consistently, and due to flakiness seen earlier its result is disabled. In this job it seems to be adding 1 to 9 minues to the test run step and fails consistently. - include Fil-C version in the LibreSSL cache key to prepare for Fil-C ABI changes. - GHA/linux: fully quote `tflags` values to avoid breaking YAML. Tested and confirmed working with OpenSSL too, but ended up with LibreSSL for faster, smaller builds. Closes #19407 --- .github/workflows/linux.yml | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index ccf171d932..a24681a307 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -193,13 +193,13 @@ jobs: - name: 'openssl torture !FTP' install_packages: libnghttp2-dev libssh2-1-dev libc-ares-dev generate: -DCURL_USE_OPENSSL=ON -DENABLE_DEBUG=ON -DENABLE_ARES=ON - tflags: -t --shallow=25 !FTP + tflags: '-t --shallow=25 !FTP' torture: true - name: 'openssl torture FTP' install_packages: libnghttp2-dev libssh2-1-dev libc-ares-dev generate: -DCURL_USE_OPENSSL=ON -DENABLE_DEBUG=ON -DENABLE_ARES=ON - tflags: -t --shallow=20 FTP + tflags: '-t --shallow=20 FTP' torture: true - name: 'openssl i686' @@ -215,12 +215,13 @@ jobs: - name: '!ssl !http !smtp !imap' configure: --without-ssl --enable-debug --disable-http --disable-smtp --disable-imap --disable-unity - - name: 'Fil-C' - install_steps: filc + - name: 'libressl Fil-C' + install_steps: filc libressl-filc pytest + tflags: '!776' # adds 1-9 minutes to the test run step, and fails consistently CC: /home/runner/filc/build/bin/filcc generate: >- -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_UNITY_BUILD=OFF - -DCURL_ENABLE_SSL=OFF -DCURL_USE_LIBPSL=OFF + -DOPENSSL_ROOT_DIR=/home/runner/libressl -DCURL_USE_LIBPSL=OFF -DCURL_ZLIB=OFF -DCURL_BROTLI=OFF -DCURL_ZSTD=OFF -DUSE_NGHTTP2=OFF -DCURL_DISABLE_LDAP=ON -DUSE_LIBIDN2=OFF -DCURL_USE_LIBSSH2=OFF @@ -303,12 +304,12 @@ jobs: - name: 'event-based' install_packages: libssh-dev configure: --enable-debug --disable-shared --disable-threaded-resolver --with-libssh --with-openssl - tflags: -n --test-event '!TLS-SRP' + tflags: '-n --test-event !TLS-SRP' - name: 'duphandle' install_packages: libssh-dev configure: --enable-debug --disable-shared --disable-threaded-resolver --with-libssh --with-openssl - tflags: -n --test-duphandle '!TLS-SRP' + tflags: '-n --test-duphandle !TLS-SRP' - name: 'rustls valgrind' install_packages: libnghttp2-dev libldap-dev valgrind @@ -413,6 +414,27 @@ jobs: cmake --build . cmake --install . + - name: 'cache libressl (filc)' + if: ${{ contains(matrix.build.install_steps, 'libressl-filc') }} + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 + id: cache-libressl-filc + env: + cache-name: cache-libressl-filc + with: + path: ~/libressl + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.LIBRESSL_VERSION }}-${{ env.FIL_C_VERSION }} + + - name: 'build libressl (filc)' + if: ${{ contains(matrix.build.install_steps, 'libressl-filc') && steps.cache-libressl-filc.outputs.cache-hit != 'true' }} + run: | + curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 120 --retry 6 --retry-connrefused \ + --location "https://github.com/libressl/portable/releases/download/v${LIBRESSL_VERSION}/libressl-${LIBRESSL_VERSION}.tar.gz" | tar -xz + cd "libressl-${LIBRESSL_VERSION}" + cmake -B . -G Ninja -DLIBRESSL_APPS=OFF -DLIBRESSL_TESTS=OFF -DCMAKE_INSTALL_PREFIX=/home/runner/libressl \ + -DCMAKE_C_COMPILER=/home/runner/filc/build/bin/filcc -DENABLE_ASM=OFF + cmake --build . + cmake --install . + - name: 'cache wolfssl (all)' if: ${{ contains(matrix.build.install_steps, 'wolfssl-all') }} uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 -- 2.47.3