]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
CI: Sync musl.yml with vtest.yml
authorTim Duesterhus <tim@bastelstu.be>
Mon, 13 Apr 2026 19:23:40 +0000 (21:23 +0200)
committerWilliam Lallemand <wlallemand@haproxy.com>
Tue, 14 Apr 2026 09:16:17 +0000 (11:16 +0200)
This syncs up musl.yml with vtest.yml as much as possible by:

- Aligning indentation.
- Reordering steps.
- Aligning step names.
- Adding missing functionality to musl.yml.

.github/workflows/musl.yml

index 86fabe575748269177b77f7e16a69a4d20886beb..4220e6fcf70d3b1864e5b698406b2f164aa147f2 100644 (file)
@@ -7,65 +7,105 @@ permissions:
   contents: read
 
 jobs:
-  musl:
-      name: gcc
-      runs-on: ubuntu-latest
-      container:
-        image: alpine:latest
-        options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
-        volumes:
-          - /tmp/core:/tmp/core
-      steps:
-      - name: Setup coredumps
-        run: |
-          echo '/tmp/core/core.%h.%e.%t' > /proc/sys/kernel/core_pattern
-      - uses: actions/checkout@v6
-      - name: Install dependencies
-        run: apk add gcc gdb make tar git python3 libc-dev linux-headers pcre-dev pcre2-dev openssl-dev lua5.3-dev grep socat curl musl-dbg lua5.3-dbg jose
-      - uses: ./.github/actions/setup-vtest
-      - name: Build
-        run: make -j$(nproc) TARGET=linux-musl DEBUG="-DDEBUG_POOL_INTEGRITY -DDEBUG_UNIT" ARCH_FLAGS='-ggdb3' CC=cc V=1 USE_LUA=1 LUA_INC=/usr/include/lua5.3 LUA_LIB=/usr/lib/lua5.3 USE_OPENSSL=1 USE_PCRE2=1 USE_PCRE2_JIT=1 USE_PROMEX=1
-      - name: Show version
-        run: ./haproxy -vv
-      - name: Show linked libraries
-        run: ldd haproxy
-      - name: Run VTest
-        id: vtest
-        run: make reg-tests VTEST_PROGRAM=${{ github.workspace }}/vtest/vtest REGTESTS_TYPES=default,bug,devel
-      - name: Run Unit tests
-        id: unittests
-        run: |
-          make unit-tests
-      - name: Show coredumps
-        if: ${{ failure() && steps.vtest.outcome == 'failure' }}
-        run: |
-          failed=false
-          ls /tmp/core/
-          for file in /tmp/core/core.*; do
-            failed=true
-            printf "::group::"
-            gdb -ex 'thread apply all bt full' ./haproxy $file
-            echo "::endgroup::"
-          done
-          if [ "$failed" = true ]; then
-            exit 1;
-          fi
-      - name: Show results
-        if: ${{ failure() }}
-        run: |
-          for folder in /tmp/haregtests-*/vtc.*; do
-            printf "::group::"
-            cat $folder/INFO
-            cat $folder/LOG
-            echo "::endgroup::"
-          done
-      - name: Show Unit-Tests results
-        if: ${{ failure() && steps.unittests.outcome == 'failure' }}
-        run: |
-          for result in ${TMPDIR:-/tmp}/ha-unittests-*/results/res.*; do
-            printf "::group::"
-            cat $result
-            echo "::endgroup::"
-          done
-          exit 1
-
+  Test:
+    name: musl, ${{ matrix.name }}
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        include:
+        - name: gcc
+          CC: gcc
+          FLAGS:
+          - ARCH_FLAGS='-ggdb3'
+          - USE_LUA=1
+          - LUA_INC=/usr/include/lua5.3
+          - LUA_LIB=/usr/lib/lua5.3
+          - USE_OPENSSL=1
+          - USE_PCRE2=1
+          - USE_PCRE2_JIT=1
+          - USE_PROMEX=1
+      fail-fast: false
+    container:
+      image: alpine:latest
+      options: --privileged --ulimit core=-1 --security-opt seccomp=unconfined
+      volumes:
+      - /tmp/core:/tmp/core
+    steps:
+    - name: Setup coredumps
+      run: |
+        echo '/tmp/core/core.%h.%e.%t' > /proc/sys/kernel/core_pattern
+    - uses: actions/checkout@v6
+    - name: Install dependencies
+      run: apk add gcc gdb make tar git python3 libc-dev linux-headers pcre-dev pcre2-dev openssl-dev lua5.3-dev grep socat curl musl-dbg lua5.3-dbg jose
+    - uses: ./.github/actions/setup-vtest
+    - name: Compile HAProxy with ${{ matrix.CC }}
+      run: |
+        echo "::group::Show compiler's version"
+        echo | ${{ matrix.CC }} -v
+        echo "::endgroup::"
+        echo "::group::Show platform specific defines"
+        echo | ${{ matrix.CC }} -dM -xc -E -
+        echo "::endgroup::"
+        make -j$(nproc) all \
+          ERR=1 \
+          TARGET=linux-musl \
+          CC=${{ matrix.CC }} \
+          DEBUG="-DDEBUG_POOL_INTEGRITY -DDEBUG_UNIT" \
+          ${{ join(matrix.FLAGS, ' ') }} \
+          ADDLIB="-Wl,-rpath,/usr/local/lib/ -Wl,-rpath,$HOME/opt/lib/"
+        make install-bin
+    - name: Show HAProxy version
+      id: show-version
+      run: |
+        echo "::group::Show dynamic libraries."
+        if command -v ldd > /dev/null; then
+          # Linux
+          ldd $(which haproxy)
+        else
+          # macOS
+          otool -L $(which haproxy)
+        fi
+        echo "::endgroup::"
+        haproxy -vv
+        echo "version=$(haproxy -vq)" >> $GITHUB_OUTPUT
+    - name: Run VTest for HAProxy ${{ steps.show-version.outputs.version }}
+      id: vtest
+      run: |
+        make reg-tests VTEST_PROGRAM=${{ github.workspace }}/vtest/vtest REGTESTS_TYPES=default,bug,devel
+    - name: Show VTest results
+      if: ${{ failure() && steps.vtest.outcome == 'failure' }}
+      run: |
+        for folder in ${TMPDIR:-/tmp}/haregtests-*/vtc.*; do
+          printf "::group::"
+          cat $folder/INFO
+          cat $folder/LOG
+          echo "::endgroup::"
+        done
+        exit 1
+    - name: Run Unit tests
+      id: unittests
+      run: |
+        make unit-tests
+    - name: Show Unit-Tests results
+      if: ${{ failure() && steps.unittests.outcome == 'failure' }}
+      run: |
+        for result in ${TMPDIR:-/tmp}/ha-unittests-*/results/res.*; do
+          printf "::group::"
+          cat $result
+          echo "::endgroup::"
+        done
+        exit 1
+    - name: Show coredumps
+      if: ${{ failure() && steps.vtest.outcome == 'failure' }}
+      run: |
+        failed=false
+        ls /tmp/core/
+        for file in /tmp/core/core.*; do
+          failed=true
+          printf "::group::"
+          gdb -ex 'thread apply all bt full' ./haproxy $file
+          echo "::endgroup::"
+        done
+        if [ "$failed" = true ]; then
+          exit 1;
+        fi