Commit graph

220 commits

Author SHA1 Message Date
William Lallemand
9517116f63 CI: github: add an OpenSSL + ECH job
The upcoming ECH feature need a patched OpenSSL with the "feature/ech"
branch.

This daily job launches an openssl build, as well as haproxy build with
reg-tests.
2025-09-16 15:05:44 +02:00
Ilia Shipitsin
3354719709 CI: fix syntax of Quic Interop pipelines
previously, wrong syntax of passing build arguments was used, thus
previously images were built using default SSLLIB=QuicTLS-1.1.1
2025-09-03 11:36:14 +02:00
Tim Duesterhus
b81a7f428b CI: Update to actions/checkout@v5
No functional change, but we should keep this current.

see 5f4ddb54b0
see 5c923f1869
2025-08-13 19:15:04 +02:00
Ilia Shipitsin
6b2bbcb428 CI: vtest: add os name to OT cache key
currently OpenTracing cache does not include os name. it does not
allow to distinguish, for example between ubuntu-24.04 and
ubuntu-24.04-arm.
2025-08-08 15:36:12 +02:00
Ilia Shipitsin
198d422a31 CI: set DEBUG_STRICT=2 for coverity scan
enabling DEBUG_STRICT=2 will enable BUG_ON_HOT() and help coverity
in bug detection

for the reference: https://github.com/haproxy/haproxy/issues/3008
2025-07-06 08:17:37 +02:00
Ilya Shipitsin
94ded5523f CI: combine AWS-LC and AWS-LC-FIPS by template
let's reduce code duplication by involving workflow templates
2025-05-27 15:06:58 +02:00
Ilia Shipitsin
12de9ecce5 CI: WolfSSL: enable unit tests
Run the new make unit-tests on the CI.
2025-05-14 17:00:31 +02:00
Ilia Shipitsin
75a1e40501 CI: QuicTLS (weekly): limit run on forks only to manual dispatch 2025-05-14 17:00:31 +02:00
Ilia Shipitsin
a8b1b08fd7 CI: musl: enable unit tests
Run the new make unit-tests on the CI.
2025-05-14 17:00:31 +02:00
Ilia Shipitsin
01225f9aa5 CI: compliance: limit run on forks only to manual + cleanup 2025-05-14 17:00:31 +02:00
Ilia Shipitsin
61b30a09c0 CI: AWS-LC: enable unit tests
Run the new make unit-tests on the CI.
2025-05-14 17:00:31 +02:00
Ilia Shipitsin
944a96156e CI: AWS-LC(fips): enable unit tests
Run the new make unit-tests on the CI.
2025-05-14 17:00:31 +02:00
Ilia Shipitsin
4dee087f19 CI: fedora rawhide: enable unit tests
Run the new make unit-tests on the CI.
2025-04-15 16:53:54 +02:00
Ilya Shipitsin
eed4116c07 CI: enable weekly QuicTLS build
QuicTLS started own fork not dependant on OpenSSL, lets add
that to weekly builds

ML: https://www.mail-archive.com/haproxy@formilux.org/msg45574.html
GH: https://github.com/quictls/quictls/issues/244
2025-04-11 16:01:45 +02:00
Ilia Shipitsin
bd477d5f51 CI: codespell: add "pres" to spellcheck whitelist
spellcheck was triggered by the following:

  * pres  : same as "res" but using the parent stream, if any. "pres"
            variables are only accessible during response processing of the
            parent stream.
2025-04-03 11:37:25 +02:00
Ilia Shipitsin
30df5b0f23 CI: spell check: allow manual trigger 2025-04-03 11:37:25 +02:00
Ilia Shipitsin
415d446065 CI: QUIC Interop on LibreSSL: allow "on: workflow_dispatch" in forks
previously that build were limited to "haproxy" github organization
only. let's allow manual builds from forks
2025-03-28 09:51:35 +01:00
Ilia Shipitsin
8d591c387a CI: QUIC Interop on AWS-LC: allow "on: workflow_dispatch" in forks
previously that build were limited to "haproxy" github organization
only. let's allow manual builds from forks
2025-03-28 09:51:35 +01:00
Ilia Shipitsin
7de45e3874 CI: NetBSD: allow "on: workflow_dispatch" in forks
previously that build were limited to "haproxy" github organization
only. let's allow manual builds from forks
2025-03-28 09:51:35 +01:00
Ilia Shipitsin
8231f58fdc CI: Illumos: allow "on: workflow_dispatch" in forks
previously that build were limited to "haproxy" github organization
only. let's allow manual builds from forks
2025-03-28 09:51:35 +01:00
Ilia Shipitsin
7495dbed22 CI: cross compile: allow "on: workflow_dispatch" in forks
previously that build were limited to "haproxy" github organization
only. let's allow manual builds from forks
2025-03-28 09:51:35 +01:00
Ilia Shipitsin
7eb54656ae CI: coverity scan: allow "on: workflow_dispatch" in forks
previously that build were limited to "haproxy" github organization
only. let's allow manual builds from forks
2025-03-28 09:51:35 +01:00
Ilia Shipitsin
424ca19831 CI: spellcheck: allow "on: workflow_dispatch" in forks
previously that build were limited to "haproxy" github organization
only. let's allow manual builds from forks
2025-03-28 09:51:35 +01:00
Ilia Shipitsin
d9cb95c2a5 CI: fedora rawhide: install "awk" as a dependency
for some reason it is not installed by default on rawhide anymore
2025-03-28 09:51:35 +01:00
Ilia Shipitsin
21894300c1 CI: fedora rawhide: allow "on: workflow_dispatch" in forks
previously that build were limited to "haproxy" github organization
only. let's allow manual builds from forks
2025-03-28 09:51:35 +01:00
William Lallemand
c6e6318125 CI: github: add "jose" to apt dependencies
jose is used in the JWS unit-test, let's add it to the CI.
2025-03-11 22:29:40 +01:00
William Lallemand
29db5406b4 CI: github: show results of the Unit tests
Add a "Show Unit-Tests results" section which show each unit test which
failed by displaying their result file.
2025-03-06 21:23:54 +01:00
William Lallemand
937ece45d4 CI: github: remove smoke tests from vtest.yml
Smoke tests from the vtest.yml are not useful anymore since they are run
directly by tests/unit/smoke/test.sh. This patch removes them.
2025-03-03 12:46:20 +01:00
William Lallemand
7a2a613132 CI: github: run make unit-tests on the CI
Run the new make unit-tests on the CI.

It requires HAProxy to be built with -DDEBUG_UNIT so the -U option is
available in HAProxy
2025-03-03 12:43:32 +01:00
Ilia Shipitsin
0bdf414fa5 CI: QUIC Interop: clean old docker images
currently temporary docker images are kept forever. let's delete
outdated ones
2025-02-21 11:34:43 +01:00
William Lallemand
4332fed6c1 CI: github: activate debug in wolfssl weekly build
Activate the WolfSSL debugging of WolfSSL in the weekly job.
2024-12-23 18:00:34 +01:00
William Lallemand
dfc403f5c6 CI: github: activate ASAN on the WolfSSL weekly job
Activate ASAN on the WolfSSL weekly job in order to have use-after-free
traces.
2024-12-23 17:27:27 +01:00
William Lallemand
ef108705e4 CI: github: try to build the latest WolfSSL master weekly
The WolfSSL latest version is still broken (5.7.4), no new release was
done with a new version.

Modify the weekly CI job so we could build with the latest git version.
2024-12-23 17:27:00 +01:00
Ilia Shipitsin
6aae995b1d CI: limit aws-lc and libressl Quic Interop to "haproxy" only
those CI are not supposed to run in forks (however, if someone wants,
he can enable it personally)
2024-12-23 13:59:48 +01:00
William Lallemand
0c1fdb2908 CI: github: let's add an AWS-LC-FIPS job
Add a job which does exactly the same as the aws-lc.yml job, but using
the AWS-LC-FIPS build.
2024-12-12 16:35:42 +01:00
Ilia Shipitsin
d61cac4ed1 CI: use "/tmp" as default value for TMPDIR when searching logs
VTest use /tmp already if not defined, let stick the behaviour for
searching logs as well
2024-12-10 08:20:51 +01:00
William Lallemand
a582b9c18d CI: github: allow coredumps on aws-lc and wolfssl jobs
The weekly aws-lc and wolfssl jobs lacks an `ulimit -c` call in order to
allow to get the coredumps.
2024-12-02 15:19:41 +01:00
William Lallemand
dee3f4b3ff CI: github: add 'workflow_dispatch' on remaining build jobs
Add 'workflow_dispatch' on the remaining scheduled build jobs that does
not have it.

