WIP #39
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: alpine/musl | |
on: | |
push: | |
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: | | |
ulimit -c unlimited | |
echo '/tmp/core/core.%h.%e.%t' > /proc/sys/kernel/core_pattern | |
- uses: actions/checkout@v4 | |
- 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 | |
- name: Install VTest | |
run: scripts/build-vtest.sh | |
- name: Build | |
run: make -j$(nproc) TARGET=linux-musl 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: Install problem matcher for VTest | |
# This allows one to more easily see which tests fail. | |
run: echo "::add-matcher::.github/vtest.json" | |
- name: Run VTest | |
id: vtest | |
run: make reg-tests VTEST_PROGRAM=../vtest/vtest REGTESTS_TYPES=default,bug,devel | |
- 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 |