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
This commit is contained in:
Viktor Szakats 2025-01-16 19:12:02 +01:00
parent c89bc11267
commit 911f003db8
No known key found for this signature in database
GPG key ID: B5ABD165E2AEF201
3 changed files with 12 additions and 4 deletions

View file

@ -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

View file

@ -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

View file

@ -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: