From: Viktor Szakats Date: Thu, 16 Jan 2025 18:12:02 +0000 (+0100) Subject: GHA: start using ARM Linux runners X-Git-Tag: curl-8_12_0~99 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=911f003db8d0d75e0eaed05002c4b42ad3327ff4;p=thirdparty%2Fcurl.git GHA: start using ARM Linux runners - GHA/linux: allow per-job runner image override. - GHA/linux: add an arm version of an existing job. Add workaround for broken `PATH` in the arm runner image. - GHA/non-native: add CPU arch to job name where missing. - GHA/checkdocs: switch a linter job to arm. Performance looks a little bit better than Intel (presumably with lower power consumption). Test jobs, with openssl, tests, pytests, examples: - arm: - https://github.com/curl/curl/actions/runs/12816430794/job/35737374521 4m7s - https://github.com/curl/curl/actions/runs/12816201136/job/35736615144 4m5s - Intel: - https://github.com/curl/curl/actions/runs/12816430794/job/35737374118 4m32s - https://github.com/curl/curl/actions/runs/12816201136/job/35736614764 4m13s Ref: https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/ Closes #16023 --- diff --git a/.github/workflows/checkdocs.yml b/.github/workflows/checkdocs.yml index ac0d9ad2be..bda9767be2 100644 --- a/.github/workflows/checkdocs.yml +++ b/.github/workflows/checkdocs.yml @@ -160,7 +160,7 @@ jobs: run: .github/scripts/verify-examples.pl docs/libcurl/curl*.3 docs/libcurl/opts/*.3 miscchecks: - runs-on: ubuntu-24.04 + runs-on: ubuntu-24.04-arm timeout-minutes: 5 steps: - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index eb3854f256..44d9bb6460 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -62,7 +62,7 @@ env: jobs: linux: name: ${{ matrix.build.generate && 'CM' || 'AM' }} ${{ matrix.build.name }} - runs-on: 'ubuntu-24.04' + runs-on: ${{ matrix.build.image || 'ubuntu-24.04' }} container: ${{ matrix.build.container }} timeout-minutes: 45 strategy: @@ -164,6 +164,12 @@ jobs: install_steps: pytest configure: CFLAGS=-std=gnu89 --with-openssl --enable-debug + - name: openssl arm + install_packages: zlib1g-dev + install_steps: pytest + configure: CFLAGS=-std=gnu89 --with-openssl --enable-debug + image: 'ubuntu-24.04-arm' + - name: openssl -O3 valgrind install_packages: zlib1g-dev valgrind configure: CPPFLAGS=-DCURL_WARN_SIGN_CONVERSION CFLAGS=-O3 --with-openssl --enable-debug @@ -700,6 +706,8 @@ jobs: CURL_CI: github PYTEST_ADDOPTS: "--color=yes" run: | + echo "CANARY:|${HOME}|${PATH}|" + PATH="${PATH//\/home\/runneradmin/${HOME}}" # workaround for PATH issue on ubuntu-24.04-arm [ -x "$HOME/venv/bin/activate" ] && source $HOME/venv/bin/activate if [ -n '${{ matrix.build.generate }}' ]; then cmake --build . --verbose --target curl-pytest-ci diff --git a/.github/workflows/non-native.yml b/.github/workflows/non-native.yml index 280ef2e387..ccaaba337f 100644 --- a/.github/workflows/non-native.yml +++ b/.github/workflows/non-native.yml @@ -37,7 +37,7 @@ permissions: {} jobs: netbsd: - name: 'NetBSD (CM, openssl, clang)' + name: 'NetBSD (CM, openssl, clang, ${{ matrix.arch }})' runs-on: ubuntu-latest timeout-minutes: 10 strategy: @@ -77,7 +77,7 @@ jobs: echo '::endgroup::' openbsd: - name: 'OpenBSD (CM, libressl, clang)' + name: 'OpenBSD (CM, libressl, clang, ${{ matrix.arch }})' runs-on: ubuntu-latest timeout-minutes: 10 strategy: