mirror of
https://github.com/haproxy/haproxy.git
synced 2026-04-15 21:59:41 -04:00
Reference: https://github.com/haproxy/haproxy/issues/3317 this allows to distribute memory checking to WolfSSL code as well Only applies on the WolfSSL weekly job which build the wolfssl git version.
80 lines
2.6 KiB
YAML
80 lines
2.6 KiB
YAML
name: WolfSSL
|
|
|
|
on:
|
|
schedule:
|
|
- cron: "0 0 * * 4"
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
if: ${{ github.repository_owner == 'haproxy' || github.event_name == 'workflow_dispatch' }}
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- name: Install apt dependencies
|
|
run: |
|
|
sudo apt-get update -o Acquire::Languages=none -o Acquire::Translation=none
|
|
sudo apt-get --no-install-recommends -y install socat gdb jose
|
|
- name: Install WolfSSL
|
|
run: env WOLFSSL_VERSION=git-master WOLFSSL_DEBUG=1 CFLAGS="-fsanitize=address -g" scripts/build-ssl.sh
|
|
- name: Compile HAProxy
|
|
run: |
|
|
make -j$(nproc) ERR=1 CC=gcc TARGET=linux-glibc \
|
|
USE_OPENSSL_WOLFSSL=1 USE_QUIC=1 \
|
|
SSL_LIB=${HOME}/opt/lib SSL_INC=${HOME}/opt/include \
|
|
DEBUG="-DDEBUG_POOL_INTEGRITY -DDEBUG_UNIT" \
|
|
ADDLIB="-Wl,-rpath,/usr/local/lib/ -Wl,-rpath,$HOME/opt/lib/" \
|
|
ARCH_FLAGS="-ggdb3 -fsanitize=address"
|
|
sudo make install
|
|
- name: Show HAProxy version
|
|
id: show-version
|
|
run: |
|
|
ldd $(which haproxy)
|
|
haproxy -vv
|
|
echo "version=$(haproxy -vq)" >> $GITHUB_OUTPUT
|
|
- uses: ./.github/actions/setup-vtest
|
|
- name: Run VTest for HAProxy
|
|
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 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: Show coredumps
|
|
if: ${{ failure() && steps.vtest.outcome == 'failure' }}
|
|
run: |
|
|
failed=false
|
|
shopt -s nullglob
|
|
for file in /tmp/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 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
|
|
|