Commit graph

202 commits

Author SHA1 Message Date
Tim Duesterhus
edf72ac1a4 CI: Use sh in actions/setup-vtest/action.yml
Bash might not always be preinstalled and we don't make use of any
bash-specific features either. Switch to POSIX sh for simplicity.

This partly reverts the fix in 073240044e, which
installed `bash` for the musl job.
2026-04-14 11:16:17 +02:00
Tim Duesterhus
716218f723 CI: Remove obsolete steps from musl.yml
These have become obsolete with the use of `./.github/actions/setup-vtest` in
6e67b59aca.
2026-04-14 11:16:17 +02:00
Ilia Shipitsin
76f74d7a55 CI: build WolfSSL job with asan enabled
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.
2026-04-13 14:03:30 +02:00
William Lallemand
073240044e CI: github: add bash to the musl job
Previous commit 6e67b59 ("CI: Consistently set up VTest with
./.github/actions/setup-vtest") requires bash to use the github action.

This commit adds bash to the list of installed package in alpine.
2026-04-13 11:28:51 +02:00
Tim Duesterhus
6e67b59aca CI: Consistently set up VTest with ./.github/actions/setup-vtest
Two jobs still used `scripts/build-vtest.sh` directly, which seems like an
oversight.
2026-04-13 09:34:07 +02:00
Tim Duesterhus
a7c2cf9274 CI: Merge aws-lc-template.yml into aws-lc.yml
There is no need to have an entirely separate workflow, when we can just use a
build matrix for the variation.
2026-04-13 09:34:07 +02:00
Tim Duesterhus
5ea919fa7c CI: Merge aws-lc.yml and aws-lc-fips.yml into aws-lc.yml
These two jobs run on exactly the same triggers and are effectively variations
of each other. There is no need to have two separate workflows for them.
2026-04-13 09:34:07 +02:00
Tim Duesterhus
86430ab5a4 CI: Simplify version extraction with haproxy -vq
Instead of running `awk` on the output of `haproxy -v` to extract the bare
version number, we can use `haproxy -vq`.
2026-04-13 09:34:07 +02:00
Tim Duesterhus
c6b9ba80ae CI: Update to actions/checkout@v6
No functional change, but we should keep this current.

see 5f4ddb54b0
see 5c923f1869
see b81a7f428b
2026-04-13 09:34:07 +02:00
Tim Duesterhus
5d6a09580a CI: Wrap all if: conditions in ${{ }}
While `if:` also works with a bare condition, it is a best practice to always
wrap "dynamic placeholders" in `${{ }}`.

See: https://github.blog/changelog/2026-01-29-github-actions-smarter-editing-clearer-debugging-and-a-new-case-function/#better-if-condition-handling
2026-04-13 09:34:07 +02:00
Tim Duesterhus
a4737cca08 CI: Consistently add a top-level permissions definition to GHA workflows
This makes it easy to verify the permissions and to apply them to all jobs
within a given workflow.
2026-04-13 09:34:07 +02:00
Tim Duesterhus
991d5dabe0 CI: Drop obsolete packages: write permission from quic-interop-*.yml
This is no longer necessary since dfe1de4335.
2026-04-13 09:34:07 +02:00
William Lallemand
8745d2cf8e CI: github: fix vtest path to allow correct caching
The vtest binary does not seem to be cached correctly by actions/cache,
the cause of the problem seems to be the binary is installed outside the
github workspace. This patch installs the binary in ~/vtest/ to fix the
issue.
2026-04-08 11:05:38 +02:00
William Lallemand
4111cf3e0e CI: github: update to cache@v5
github complains about cache@v4:

Node.js 20 actions are deprecated. The following actions are running on
Node.js 20 and may not work as expected: actions/cache@v4. Actions will
be forced to run with Node.js 24 by default starting June 2nd, 2026.
Node.js 20 will be removed from the runner on September 16th, 2026.
Please check if updated versions of these actions are available that
support Node.js 24. To opt into Node.js 24 now, set the
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true environment variable on the
runner or in your workflow file. Once Node.js 24 becomes the default,
you can temporarily opt out by setting
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true. For more information see:
https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
2026-04-08 10:15:18 +02:00
Ilia Shipitsin
bf363a7135 CI: remove redundant "halog" compilation
since 6499c0a0d5 halog is being build
in vtest workflow, no need to build it two times
2026-02-23 11:11:26 +01:00
Ilia Shipitsin
c44d6c6c71 CI: use the latest docker for QUIC Interop
quic-interop runner is using features available in Docker v28.1
while Github runner includes v28.0

let's for sure setup the latest available
2026-02-23 11:11:20 +01:00
William Lallemand
c26c721312 CI: github: disable windows.yml by default on unofficials repo
Some checks are pending
Contrib / build (push) Waiting to run
alpine/musl / gcc (push) Waiting to run
VTest / Generate Build Matrix (push) Waiting to run
VTest / (push) Blocked by required conditions
Windows / Windows, gcc, all features (push) Waiting to run
Disable the windows job for repository in repositories that are not in
the "haproxy" organization. This is mostly used for portability during
development and only making noise during the maintenance cycle.

Must be backported in every branches.
2026-02-18 18:16:21 +01:00
Ilia Shipitsin
dfe1de4335 CI: do not use ghcr.io for Quic Interop workflows
due to some (yet unknown) changes in ghcr.io we are not able to pull
images from it anymore. Lets temporarily switch to "local only" images
storage.

no functional change
2026-02-18 15:35:18 +01:00
William Lallemand
eebb448f49 CI: github: fix vtest.yml with "not quictls"
Previous patch 0a4642 ("CI: github: define the right quictls version in
each jobs") didn't use the right syntax for string matching.
2026-01-19 13:22:10 +01:00
William Lallemand
0a464215c5 CI: github: define the right quictls version in each jobs
openssl+quictls is not maintained anymore (quictls/openssl), however we
still need to test openssl+quictls 1.1.1. Other openssl+quictls branches
don't need to be tested.

The quictls hardfork is tested in the 'quictls' job, it uses the
'main' branch in the quictls/quictls repository.
2026-01-19 11:45:57 +01:00
Ilia Shipitsin
bd8d70413e CI: github: switch monthly Fedora Rawhide build to OpenSSL
Some checks are pending
Contrib / build (push) Waiting to run
alpine/musl / gcc (push) Waiting to run
VTest / Generate Build Matrix (push) Waiting to run
VTest / (push) Blocked by required conditions
Windows / Windows, gcc, all features (push) Waiting to run
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.
2026-01-19 10:56:48 +01:00
William Lallemand
6e1718ce4b CI: github: remove ERR=1 temporarly from the ECH job
The ECH job still fails to compile since the openssl 4.0 deprecated
functions were not removed yet. Let's remove ERR=1 temporarly.

We do know that there's a regression in OpenSSL 4.0 with these
reg-tests though:

Error: #    top  TEST reg-tests/ssl/set_ssl_crlfile.vtc FAILED (0.219) exit=2
Error: #    top  TEST reg-tests/ssl/set_ssl_cafile.vtc FAILED (0.236) exit=2
Error: #    top  TEST reg-tests/quic/set_ssl_crlfile.vtc FAILED (0.196) exit=2
2026-01-08 17:32:27 +01:00
William Lallemand
9c8925ba0d CI: github: use git prefix for openssl-master.yml
Uses the git- prefix in order to get the latest tarball for the master
branch on github.
2025-12-18 16:13:04 +01:00
William Lallemand
0c7a4469d2 CI: github: openssl-master.yml misses actions/checkout
The job can't run setup-vtest because the actions/checkout use line is
missing.
2025-12-18 16:03:20 +01:00
William Lallemand
38d3c24931 CI: github: add a job to test the master branch of OpenSSL
vtest.yml only builds the releases of OpenSSL for now, there's no way to
check if we still have issues with the API before a pre-release version
is released.

This job builds the master branch of OpenSSL.

It is run everyday at 3 AM.
2025-12-18 15:43:06 +01:00
William Lallemand
a58f09b63c CI: github: remove openssl no-deprecated job
Remove the openssl no-deprecated job which was used for 1.1.0 API.
It's not useful anymore since it uses the OpenSSL version of the
distributions.

Checking depreciations in the API is still useful when using newest
version of the library. A job for the OpenSSL master branch would be
more useful than that.
2025-12-18 15:22:27 +01:00
William Lallemand
1f562687e3 CI: github: make install-bin instead of make install
Some checks are pending
Contrib / build (push) Waiting to run
alpine/musl / gcc (push) Waiting to run
VTest / Generate Build Matrix (push) Waiting to run
VTest / (push) Blocked by required conditions
Windows / Windows, gcc, all features (push) Waiting to run
make install now have a dependency to install-admin which have a
dependency to admin/halog/halog.

halog links haproxy .o together with its own objects, but those objects
when built with ASAN must also be linked with ASAN or it won't be
possible to link the binary.

We don't need an ASAN-ready halog, so let's just do an install-bin
instead that will just install haproxy.
2025-11-18 20:11:23 +01:00
William Lallemand
ce413f002a CI: github: add USE_ECH=1 to haproxy for openssl-ech job
Add the USE_ECH=1 make option to the haproxy build in order to test the
build of the feature.
2025-10-30 10:38:38 +01:00
Ilia Shipitsin
9781d91e4d CI: disable fail-fast on fedora rawhide builds
Previously builds were dependent in terms that if one fails, other are
stopped. By their nature those builds are independent, let's not to fail
them altogether
2025-10-29 08:15:01 +01:00
William Lallemand
6499c0a0d5 CI: github: build halog on the vtest job
halog was not built in the vtest job. Add it to vtest.yml to be able to
track build issues on push.
2025-09-26 16:29:29 +02:00
William Lallemand
230a072102 CI: github: add curl+ech build into openssl-ech job
Build a curl binary with the ECH function linked with our openssl+ech
library.
2025-09-25 17:05:46 +02:00
Ilia Shipitsin
8c8e50e09a CI: move VTest preparation & friends to dedicated composite action
reference: https://docs.github.com/en/actions/tutorials/create-actions/create-a-composite-action

preparing coredump limits, installing VTest are now served by dedicated
composite action
2025-09-22 19:18:23 +02:00
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