2023-04-08 11:30:42 +00:00
|
|
|
name: Fedora/Rawhide/QuicTLS
|
|
|
|
|
|
|
|
on:
|
|
|
|
schedule:
|
|
|
|
- cron: "0 0 25 * *"
|
|
|
|
|
|
|
|
permissions:
|
|
|
|
contents: read
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
build_and_test:
|
|
|
|
strategy:
|
|
|
|
matrix:
|
2024-04-03 18:56:22 +00:00
|
|
|
platform: [
|
2024-04-10 15:58:00 +00:00
|
|
|
{ name: x64, cc: gcc, QUICTLS_EXTRA_ARGS: "", ADDLIB_ATOMIC: "", ARCH_FLAGS: "" },
|
|
|
|
{ name: x64, cc: clang, QUICTLS_EXTRA_ARGS: "", ADDLIB_ATOMIC: "", ARCH_FLAGS: "" },
|
|
|
|
{ name: x86, cc: gcc, QUICTLS_EXTRA_ARGS: "-m32 linux-generic32", ADDLIB_ATOMIC: "-latomic", ARCH_FLAGS: "-m32" },
|
|
|
|
{ name: x86, cc: clang, QUICTLS_EXTRA_ARGS: "-m32 linux-generic32", ADDLIB_ATOMIC: "-latomic", ARCH_FLAGS: "-m32" }
|
2024-04-03 18:56:22 +00:00
|
|
|
]
|
|
|
|
name: ${{ matrix.platform.cc }}.${{ matrix.platform.name }}
|
2023-04-08 11:30:42 +00:00
|
|
|
runs-on: ubuntu-latest
|
2024-02-21 16:05:39 +00:00
|
|
|
if: ${{ github.repository_owner == 'haproxy' }}
|
2023-04-08 11:30:42 +00:00
|
|
|
container:
|
|
|
|
image: fedora:rawhide
|
|
|
|
steps:
|
2023-09-06 14:57:29 +00:00
|
|
|
- uses: actions/checkout@v4
|
2023-04-08 11:30:42 +00:00
|
|
|
- name: Install dependencies
|
|
|
|
run: |
|
2024-04-03 18:56:22 +00:00
|
|
|
dnf -y install diffutils git pcre-devel zlib-devel pcre2-devel 'perl(FindBin)' perl-IPC-Cmd 'perl(File::Copy)' 'perl(File::Compare)' lua-devel socat findutils systemd-devel clang
|
|
|
|
dnf -y install 'perl(FindBin)' 'perl(File::Compare)' perl-IPC-Cmd 'perl(File::Copy)' glibc-devel.i686 lua-devel.i686 lua-devel.x86_64 systemd-devel.i686 zlib-ng-compat-devel.i686 pcre-devel.i686 libatomic.i686
|
2023-04-08 11:30:42 +00:00
|
|
|
- name: Install VTest
|
|
|
|
run: scripts/build-vtest.sh
|
|
|
|
- name: Install QuicTLS
|
2024-04-03 18:56:22 +00:00
|
|
|
run: QUICTLS=yes QUICTLS_EXTRA_ARGS="${{ matrix.platform.QUICTLS_EXTRA_ARGS }}" scripts/build-ssl.sh
|
2023-04-08 11:30:42 +00:00
|
|
|
- name: Build contrib tools
|
|
|
|
run: |
|
|
|
|
make admin/halog/halog
|
|
|
|
make dev/flags/flags
|
|
|
|
make dev/poll/poll
|
|
|
|
make dev/hpack/decode dev/hpack/gen-enc dev/hpack/gen-rht
|
2024-04-03 18:56:22 +00:00
|
|
|
- name: Compile HAProxy with ${{ matrix.platform.cc }}
|
2023-04-08 11:30:42 +00:00
|
|
|
run: |
|
2024-04-10 15:58:00 +00:00
|
|
|
make -j3 CC=${{ matrix.platform.cc }} V=1 ERR=1 TARGET=linux-glibc USE_OPENSSL=1 USE_QUIC=1 USE_ZLIB=1 USE_PCRE=1 USE_PCRE_JIT=1 USE_LUA=1 USE_SYSTEMD=1 ADDLIB="${{ matrix.platform.ADDLIB_ATOMIC }} -Wl,-rpath,${HOME}/opt/lib" SSL_LIB=${HOME}/opt/lib SSL_INC=${HOME}/opt/include ARCH_FLAGS="${{ matrix.platform.ARCH_FLAGS }}"
|
2023-04-08 11:30:42 +00:00
|
|
|
make install
|
|
|
|
- name: Show HAProxy version
|
|
|
|
id: show-version
|
|
|
|
run: |
|
|
|
|
echo "::group::Show dynamic libraries."
|
|
|
|
ldd $(command -v haproxy)
|
|
|
|
echo "::endgroup::"
|
|
|
|
haproxy -vv
|
|
|
|
echo "version=$(haproxy -v |awk 'NR==1{print $3}')" >> $GITHUB_OUTPUT
|
|
|
|
- name: Run VTest for HAProxy ${{ steps.show-version.outputs.version }}
|
|
|
|
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}/haregtests-*/vtc.*; do
|
|
|
|
printf "::group::"
|
|
|
|
cat $folder/INFO
|
|
|
|
cat $folder/LOG
|
|
|
|
echo "::endgroup::"
|
|
|
|
done
|