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