This keyword allows to start manually a job from the "Actions" interface
in github.
2024-11-25 14:03:13 +01:00
William Lallemand
079193e375 CI: github: allow to run the Illumos job manually
Add the "workflow_dispatch" option to the Illumos CI so it can be run
manually from the github actions page.
2024-11-25 11:30:55 +01:00
William Lallemand
a7e5180c71 CI: github: improve the AWS-LC job
Like the WolfSSL job, improve the AWS-LC job by adding the socat command
so all SSL reg-tests can be run.
Also add gdb and output of corefiles.
2024-11-25 11:14:33 +01:00
William Lallemand
b0c2745ed0 CI: github: improve the Wolfssl job
Improve the WolfSSL job by adding the missing socat command.
Also add gdb and output corefiles like it's done on the VTest job.
2024-11-25 11:00:03 +01:00
William Lallemand
a941c92c12 CI: github: add a WolfSSL job which tries the latest version
Like the AWS-LC job, add a CI job which looks for the latest WolfSSL
version and tries to build it.

The patch adds a function which determines the latest version of WolfSSL
from the github tag, and the yml which describes the job.
2024-11-22 17:40:34 +01:00
William Lallemand
15845247db MEDIUM: mworker: remove USE_SYSTEMD requirement for -Ws
Since sd_notify() is now implemented in src/systemd.c, there is no need
anymore to build its support conditionnally with USE_SYSTEMD.

This patch add supports for -Ws for every build and removes the
USE_SYSTEMD build option. It also remove every reference to USE_SYSTEMD
in the documentation and the CI.

This also allows to run the reg-tests in -Ws with the new VTest support.
2024-11-20 12:07:38 +01:00
Ilia Shipitsin
976af317a4 CI: LibreSSL QUIC Interop: fix docker context
in the commit 98099287ee
building docker was switched to URL, but I forgotten to change context.

this is a followup fix.
2024-10-30 19:42:31 +01:00
Ilia Shipitsin
3ecca216b4 CI: enable chacha20 test on LibreSSL QUIC Interop
it was commented on purpose "until LibreSSL-4.0 is released".
lets enable it
2024-10-30 16:46:22 +01:00
Ilia Shipitsin
98099287ee CI: switch QUIC Interop on LibreSSL to common docker image
previously we used different docker images for different SSL libs,
now all of them are merged into one, lets switch to it
2024-10-30 16:46:06 +01:00
Ilia Shipitsin
4d40e9384c CI: switch QUIC Interop on AWS-LC to common docker image
previously we used different docker images for different SSL libs,
now all of them are merged into one, lets switch to it
2024-10-30 16:45:36 +01:00
Ilya Shipitsin
b6491ab19f CI: prepare Coverity build for Ubuntu 24
PCRE2 is recommended, PCRE was chosen for no reason. GHA Ubuntu 22 images include both libs,
but recent Ubuntu 24 does not. Let us prepare for Ubuntu 24
2024-10-21 07:54:32 +02:00
Ilya Shipitsin
4256961a44 CI: QUIC Interop: use different artifact names for uploading logs
artifact names must be unique, otherwise only first failed logs are
uploaded, other encounter 409 conflict
2024-08-26 11:19:41 +02:00
Ilya Shipitsin
438ad6b495 CI: QUIC Interop: do not run bandwidth measurement tests
crosstraffic, goodput tests are intended to perform bandwidth measurement,
we do not consider GitHub runners for that purpose

GH issue: https://github.com/haproxy/haproxy/issues/2688
2024-08-26 11:19:41 +02:00
Ilya Shipitsin
f583ed9469 CI: fix missing comma introduced in 956839c0f6
in 956839c0f6 syntax was broken due to missing
comma. it is follow up.
2024-08-26 11:19:41 +02:00
Ilya Shipitsin
956839c0f6 CI: QUIC Interop AWS-LC: enable ngtcp2 client
Let's add it and see how it goes.
GH issue: https://github.com/haproxy/haproxy/issues/2688
2024-08-24 19:13:59 +02:00
Ilia Shipitsin
ae8f6724a1 CI: QUIC Interop AWS-LC: enable chrome client
chrome is important browser, let's enable it in AWS-LC weekly tests.
the only test supported by chrome is http3
2024-08-20 05:13:46 +02:00
Ilia Shipitsin
6301042938 CI: modernize codespell action, switch to node 16
The following actions uses node12 which is deprecated and will be forced
to run on node16: codespell-project/codespell-problem-matcher@v1. For
more info:
   https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
