Commit Graph

26 Commits

Author SHA1 Message Date
Ilya Shipitsin
d69d65a563 BUILD: SSL: add QUICTLS to build matrix
It also enables QUIC when QUICTLS is used.
2021-11-20 08:18:00 +01:00
William Lallemand
bc2b96c2de CI: github: switch to OpenSSL 3.0.0
Switch the OpenSSL 3.0.0alpha17 version to the final 3.0.0 release.

Part of OpenSSL 3.0.0 portage. (ticket #1276)
2021-10-13 10:21:22 +02:00
Willy Tarreau
ed17ca7006 CI: Github Actions: re-enable Opentracing
Miroslav already fixed the build of OpenTracing so we can re-enable it
in the CI. For now variables are disabled but this will change soon.
2021-09-12 07:08:14 +02:00
Willy Tarreau
f14edc8212 CI: Github Actions: temporarily disable Opentracing
As discussed in the thread below, the recent variables changes
unfortunately broke Opentracing. Discussions are ongoing about
possible solutions but none of them can be done in a 3-liner so
we'd rather disable opentracing from the full-features build for
the time being.

Link: https://www.mail-archive.com/haproxy@formilux.org/msg41131.html
2021-09-09 14:45:05 +02:00
Willy Tarreau
30ee2965b6 CI: Github Actions: temporarily disable BoringSSL builds
A recent update to BoringSSL broke the build again, and given that
it's not used except for QUIC development, let's temporarily disable
it until the issue is analysed and fixed.
2021-09-02 17:32:43 +02:00
Ilya Shipitsin
af2720f69f CI: github actions: relax OpenSSL-3.0.0 version comparision
we better to check for 3.0.0 presense, than exact version
2021-08-16 12:48:49 +02:00
Tim Duesterhus
762b1fdb7a CI: Remove obsolete USE_SLZ=1 CI job
Using SLZ is a default, thus this build is equivalent to the "no features"
build.
2021-08-16 12:37:16 +02:00
Tim Duesterhus
871ef2ffbc CI: Make matrix.py executable and add shebang
It's a script, allow executing this as a script without needing to invoke
`python3` manually.
2021-06-08 21:30:36 +02:00
William Lallemand
64d6c09e54 CI: github actions: -Wno-deprecated-declarations with OpenSSL 3.0.0
Disable the deprecated functions warning when building with openssl
3.0.0 alpha. This will need to be reverted once haproxy is ported to the
new API.
2021-06-07 15:34:07 +02:00
Ilya Shipitsin
c3f28a38d2 CI: github actions: add OpenSSL-3.0.0 builds
OpenSSL-3.0.0 is getting close to its release, let us add it to build matrix
2021-06-07 15:27:35 +02:00
Ilya Shipitsin
75c95aa649 CI: github actions: add OpenTracing builds
let us add OpenTracing module to "all features" builds
2021-05-18 18:37:37 +02:00
Ilya Shipitsin
714f28ceef CI: Github Actions: enable USE_QUIC=1 for BoringSSL builds
if haproxy is built against BoringSSL, let us add USE_QUIC=1 dynamically
2021-05-10 07:24:55 +02:00
Ilya Shipitsin
04b57a7d1b CI: Github Actions: switch to LibreSSL-3.3.3
stable LibreSSL-3.3.3 released, let us switch to it
2021-05-05 11:29:05 +02:00
Willy Tarreau
57610c694e CONTRIB: move src/wurfl.c and contrib/wurfl to addons/wurfl
Both the source file and the dummy library are now at the same place.
Maybe the build howto could be moved there as well to make things even
cleaner.

The Makefile, MAINTAINERS, doc, and vtest matrix were updated.
2021-04-02 17:48:42 +02:00
Willy Tarreau
f8d9ec57f0 CONTRIB: move src/da.c and contrib/deviceatlas to addons/deviceatlas
Both the source file and the dummy library are now at the same place.
Maybe the build howto could be moved there as well to make things even
cleaner.

The Makefile, MAINTAINERS, doc, github build matrix, coverity checks
and travis CI's build were updated.
2021-04-02 17:48:42 +02:00
Willy Tarreau
977209d1d8 CONTRIB: move 51Degrees to addons/51degrees
Now it's much cleaner, both 51d.c and the dummy library live together and
are easier to spot and maintain. The build howto probably ought to be moved
there as well. Makefile, docs and MAINTAINERS were updated, as well as
the github CI's build matrix, travis CI's, and coverity checks.
2021-04-02 17:48:42 +02:00
Willy Tarreau
3dfadc7ae7 CONTRIB: move prometheus-exporter to addons/promex
Let's start to better organize the addons by moving promex there (and
with an easier directory name). The makefile and maintainers files were
updated, as well as the CI's build matrix.
2021-04-02 17:48:42 +02:00
Ilya Shipitsin
d21f4e1e71 CI: github actions: update LibreSSL to 3.2.5
LibreSSL-3.2.5 is released, let us update to it
2021-03-20 09:32:52 +01:00
Ilya Shipitsin
938e85b228 CI: github actions: switch to stable LibreSSL release
LibreSSL-3.3.0 appeared to have its own bugs, it is development release,
let us switch to stable LibreSSL-3.2.4 instead
2021-02-19 18:08:06 +01:00
Ilya Shipitsin
b34aee8294 CI: github actions: enable 51degrees feature 2020-11-26 19:08:15 +01:00
Ilya Shipitsin
f500359708 CI: github actions: update LibreSSL to 3.3.0 2020-11-26 19:08:02 +01:00
Tim Duesterhus
8d173e17c0 CI: Pass the github.event_name to matrix.py
This is a preparation to later run some matrix entries on schedule only.

Within the matrix.py script it can now be detected whether the workflow is
running on schedule by using:

    if build_type == "schedule":
        matrix.append(...)
2020-11-21 11:05:16 +01:00
Ilya Shipitsin
f644c5a95f CI: Github Actions: enable BoringSSL builds 2020-11-21 05:40:27 +01:00
Ilya Shipitsin
cf67a12598 CI: Github Actions: remove LibreSSL-3.0.2 builds 2020-11-21 05:40:27 +01:00
Ilya Shipitsin
69c10f1d50 CI: Github Actions: enable prometheus exporter 2020-11-21 05:40:27 +01:00
Tim Duesterhus
288c0772e6 CI: Expand use of GitHub Actions for CI
Travis is becoming overall increasingly unreliable lately. We've already
seen that the timing sensitive tests regularly fail and thus they were
disabled.

Additionally they recently announced a new pricing model that caps the number
of minutes for Open Source projects:
https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing

GitHub Actions VMs are working well, possibly allowing to use custom runners
for special tasks in the future.

In addition to this better performance its workflow configuration language
is more expressive compared to the Travis CI one. Specifically the build
matrix does not need to be specified in YAML. Instead it can be generated
ad-hoc using a script. This allows us to cleanly define the various build
configurations without having an unreadable 80 line mess where the flags
are inconsistently activated. As an example in the current Travis CI
configuration the prometheus exporter is tested together with LibreSSL 2.9.2
for whatever reason.

In addition to all the previous points the UI of Travis is not that nice.
On GitHub you are just seeing that "Travis failed" without any details which
exact job failed. This requires you to visit the slow Travis page and look
up the details there. GitHub Actions creates a single entry for each
configuration that is tested, allowing you to see the details without needing
to leave GitHub.

This new GitHub Actions workflow aims to reproduce the configurations tested
in Travis. It comes close, but is not completely there, yet. Consider this
patch a proof of concept that will evolve in the future, ideally with Ilya's
expertise.

The current configurations are as follows. Each one is tested with both gcc
and clang.
- All features disabled (no USE flags)
- All features enabled (all USE flags)
- Standalone test of each of the supported compression libraries:
  - USE_ZLIB=1
  - USE_SLZ=1
- Standalone test of various SSL libraries:
  - stock (the SSL installed by default on the VM)
  - OpenSSL 1.0.2u
  - LibreSSL 2.9.2, 3.0.2, 3.1.1
- All features enabled with ASAN (clang only)

Future additions of new tests should take care to not test unrelated stuff.
Instead a distinct configuration should be added.

Additionally there is a Mac OS test with clang and all features disabled.

Known issues:
- Apparently the git commit is not properly detected during build. The HEAD
  currently shows as 2.4-dev0.
2020-11-10 10:15:17 +01:00