]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
GHA: start using ARM Linux runners
authorViktor Szakats <commit@vsz.me>
Thu, 16 Jan 2025 18:12:02 +0000 (19:12 +0100)
committerViktor Szakats <commit@vsz.me>
Thu, 16 Jan 2025 23:28:12 +0000 (00:28 +0100)
- 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

.github/workflows/checkdocs.yml
.github/workflows/linux.yml
.github/workflows/non-native.yml

index ac0d9ad2be1e8ee5c28c8f73708ea225c87983a8..bda9767be28457d72bc592ecc09966a0ebcbfc3c 100644 (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
index eb3854f2562ac4a7d62e37eb5914196ade473ac0..44d9bb64603e5cbaae37b3223ecae86aee9b76e4 100644 (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
index 280ef2e3873d44fc4e9c79031edac5450cce8e2c..ccaaba337f990311d7925aaab89249bd39879151 100644 (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: