William Lallemand
40042afc13
CI: github: add an i686 job to the push job
...
Contrib / admin/halog/ (push) Waiting to run
Contrib / dev/flags/ (push) Waiting to run
Contrib / dev/haring/ (push) Waiting to run
Contrib / dev/hpack/ (push) Waiting to run
Contrib / dev/poll/ (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
Add an i686 job in order to run reg-tests on 32-bit architecture.
Use the i386 SSL and PCRE2 library provided by ubuntu.
VTest is still compiled in x86_64.
2026-04-22 00:33:20 +02:00
Tim Duesterhus
777924ef6c
CI: Build halog as part of contrib.yml
...
halog does not make use of any of the "fancy" build flags that HAProxy does and
except for itself only includes ebtree. There is no need to build it as part of
the VTest workflows.
2026-04-18 15:01:02 +02:00
William Lallemand
64d6c91c90
CI: github: merge Test and Test-musl in VTest.yml
...
In commit 7640d794 ("CI: Integrate Musl build into vtest.yml"), the
alpine job was integrated into VTest.yml. However, most of the task are
still duplicated and changes in the workflow need edits of copy/paste
code in two places because of that.
This commit deduplicates the code by making the alpine job part of the
matrix, like it was done for macOS.
2026-04-18 15:01:02 +02:00
Tim Duesterhus
2ccd2827d4
CI: Generate vtest.yml matrix on ubuntu-slim
...
This runner image is more lightweight by running inside of a container rather
than a full VM. This is sufficient to run some Python.
2026-04-14 11:16:17 +02:00
Tim Duesterhus
578d971d7d
CI: Use case() function
...
GitHub Actions introduced a new `case()` function in January that works just
like HAProxy’s `iif()` converter (just with an arbitrary number of
expressions). It is more robust than chaining strings with `&&` and `||`,
because it includes proper type-checking.
see https://github.blog/changelog/2026-01-29-github-actions-smarter-editing-clearer-debugging-and-a-new-case-function/#write-more-expressive-expressions-with-a-case-function
2026-04-14 11:16:17 +02:00
Tim Duesterhus
7640d7949f
CI: Integrate Musl build into vtest.yml
...
With the previous sync, these two workflows perform almost the same steps and
both logically belong to "Run VTest tests". Integrate musl.yml into vtest.yml,
which will hopefully encourage future changes to consistently apply to all jobs
in that workflow.
2026-04-14 11:16:17 +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
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
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
William Lallemand
1f562687e3
CI: github: make install-bin instead of make install
...
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
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
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
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
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
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
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
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
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
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
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
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
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
7e6e0388d6
CI: run 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
2023-04-01 18:30:52 +02:00
Tim Duesterhus
96e03e1a89
CI: Unify the GITHUB_TOKEN name across matrix.py and vtest.yml
...
This makes naming a little clearer in matrix.py, because the name matches the
name of the actual secret.
2023-01-03 16:28:34 +01:00
William Lallemand
61839b098d
CI: github: use the GITHUB_TOKEN instead of a manually generated token
...
Github allows to use a auto generated GITHUB_TOKEN so we don't need to
handle the token in the secret configuration.
https://docs.github.com/en/actions/security-guides/automatic-token-authentication#about-the-github_token-secret
2022-12-23 15:19:25 +01:00
William Lallemand
2cb1493748
CI: github: set ulimit -n to a greater value
...
Set ulimit -n to 65536 to limit less the maxconn computation.
Could be backported at least to 2.5.
2022-12-14 00:31:19 +01:00
Ilya Shipitsin
4a04cd35ae
CI: github: split ssl lib selection based on git branch
...
when *SSL_VERSION="latest" behaviour was introduced, it seems to be fine
for development branches, but too intrusive for stable branches.
let us limit "latest" semantic only for development builds, if branch name
contains "haproxy-" it is supposed to be stable branch, no latest openssl
should be taken
[wla: must be backported as far as 2.6]
Signed-off-by: William Lallemand <wlallemand@haproxy.org>
2022-12-12 16:20:48 +01:00
Willy Tarreau
a051816c03
CI: emit the compiler's version in the build reports
...
Some occasional builds fail only on a specific platform and being able
to figure the exact compiler version used there is crucial. It's not
easy to guess from the rest of the output, so let's add it before the
platform-specific defines, which suit the same needs.
2022-11-14 11:14:02 +01:00
Tim Duesterhus
b87ecbb179
CI: Replace the deprecated ::set-output command by writing to $GITHUB_OUTPUT in workflow definition
...
See "CI: Replace the deprecated `::set-output` command by writing to
$GITHUB_OUTPUT in matrix.py" for the reasoning behind this commit.
2022-10-14 19:50:34 +02:00
Tim Duesterhus
538d8fe8b7
CI: Update to actions/cache@v3
...
No functional changes for our use case, but we should keep this current.
2022-04-11 07:13:24 +02:00
Tim Duesterhus
5f4ddb54b0
CI: Update to actions/checkout@v3
...
No functional change, but we should keep this current.
2022-04-11 07:13:24 +02:00
Willy Tarreau
a0a6911bde
CI: github: enable pool debugging by default
...
This enables DEBUG_MEMORY_POOLS and DEBUG_POOL_INTEGRITY so that by
default the tests run under stricter checks, which are likely to
catch more bugs. Note that these ones are permanently used in prod
on haproxy.org.
2022-02-23 18:14:49 +01:00
Ilya Shipitsin
27df87cc63
CI: github actions: use cache for SSL libs
...
we have two kinds of SSL libs built - git based and version based.
this commit introduces caching for version based SSL libs.
2022-01-25 12:02:08 +01:00
Ilya Shipitsin
e9efc3a5be
CI: refactor OpenTracing build script
...
re-use scripts/build-ot.sh in CI again. Bump opentracing-cpp to 1.6.0
2022-01-19 07:37:40 +01:00