From: Viktor Szakats Date: Sat, 10 Jan 2026 21:47:41 +0000 (+0100) Subject: GHA/linux: move 6 jobs with locally built dependencies to arm X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5225e69ed92d766dc140efa29af43cd12d97b03d;p=thirdparty%2Fcurl.git GHA/linux: move 6 jobs with locally built dependencies to arm All libresll jobs, wolfssl-all, and one mbedtls job. As noted earlier, arm jobs run faster than intel ones, especially valgrind steps that run almost twice as fast. Package install runs slower, but this is offset by faster build and test steps, even in non-valgrind jobs. Follow-up to ff78af5752fdf580e5beef743f932cc1625228c3 #20234 Follow-up to 2b0d8dcc16c531d3154ab54347a3eaabf9bd2c7d #20231 Closes #20246 --- diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index b839e24dbf..f38387a9a8 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -75,29 +75,34 @@ jobs: matrix: build: - name: 'libressl krb5' + image: ubuntu-24.04-arm install_packages: libidn2-dev libnghttp2-dev libldap-dev libkrb5-dev - install_steps: libressl-c pytest codeset-test + install_steps: libressl-c-arm pytest codeset-test configure: LDFLAGS=-Wl,-rpath,/home/runner/libressl/lib --with-openssl=/home/runner/libressl --with-gssapi --enable-debug - name: 'libressl krb5 valgrind 1' + image: ubuntu-24.04-arm install_packages: libnghttp2-dev libldap-dev libkrb5-dev valgrind - install_steps: libressl-c + install_steps: libressl-c-arm tflags: '--min=870 1 to 950' generate: -DOPENSSL_ROOT_DIR=/home/runner/libressl -DCURL_USE_GSSAPI=ON -DENABLE_DEBUG=ON -DCURL_LIBCURL_VERSIONED_SYMBOLS=ON - name: 'libressl krb5 valgrind 2' + image: ubuntu-24.04-arm install_packages: libnghttp2-dev libldap-dev libkrb5-dev valgrind - install_steps: libressl-c + install_steps: libressl-c-arm tflags: '--min=900 951 to 9999' generate: -DOPENSSL_ROOT_DIR=/home/runner/libressl -DCURL_USE_GSSAPI=ON -DENABLE_DEBUG=ON -DCURL_LIBCURL_VERSIONED_SYMBOLS=ON - name: 'libressl clang' + image: ubuntu-24.04-arm install_packages: clang - install_steps: libressl-c + install_steps: libressl-c-arm configure: CC=clang LDFLAGS=-Wl,-rpath,/home/runner/libressl/lib --with-openssl=/home/runner/libressl --enable-debug - name: 'wolfssl-all' - install_steps: wolfssl-all + image: ubuntu-24.04-arm + install_steps: wolfssl-all-arm configure: LDFLAGS=-Wl,-rpath,/home/runner/wolfssl-all/lib --with-wolfssl=/home/runner/wolfssl-all --enable-ech --enable-debug - name: 'wolfssl-opensslextra valgrind 1' @@ -129,8 +134,9 @@ jobs: generate: -DCURL_USE_MBEDTLS=ON -DENABLE_DEBUG=ON -DCURL_USE_GSSAPI=ON - name: 'mbedtls clang' + image: ubuntu-24.04-arm install_packages: libssh-dev libnghttp2-dev libldap-dev clang - install_steps: mbedtls pytest + install_steps: mbedtls-arm pytest configure: CC=clang LDFLAGS=-Wl,-rpath,/home/runner/mbedtls/lib --with-mbedtls=/home/runner/mbedtls --with-libssh --enable-debug --with-fish-functions-dir --with-zsh-functions-dir - name: 'mbedtls-prev' @@ -452,18 +458,18 @@ jobs: cd filc ./setup.sh - - name: 'cache libressl (c)' - if: ${{ contains(matrix.build.install_steps, 'libressl-c') }} + - name: 'cache libressl (c-arm)' + if: ${{ contains(matrix.build.install_steps, 'libressl-c-arm') }} uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1 - id: cache-libressl-c + id: cache-libressl-c-arm env: - cache-name: cache-libressl-c + cache-name: cache-libressl-c-arm with: path: ~/libressl key: ${{ runner.os }}-${{ runner.arch }}-build-${{ env.cache-name }}-${{ env.LIBRESSL_VERSION }} - - name: 'build libressl (c)' - if: ${{ contains(matrix.build.install_steps, 'libressl-c') && steps.cache-libressl-c.outputs.cache-hit != 'true' }} + - name: 'build libressl (c-arm)' + if: ${{ contains(matrix.build.install_steps, 'libressl-c-arm') && steps.cache-libressl-c-arm.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 @@ -515,18 +521,18 @@ jobs: cmake --build . cmake --install . - - name: 'cache wolfssl (all)' - if: ${{ contains(matrix.build.install_steps, 'wolfssl-all') }} + - name: 'cache wolfssl (all-arm)' + if: ${{ contains(matrix.build.install_steps, 'wolfssl-all-arm') }} uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1 - id: cache-wolfssl-all + id: cache-wolfssl-all-arm env: - cache-name: cache-wolfssl-all + cache-name: cache-wolfssl-all-arm with: path: ~/wolfssl-all key: ${{ runner.os }}-${{ runner.arch }}-build-${{ env.cache-name }}-${{ env.WOLFSSL_VERSION }} - - name: 'build wolfssl (all)' # does not support `OPENSSL_COEXIST` - if: ${{ contains(matrix.build.install_steps, 'wolfssl-all') && steps.cache-wolfssl-all.outputs.cache-hit != 'true' }} + - name: 'build wolfssl (all-arm)' # does not support `OPENSSL_COEXIST` + if: ${{ contains(matrix.build.install_steps, 'wolfssl-all-arm') && steps.cache-wolfssl-all-arm.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/wolfSSL/wolfssl/archive/v${WOLFSSL_VERSION}-stable.tar.gz" | tar -xz @@ -580,6 +586,29 @@ jobs: cmake --build . cmake --install . + - name: 'cache mbedtls (arm)' + if: ${{ contains(matrix.build.install_steps, 'mbedtls-arm') }} + uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1 + id: cache-mbedtls-threadsafe-arm + env: + cache-name: cache-mbedtls-threadsafe-arm + with: + path: ~/mbedtls + key: ${{ runner.os }}-${{ runner.arch }}-build-${{ env.cache-name }}-${{ env.MBEDTLS_VERSION }} + + - name: 'build mbedtls (arm)' + if: ${{ contains(matrix.build.install_steps, 'mbedtls-arm') && steps.cache-mbedtls-threadsafe-arm.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/Mbed-TLS/mbedtls/releases/download/mbedtls-${MBEDTLS_VERSION}/mbedtls-${MBEDTLS_VERSION}.tar.bz2" | tar -xj + cd "mbedtls-${MBEDTLS_VERSION}" + ./scripts/config.py set MBEDTLS_THREADING_C + ./scripts/config.py set MBEDTLS_THREADING_PTHREAD + cmake -B . -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=/home/runner/mbedtls \ + -DENABLE_PROGRAMS=OFF -DENABLE_TESTING=OFF + cmake --build . + cmake --install . + - name: 'cache mbedtls (prev)' if: ${{ contains(matrix.build.install_steps, 'mbedtls-prev') }} uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1