2024-08-20 05:13:46 +02:00
Ilia Shipitsin
8b422971ee CI: QUIC Interop LibreSSL: document chacha20 test status
due to https://github.com/haproxy/haproxy/issues/2569 chacha20 is
disabled completely on LibreSSL. let's add a comment to not forget
enabling it
2024-08-20 05:13:26 +02:00
Ilia Shipitsin
ec1d93a6e9 CI: keep logs for failed QIUC Interop jobs
it might be useful to investigate logs of failed tests. to keep
artifacts small the following actions are taken
- only failed logs are kept
- logs retention is 6 days
2024-08-13 16:21:01 +02:00
Ilia Shipitsin
7fc52032e3 CI: harden NetBSD builds by ERR=1
Add ERR=1 build option to the NetBSD build from github.
2024-08-05 08:49:19 +02:00
Ilia Shipitsin
15d47eda37 CI: add weekly QUIC Interop regression against AWS-LC
currently only quic-go and picoquic clients are enabled.
Tests will be run weekly.
2024-08-05 08:46:49 +02:00
Ilia Shipitsin
89bdd8b62a CI: weekly QUIC Interop: try to fix private image
for some reason image built in HAProxy workflow is "private", it
is succesfully built, but fails to pull. Let's try explicit docker login
for run job as well
2024-07-10 09:43:02 +02:00
Ilia Shipitsin
f8a30b69d2 CI: add weekly QUIC Interop regression against LibreSSL
currently only quic-go and picoquic clients are enabled with testsuites
supposed to be "green". Tests will be run weekly.
2024-07-05 15:11:21 +02:00
William Lallemand
5e361c7767 CI: github: do the AWS-LC weekly build with ERR=1
The weekly CI that tries new version of AWS-LC was not building with
ERR=1, which let us think that everything was good but there was in fact
new warning that we missed.

Add ERR=1 to the build so the CI will failed for any new warning.
2024-06-14 12:18:32 +02:00
Ilia Shipitsin
ab23d7eb69 CI: speedup apt package install
we are fine to skip some repos like languages and translations.
this drops number of repos twice
2024-06-03 11:59:07 +02:00
Ilia Shipitsin
f3e6dfdc92 CI: VTest: accelerate package install a bit
let's check and install only package is required
2024-05-30 17:04:08 +02:00
Ilia Shipitsin
11c088e203 CI: switch to lua 5.4
current release is 5.4, let's switch to it
2024-05-29 22:37:26 +02:00
Ilia Shipitsin
01c213a4bb CI: use "--no-install-recommends" for apt-get
this reduces number of packages installed by 1
2024-05-29 22:37:26 +02:00
Ilia Shipitsin
cbe78c0281 CI: drop asan.log umbrella completely
asan.log redirection appeared to work poorly, let's cease that practice
for good.

ML: https://www.mail-archive.com/haproxy@formilux.org/msg44844.html
2024-05-13 11:36:36 +02:00
Ilia Shipitsin
05ecba0813 CI: netbsd: limit scheduled workflow to parent repo only
it is not very useful for most of forks.
2024-05-06 08:26:14 +02:00
Ilia Shipitsin
fab5a23731 CI: add Illumos scheduled workflow
this is very initial build only implementation.
2024-05-06 08:26:05 +02:00
Ilia Shipitsin
48ae9fe8a4 CI: netbsd: adjust packages after NetBSD-10 released
pcre2 is installed already, installing it from packages lead to
conflict. curl is installed as a preparation for VTest
2024-05-03 09:01:36 +02:00
William Lallemand
378d500caf REGTESTS: use -dI for insecure fork by default in the regtest scripts
Let's remove the CI HAPROXY_ARGS setting and set -dI for anything run
with the run-regtests.sh.
2024-04-22 16:15:57 +02:00
Ilya Shipitsin
2bb9e3bd06 CI: reduce ASAN log redirection umbrella size
previously ASAN_OPTIONS=log_path=asan.log was intended for VTest
execution only, it should not affect "haproxy -vv" and hsproxy
config smoke testing
2024-04-17 11:14:44 +02:00
Ilya Shipitsin
b5dd8b466e CI: revert kernel addr randomization introduced in 3a0fc864
It has been resolved on image generation side:
https://github.com/actions/runner-images/issues/9491

