mirror of
http://git.haproxy.org/git/haproxy.git
synced 2026-02-04 21:43:21 +02:00
QuicTLS builds are already run on push and openssl+quictls patchset is not maintained anymore. The patch switch from openssl+quictls to the native openssl of fedora. Fedora Rawhide builds are mainly useful to test the latest gcc and clang versions as well as default options of the distribution. The patch also contains a workaround to re-enable legacy algorithms which are still tested on the CI.
76 lines
2.9 KiB
YAML
76 lines
2.9 KiB
YAML
name: Fedora/Rawhide/OpenSSL
|
|
|
|
on:
|
|
schedule:
|
|
- cron: "0 0 25 * *"
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
build_and_test:
|
|
strategy:
|
|
matrix:
|
|
platform: [
|
|
{ name: x64, cc: gcc, ADDLIB_ATOMIC: "", ARCH_FLAGS: "" },
|
|
{ name: x64, cc: clang, ADDLIB_ATOMIC: "", ARCH_FLAGS: "" },
|
|
{ name: x86, cc: gcc, ADDLIB_ATOMIC: "-latomic", ARCH_FLAGS: "-m32" },
|
|
{ name: x86, cc: clang, ADDLIB_ATOMIC: "-latomic", ARCH_FLAGS: "-m32" }
|
|
]
|
|
fail-fast: false
|
|
name: ${{ matrix.platform.cc }}.${{ matrix.platform.name }}
|
|
runs-on: ubuntu-latest
|
|
if: ${{ github.repository_owner == 'haproxy' || github.event_name == 'workflow_dispatch' }}
|
|
container:
|
|
image: fedora:rawhide
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
- name: Install dependencies
|
|
run: |
|
|
dnf -y install awk 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 openssl-devel.x86_64
|
|
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 openssl-devel.i686
|
|
- uses: ./.github/actions/setup-vtest
|
|
- 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
|
|
- name: Compile HAProxy with ${{ matrix.platform.cc }}
|
|
run: |
|
|
make -j3 CC=${{ matrix.platform.cc }} V=1 ERR=1 TARGET=linux-glibc DEBUG="-DDEBUG_POOL_INTEGRITY -DDEBUG_UNIT" USE_PROMEX=1 USE_OPENSSL=1 USE_QUIC=1 USE_ZLIB=1 USE_PCRE=1 USE_PCRE_JIT=1 USE_LUA=1 ADDLIB="${{ matrix.platform.ADDLIB_ATOMIC }}" ARCH_FLAGS="${{ matrix.platform.ARCH_FLAGS }}"
|
|
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
|
|
#
|
|
# TODO: review this workaround later
|
|
- name: relax crypto policies
|
|
run: |
|
|
dnf -y install crypto-policies-scripts
|
|
echo LEGACY > /etc/crypto-policies/config
|
|
update-crypto-policies
|
|
- 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:-/tmp}/haregtests-*/vtc.*; do
|
|
printf "::group::"
|
|
cat $folder/INFO
|
|
cat $folder/LOG
|
|
echo "::endgroup::"
|
|
done
|
|
- name: Run Unit tests
|
|
id: unittests
|
|
run: |
|
|
make unit-tests
|