With the previous sync, these two workflows perform almost the same steps and
both logically belong to "Run VTest tests". Integrate musl.yml into vtest.yml,
which will hopefully encourage future changes to consistently apply to all jobs
in that workflow.
---
.github/workflows/musl.yml | 111 ------------------------------------
.github/workflows/vtest.yml | 102 +++++++++++++++++++++++++++++++++
2 files changed, 102 insertions(+), 111 deletions(-)
delete mode 100644 .github/workflows/musl.yml
diff --git a/.github/workflows/musl.yml b/.github/workflows/musl.yml
deleted file mode 100644
index 4220e6fcf..000000000
--- a/.github/workflows/musl.yml
+++ /dev/null
@@ -1,111 +0,0 @@
-name: alpine/musl
-
-on:
- push:
-
-permissions:
- contents: read
-
-jobs:
- 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
diff --git a/.github/workflows/vtest.yml b/.github/workflows/vtest.yml
index dec473512..6113e4a3c 100644
--- a/.github/workflows/vtest.yml
+++ b/.github/workflows/vtest.yml
@@ -178,3 +178,105 @@ jobs:
if [ "$failed" = true ]; then
exit 1;
fi
+ Test-musl:
+ name: Alpine+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
--
2.53.0