It is no harm to keep it on our side as well, but we can drop it.
2024-04-13 14:43:36 +02:00
Willy Tarreau
88c151f9ca BUILD: makefile: drop the ARCH variable and better document ARCH_FLAGS
ARCH_FLAGS was always present and is documented as being fed to both
CC and LD during the build. This is meant for options that need to be
consistent between the two stages such as -pg, -flto, -fsanitize=address,
-m64, -g etc. Its doc was lacking a bit of clarity though, and it was
not enumerated in the makefile's variables list.

ARCH however was only documented as affecting ARCH_FLAGS, and was just
never used as the only two really usable and supported ARCH_FLAGS options
were -m32 and -m64. In addition it was even written in the makefile that
it was CPU that was affecting the ARCH_FLAGS. Let's just drop ARCH and
improve the documentation on ARCH_FLAGS. Again, if ARCH is set, a warning
is emitted explaining how to proceed.

ARCH_FLAGS is now preset to -g so that we finally have a correct place
to deal with such debugging options that need to be passed to both
stages. The fedora and musl CI workflows were updated to also use it
instead of sticking to duplicate DEBUG_CFLAGS+LDFLAGS.

It's also worth noting that BUILD_ARCH was being passed to the build
process and never used anywhere in the code, so its removal will not
be noticed.
2024-04-11 17:33:28 +02:00
Willy Tarreau
6b6a6ad431 CI: update the build options to get rid of unneeded DEBUG options
Now that DEBUG_STRICT and DEBUG_MEMORY_POOLS are the default, we can
drop them from the build options.
2024-04-11 17:25:45 +02:00
Ilya Shipitsin
ba1a0559e4 CI: extend Fedora Rawhide, add m32 mode
hopefully it will allow to catch regressions like this
https://github.com/haproxy/haproxy/commit/e41638a
2024-04-04 08:59:34 +02:00
Ilya Shipitsin
9dd9289cec CI: vtest: show coredumps if any
if any coredump	is found, it is	passed to gdb with
'thread apply all bt full'
2024-04-02 07:29:08 +02:00
Ilia Shipitsin
3a0fc8641b CI: temporarily adjust kernel entropy to work with ASAN/clang
clang runtime (shipped with clang14) is not compatible with recent
Ubuntu kernels

more details: https://github.com/actions/runner-images/issues/9491
2024-03-18 19:54:33 +01:00
William Lallemand
9c2e900a9b CI: github: add -dI to haproxy arguments
-dI is useful when running with ASAN, allow to fork addr2line
2024-03-13 11:23:14 +01:00
Ilya Shipitsin
e3af7f832c CI: skip scheduled builds on forks
tracking bleeding edge changes with some rare platforms or modern
compilers on scheduled basis is not what usually forks do. let's
skip by default in forks, if some fork is interested, it might be
enabled locally
2024-03-05 11:50:34 +01:00
Ilya Shipitsin
6142a3fad7 CI: enable monthly build only test on netbsd-9.3
it is interesting to try https://github.com/vmactions/netbsd-vm actions
2024-03-05 11:50:34 +01:00
Ilya Shipitsin
6b54a7b65e CI: run more smoke tests on config syntax to check memory related issues
config syntax check seems add a value on testing code path not
covered by VTest, also checks are very fast
2024-03-05 11:50:34 +01:00
Tim Duesterhus
4559470728 CI: Update to actions/cache@v4
No functional change, but this upgrade is required, due to the v3 runtime being
deprecated:

> Node.js 16 actions are deprecated. Please update the following actions to use
> Node.js 20: actions/cache@v3. For more information see:
> https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
2024-02-10 05:12:20 +01:00
Willy Tarreau
98291440b8 Revert "CI: enable spell check on git push"
This reverts commit 413aa6e2e9.

