]> git.kaiwu.me - haproxy.git/commitdiff
CI: github: add an armhf job to the push job 20260422-armhf-vtest
authorWilliam Lallemand <wlallemand@irq6.net>
Wed, 22 Apr 2026 06:31:39 +0000 (08:31 +0200)
committerWilliam Lallemand <wlallemand@irq6.net>
Wed, 22 Apr 2026 07:00:49 +0000 (09:00 +0200)
Add an armhf job in order to run reg-tests on ARM 32-bit architecture.

Use the armhf SSL and PCRE2 library provided by ubuntu.

VTest is still compiled in arm64.

.github/matrix.py
.github/workflows/vtest.yml

index b5eec8b5db5aa6ec23988a98f2e5e4eee4d8b92a..8eafdc7af7d902dde2a283e75cd252c1d5a25408 100755 (executable)
@@ -145,10 +145,12 @@ def main(ref_name):
     if is_stable:
         os = "ubuntu-24.04"         # stable branch
         os_arm = "ubuntu-24.04-arm" # stable branch
+        os_armhf = "ubuntu-24.04-arm"    # stable branch
         os_i686 = "ubuntu-24.04"    # stable branch
     else:
         os = "ubuntu-24.04"         # development branch
         os_arm = "ubuntu-24.04-arm" # development branch
+        os_armhf = "ubuntu-24.04-arm" # development branch
         os_i686 = "ubuntu-24.04"    # development branch
 
     TARGET = "linux-glibc"
@@ -353,6 +355,22 @@ def main(ref_name):
         }
     )
 
+   # arm32
+
+    matrix.append(
+        {
+            "name": "{}, armhf".format(os_armhf),
+            "os": os_armhf,
+            "TARGET": "linux-glibc",
+            "CC": "arm-linux-gnueabihf-gcc",
+            "FLAGS": [
+                "USE_OPENSSL=1",
+                "USE_PCRE2=1",
+                "USE_PCRE2_JIT=1",
+            ],
+        }
+    )
+
     # Print matrix
 
     print(json.dumps(matrix, indent=4, sort_keys=True))
index 5129cae3cddab9d06d4a8715fda18f7d4595ffac..bd0c1ea7be54affac1b258ae87076ee9d5f22c63 100644 (file)
@@ -72,18 +72,18 @@ jobs:
       with:
         path: '~/opt-ot/'
         key: ${{ matrix.os }}-ot-${{ matrix.CC }}-${{ env.OT_CPP_VERSION }}-${{ contains(matrix.name, 'ASAN') }}
-    - name: Add i386 architecture
-      if: ${{ matrix.CC == 'i686-linux-gnu-gcc' }}
-      run: sudo dpkg --add-architecture i386
     - name: Install apt dependencies
       if: ${{ startsWith(matrix.os, 'ubuntu-') && matrix.TARGET != 'linux-musl' }}
       run: |
+        ${{ matrix.CC == 'i686-linux-gnu-gcc' && 'sudo dpkg --add-architecture i386' || '' }}
+        ${{ matrix.CC == 'arm-linux-gnueabihf-gcc' && 'sudo dpkg --add-architecture armhf' || '' }}
         sudo apt-get update -o Acquire::Languages=none -o Acquire::Translation=none
         sudo apt-get --no-install-recommends -y install \
           ${{ case(contains(matrix.FLAGS, 'USE_LUA=1'), 'liblua5.4-dev', '') }} \
           ${{ case(contains(matrix.FLAGS, 'USE_PCRE2=1'), 'libpcre2-dev', '') }} \
           ${{ case(contains(matrix.ssl, 'BORINGSSL=yes'), 'ninja-build', '') }} \
           ${{ case(matrix.CC == 'i686-linux-gnu-gcc', 'gcc-i686-linux-gnu libc6-dev-i386-cross libssl-dev:i386 libpcre2-dev:i386', '') }} \
+          ${{ case(matrix.CC == 'arm-linux-gnueabihf-gcc', 'gcc-arm-linux-gnueabihf libc6-dev-armhf-cross libssl-dev:armhf libpcre2-dev:armhf qemu-user-static', '') }} \
           socat \
           gdb \
           jose
@@ -126,12 +126,12 @@ jobs:
       id: show-version
       run: |
         echo "::group::Show dynamic libraries."
-        if command -v ldd > /dev/null; then
-          # Linux
-          ldd $(which haproxy)
-        else
-          # macOS
+        if [ "$(uname)" = "Darwin" ]; then
           otool -L $(which haproxy)
+        elif [ "${{ matrix.CC }}" = "arm-linux-gnueabihf-gcc" ]; then
+          readelf -d $(which haproxy) | grep NEEDED
+        else
+          ldd $(which haproxy)
         fi
         echo "::endgroup::"
         haproxy -vv