From: Viktor Szakats Date: Wed, 26 Nov 2025 18:11:16 +0000 (+0100) Subject: GHA/distcheck: bump old cmake, switch to arm64 for performance X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9bcdfb3809a41327054421368bdea77ea17e6f90;p=thirdparty%2Fcurl.git GHA/distcheck: bump old cmake, switch to arm64 for performance Bump CMake version in CMake integration tests for better performance (8x on macOS, 2-3x on Windows) and native arm64 binaries. - bump old CMake in integration tests to v3.19.8 (was: v3.11.4) - switch to native arm64 CMake binaries on macOS. - switch Linux CMake integration job to arm64. Speed gains: - Linux: 2m -> 1m30s - macOS: 9-10m -> 1m15s - Windows: 6-7m -> 2m43s Before: https://github.com/curl/curl/actions/runs/21255697172 https://github.com/curl/curl/actions/runs/21255020621 After: https://github.com/curl/curl/actions/runs/21272021446 With this, CI is: - no longer testing deprecated CMake versions. Follow-up to a7c974e038572bd1d4a653afbd6de5fad5a10215 #19902 - not testing the next (from 2026 April) minimum 3.18, but going for 3.19 instead. For arm64 binaries on both macOS and Linux. There is no 3.18-specific CMake code in curl. Cherry-picked from #20407 Closes #20408 --- diff --git a/.github/workflows/distcheck.yml b/.github/workflows/distcheck.yml index 48c9f6afbc..db610d378d 100644 --- a/.github/workflows/distcheck.yml +++ b/.github/workflows/distcheck.yml @@ -258,11 +258,11 @@ jobs: MAKEFLAGS: ${{ contains(matrix.image, 'macos') && '-j 4' || '-j 5' }} MATRIX_IMAGE: '${{ matrix.image }}' TESTOPTS: ${{ contains(matrix.image, 'macos') && '-D_CURL_PREFILL=ON' || '' }} ${{ contains(matrix.image, 'windows') && '-DCMAKE_UNITY_BUILD_BATCH_SIZE=30' || '' }} - OLD_CMAKE_VERSION: 3.11.4 + OLD_CMAKE_VERSION: 3.19.8 strategy: fail-fast: false matrix: - image: [ubuntu-latest, macos-latest, windows-2022] + image: [ubuntu-24.04-arm, macos-latest, windows-2022] steps: - uses: msys2/setup-msys2@4f806de0a5a7294ffabaff804b38a9b435a73bda # v2.30.0 if: ${{ contains(matrix.image, 'windows') }} @@ -289,14 +289,14 @@ jobs: sudo apt-get -o Dpkg::Use-Pty=0 install libpsl-dev libssl-dev cd ~ curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 60 --retry 3 --retry-connrefused \ - --location "https://github.com/Kitware/CMake/releases/download/v${OLD_CMAKE_VERSION}/cmake-${OLD_CMAKE_VERSION}-Linux-x86_64.tar.gz" | tar -xz - printf '%s' ~/cmake-"${OLD_CMAKE_VERSION}"-Linux-x86_64/bin/cmake > ~/old-cmake-path.txt + --location "https://github.com/Kitware/CMake/releases/download/v${OLD_CMAKE_VERSION}/cmake-${OLD_CMAKE_VERSION}-Linux-aarch64.tar.gz" | tar -xz + printf '%s' ~/cmake-"${OLD_CMAKE_VERSION}"-Linux-aarch64/bin/cmake > ~/old-cmake-path.txt else brew install libpsl openssl cd ~ curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 60 --retry 3 --retry-connrefused \ - --location "https://github.com/Kitware/CMake/releases/download/v${OLD_CMAKE_VERSION}/cmake-${OLD_CMAKE_VERSION}-Darwin-x86_64.tar.gz" | tar -xz - printf '%s' ~/cmake-"${OLD_CMAKE_VERSION}"-Darwin-x86_64/CMake.app/Contents/bin/cmake > ~/old-cmake-path.txt + --location "https://github.com/Kitware/CMake/releases/download/v${OLD_CMAKE_VERSION}/cmake-${OLD_CMAKE_VERSION}-macos-universal.tar.gz" | tar -xz + printf '%s' ~/cmake-"${OLD_CMAKE_VERSION}"-macos-universal/CMake.app/Contents/bin/cmake > ~/old-cmake-path.txt fi - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1