It reports failures that neither the patch's author nor the committer
are able to check for before pushing, causing an excess of failure
reports that can hardly be acted upon. We need to find a better
solution, let's revert it for now.
2024-01-26 19:58:14 +01:00
Ilya Shipitsin
413aa6e2e9 CI: enable spell check on git push 2024-01-26 17:30:03 +01:00
Ilya Shipitsin
4bdfd2ebc9 CI: extend spell check white list
siz - seen in src/debug.c
EXPERIM - seen in src/cli.c
2024-01-26 17:29:27 +01:00
Ilya Shipitsin
07dc373163 CI: codespell: add more words to whitelist
"Collet" is "Yann Collet" - a developer of xxhash
"bu" is variable name in src/sock_unix.c
"htmp" is variable name in src/quic_retransmit.c
2024-01-12 08:34:53 +01:00
Ilya Shipitsin
128490f183 CI: codespell: ignore some words in URLs
"trafic,ressources" are found in URIs, due to
https://github.com/codespell-project/actions-codespell/issues/55 we cannot use
wildcard for exclusion, let start with fixed list
2024-01-12 08:34:53 +01:00
Ilya Shipitsin
63957b7c87 CI: limit codespell checks to main repo, not forks 2023-11-23 16:23:14 +01:00
William Lallemand
aaa326b571 CI: github: add USE_QUIC=1 to aws-lc build
Feature are limited but aws-lc can now build with USE_QUIC=1.
2023-10-04 17:03:34 +02:00
Ilya Shipitsin
d89734bcc5 CI: musl: drop shopt in workflow invocation
"shopt" is bash specific, while musl uses bourne shell.

/__w/_temp/1b0f5f5d-c71b-4a66-8be3-e1fe51c10993.sh: line 7: shopt: not found
2023-09-08 19:05:04 +02:00
Ilya Shipitsin
8382d71808 CI: musl: highlight section if there are coredumps
previously, section was collapsed, thus it was harder to find that
there's something to look at
2023-09-08 19:05:04 +02:00
Tim Duesterhus
5c923f1869 CI: Update to actions/checkout@v4
No functional change, but we should keep this current.

see 5f4ddb54b0
2023-09-06 17:46:02 +02:00
Andrew Hopkins
06d36913bd CI: github: Add a weekly CI run building with AWS-LC
Use determine_latest_aws_lc() from matrix.py to always test with
the latest release of AWS-LC. Run the common "default,bug,devel"
tests.
2023-09-06 13:41:36 +02:00
Ilya Shipitsin
28e94c6192 CI: fedora: fix "dnf" invocation syntax
In 39e205302e I erroneously used
"dnf git" instead of "dnf install"
2023-08-25 09:31:09 +02:00
Ilya Shipitsin
54cafa908d CI: get rid of travis-ci wrapper for Coverity scan
historically coverity scan was performed by travis-ci script, let us
rewrite it in bash
2023-08-10 08:01:17 +02:00
Ilya Shipitsin
39e205302e CI: do not use "groupinstall" for Fedora Rawhide builds
Fedora Rawhide migrated to dnf5, which does not support "groupinstall"
2023-08-10 08:01:17 +02:00
Ilya Shipitsin
f7dcceccc9 CI: explicitely highlight VTest result section if there's something
it turned out that people miss VTest result section because it is not highlighted,
let us fix that
2023-07-17 15:56:53 +02:00
Ilya Shipitsin
8a46f98615 CI: drop Fedora m32 pipeline in favour of cross matrix
Fedora m32 monthly was introduced before cross matrix. Actually,
many of cross builds are 32 bit, no need to keep dedicated Fedora
definition
2023-05-17 14:57:10 +02:00
Ilya Shipitsin
5414d82ce5 CI: enable monthly Fedora Rawhide clang builds
that was temporarily disabled due to
https://github.com/haproxy/haproxy/issues/1868

we are unblocked, let us enable clang in matrix
2023-05-13 17:42:32 +02:00
Ilya Shipitsin
edfa7c99e9 CI: extend spellchecker whitelist, add "clen" as well
"clen" is all around the code, since codespell cannot distingush
variables names, let us ignore it
2023-04-23 09:44:53 +02:00