63 lines
2.0 KiB
YAML
63 lines
2.0 KiB
YAML
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 DEBUG_CFLAGS='-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
|