QuicTLS #22
This file contains hidden or 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
| # | |
| # weekly run against modern QuicTLS branch, i.e. https://github.com/quictls/quictls | |
| # | |
| name: QuicTLS | |
| 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@v5 | |
| - 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 | |
| - name: Install QuicTLS | |
| run: env QUICTLS=yes QUICTLS_URL=https://github.com/quictls/quictls scripts/build-ssl.sh | |
| - name: Compile HAProxy | |
| run: | | |
| make -j$(nproc) ERR=1 CC=gcc TARGET=linux-glibc \ | |
| USE_QUIC=1 USE_OPENSSL=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 -v |awk 'NR==1{print $3}')" >> $GITHUB_OUTPUT | |
| - uses: ./.github/actions/setup-vtest | |
| - name: Run VTest for HAProxy | |
| id: vtest | |
| run: | | |
| make reg-tests VTEST_PROGRAM=../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 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 |