Commit Graph

60 Commits

Author SHA1 Message Date
Ilya Shipitsin
b1faf48222 CI: travis-ci: switch to Ubuntu 20.04
we were blocked by https://github.com/vtest/VTest/issues/20
issue is resolved, let us update to focal
2020-10-24 11:31:56 +02:00
Ilya Shipitsin
7aaadf5583 CI: travis-ci: help Coverity to detect BUG_ON() as a real stop
Let's add DEBUG_STRICT=1 to coverity build definition. Hopefully,
it will resolve 1 coverity issue.
2020-10-09 09:55:53 +02:00
Ilya Shipitsin
e1c0e6921b CI: travis-ci: split asan step out of running tests
when asan (address sanitizer) is enabled, it's findings were mixed
with test debug output and it was hard to identify whether tests
failed or asan failed.

let us output asan log to separate file and report its findings
separately
2020-09-15 09:02:07 +02:00
Ilya Shipitsin
d344910677 CI: travis-ci: help Coverity to recognize abort()
generally haproxy uses (*(volatile int*)1=0) for abort. It is not recognized
by static analyzers, e.g. Coverity scan as abort, so fallback to abort() was
introduced in previous commit for code analysis purpose. Let us explicitely
use it for Coverity build job
2020-09-12 13:11:31 +02:00
Ilya Shipitsin
bab67529c1 CI: travis-ci: specify SLZ_LIB, SLZ_INC for travis builds
These variables must be explicitly set as they are not inherited from
the environment. Till now they were ignored.
2020-08-05 11:40:14 +02:00
Ilya Shipitsin
f21023e1cf BUILD: Makefile: require SSL_LIB, SSL_INC to be explicitly set
The SSL_INC and SSL_LIB variables were not initialized in the Makefile,
so they could be accidently inherited from the environment. We require
that any makefile variable is explicitly set on the command line so they
must be initialized.

Note that the Travis scripts used to rely only on these variables to be
exported, so it was adjusted as well.
2020-08-05 11:37:32 +02:00
Ilya Shipitsin
61d85b06dd CI: travis-ci: use proper linking flags for SLZ build
previously SSL_INC and SSL_INC were set for all builds, and SLZ lib
was linked because of those flags. After we switched SLZ build to
stock openssl lib, SSL_INC, SSL_LIB are not set anymore.

Good time to set SLZ_INC, SLZ_LIB for such builds
2020-07-31 04:46:50 +02:00
Ilya Shipitsin
d681702709 CI: travis-ci: use better name for Coverity scan job
Let's add Coverity in the job name.
2020-07-31 04:46:44 +02:00
Ilya Shipitsin
90ff590962 CI: travis-ci : switch to stock openssl when openssl-1.1.1 is used
instead of building openssl-1.1.1 let us use stock package and save
some electricity
2020-07-30 07:37:15 +02:00
Ilya Shipitsin
73b520b958 CI : travis-ci : prepare for using stock OpenSSL
initially SSL_LIB and SSL_INC were set globally and we assumed
that any OpenSSL variant is supposed to be built using "script/build-ssl.sh".

starting with ARM64 build we use stock openssl, also it makes sense
to use stock openssl for 1.1.1 builds for velocity sake.

Let us make stock openssl lib first class citizen.

SSL_LIB and SSL_INC are only set when custom openssl variant
is built.
2020-07-30 07:36:52 +02:00
Ilya Shipitsin
e0e6aa5dda CI: travis-ci: speed up osx build by running brew scripted, switch to latest osx image
we used to use travis-ci brew plugin to install "socat", travis-ci brew
plugin works predictable in "all update" mode. sometimes it might take 12 minutes.

let us improve developer velocity by running brew from command line. It takes 2 minutes
instead of 12 minutes

latest osx seems to have more stable brew, let us switch to latest osx available.
osx images list: https://docs.travis-ci.com/user/reference/osx/#macos-version
2020-07-15 08:42:18 +02:00
Ilya Shipitsin
aaa34ea622 CI: travis-ci: switch BoringSSL builds to ninja
using ninja instead of make speed up build by 40 sec
2020-06-26 11:26:26 +02:00
Ilya Shipitsin
8469bed20b CI: travis-ci: use "-O1" for clang builds
it turned out that clang asan fails with -O2 option

better solution yet to be found

ML: https://www.mail-archive.com/haproxy@formilux.org/msg37621.html
2020-06-13 22:59:03 +02:00
Ilya Shipitsin
13dd45178e CI: travis-ci: fix libslz download URL
let us switch to github mirror, travis cannot download original libslz

error is:
fatal: unable to access 'http://git.1wt.eu/git/libslz.git/': Failed
to connect to git.1wt.eu port 80: Connection timed out The command
"git clone http://git.1wt.eu/git/libslz.git/" failed and exited with
128...
2020-05-20 12:53:48 +02:00
Martin Tzvetanov Grigorov
5eb5e253e6 CI: travis-ci: switch arm64 builds to use openssl from distro
there are ongoing arm64 failures in travis-ci. we suspect that
build stucks on scripts/build-ssl.sh which is called during build.
let us try to use openssl from ubuntu distro and not build it
ourselves. to achive that we add "install" section without
build-ssl.sh
2020-05-15 20:52:52 +02:00
Ilya Shipitsin
b7faeaddac CI: travis-ci: upgrade LibreSSL versions
3.0.2 --> 3.1.1
2.9.2 --> 3.0.2
2.8.3 --> 2.9.2
2020-05-11 10:08:32 +02:00
Willy Tarreau
b530bac0f0 CI: travis-ci: extend the build time for SSL to 60 minutes
As discussed in the thread below we're still facing build timeouts
on Travis on aarch64 and the truncated logs doesn't help. It's not
PCRE2 so let's try to extend the permitted time to build the SSL
lib.

   https://www.mail-archive.com/haproxy@formilux.org/msg37251.html
2020-05-08 14:18:50 +02:00
Ilya Shipitsin
8d76af55e1 CI: travis-ci: skip pcre2 on arm64 build
currently arm64 stuck with some error related to pcre2. while we beleive
pcre2 is not related to error itself, we can try not to install it
2020-05-08 12:56:27 +02:00
Ilya Shipitsin
49fecd9f47 CI: travis-ci: enable arm64 builds again
travis-ci arm64 were temporarily disabled due to travis instability.
let us enable them in "allowed to fail" mode.
2020-05-07 22:52:17 +02:00
Ilya Shipitsin
197af01a9e CI: travis-ci: upgrade openssl to 1.1.1f
openssl has changed download path after 1.1.1f release
2020-04-07 07:26:21 +02:00
Ilya Shipitsin
2f9802b24b CI: travis-ci: enable DEBUG_STRICT=1 for CI builds
DEBUG_STRICT enables the BUG_ON() macro which validates some developers'
assertions in the code that are not enabled for production build but
may sometimes help catch certain rare bugs.

DEBUG_STRICT is set to all builds except one
2020-04-07 07:26:21 +02:00
Ilya Shipitsin
b2931b1670 CI: use better SSL library definition
SSL_LIB is already added to LDFLAGS in Makefile, no need to define it
rpath better be defined using ADDLIB variable
2020-04-07 07:26:21 +02:00
Ilya Shipitsin
18b303e9f9 CI: temporarily disable unstable travis arm64 builds
[wt: arm64 shows timeouts during packages downloads and causes all
 builds to be reported as failures; building for arm64 on real hardware
 is still done on a regular basis and works fine however]
2020-03-20 11:56:38 +01:00
Ilya Shipitsin
ceb060ed40 CI: run travis-ci builds on push only, skip pull requests
[wt: we have few pull reqs and they're automatically closed, however
 seeing them pop up here and there needlessly was adding noise to the
 reports]
2020-03-20 11:55:07 +01:00
Ilya Shipitsin
1df9b98400 CI: travis: proper group output redirection together with travis_wait
travis_wait is bash function, it was wrongly grouped with output
redirection which leads to ARM64 builds errors last week
2020-03-18 09:40:52 +01:00
Willy Tarreau
98ebeca1ed CI: travis: re-enable ASAN on clang
As spotted by Tim, ASAN is disabled on clang-9 due to an exact compiler
name match. Let's relax the rule and accept "clang" and "clang-*". More
context here: https://www.mail-archive.com/haproxy@formilux.org/msg36688.html
2020-03-18 09:35:58 +01:00
Willy Tarreau
0df0982d3b CI: travis: revert to clang-7 for BoringSSL tests
Building BoringSSL with clang9 fails:
   https://travis-ci.com/github/haproxy/haproxy/jobs/298267505
   https://bugs.chromium.org/p/boringssl/issues/detail?id=323

Let's revert to clang-7 for now.
2020-03-16 08:10:56 +01:00
Ilya Shipitsin
663825e5d0 CI: travis: switch linux builds to clang-9
let us use clang-9 instead of default clang-7 for linux builds.
2020-03-14 10:22:13 +01:00
Willy Tarreau
d726386421 BUILD: travis-ci: enable regular s390x builds
Previous patch didn't only disable removal of the reg-test but
disabled s390x entirely. Now we enable it like other platforms.
This is an attempt at fixing build issue #504.
2020-03-13 04:11:48 +01:00
Willy Tarreau
ac3bf3e042 Revert "BUILD: travis-ci: enable s390x builds"
This reverts commit 3380a4efd0.

This is an attempt at fixing #504 now that the seamless reload
regtest that used to break non-x86 platforms was fixed.
2020-03-13 04:05:21 +01:00
Ilya Shipitsin
3380a4efd0 BUILD: travis-ci: enable s390x builds
reg-tests/seamless-reload/abns_socket.vtc is skipped due to #504
2020-02-25 11:58:43 +01:00
Ilya Shipitsin
1f555daeb5 BUILD: travis-ci: harden builds, add ERR=1 (warning ought to be errors) 2020-02-12 15:42:44 +01:00
Ilya Shipitsin
7ef2cb2de3 BUILD: travis-ci: no more allowed failures for openssl-1.0.2
since 23fb037 (which fixes #429) no need to allow failures
on openssl-1.0.2
2020-02-12 15:42:44 +01:00
Willy Tarreau
d78cf0fe0f BUILD: CI: disable slow regtests on Travis
We're getting almost 100% failure rate recently due to the "slow" tests
never completing in time on Travis. Peers do not synchronize their data
within the expected delay, health checks time out due to the tested
agent not responding, etc. This adds a lot of noise and completely voids
the value of the build test.

Let's disable the slow tests to try to get back to a fully working state.
2020-01-24 17:37:35 +01:00
Ilya Shipitsin
8aad9465f9 BUILD: CI: move cygwin builds to Github Actions
builds on travis-ci fail because of
https://travis-ci.community/t/cygwin-issue-cygheap-base-mismatch-detected/5359
unfortunately, documentation does not help.

so, let us move builds to Github Actions.

also, remove deprecated "sudo" directive from .travis.yml
2020-01-22 22:51:30 +01:00
Ilya Shipitsin
016797f6ab BUILD: CI: temporarily mark openssl-1.0.2 as allowed failure
Until #429 is resolved, let us ignore openssl-1.0.2 failures
2020-01-22 14:31:52 +01:00
Ilya Shipitsin
9bf2a1be89 BUILD: CI: introduce ARM64 builds
also several small changes:

openssl-1.0.2 upgraded to 1.0.2u
ppc64le upgraded to "bionic" (it was tricky part, linux-ppc64le is xenial,
while arch: ppc64le is bionic).
additional wait introduced for build ssl.
2020-01-22 06:47:24 +01:00
Ilya Shipitsin
7aed6ef8e3 BUILD: travis-ci: reenable address sanitizer for clang builds
address sanitizer was temporarily disabled. after getting rid of
LD_LIBRARY_PATH manipulation it works again, so let us enable it
2019-12-26 06:30:21 +01:00
Ilya Shipitsin
1afd2359eb BUILD: travis-ci: link with ssl libraries using rpath instead of LD_LIBRARY_PATH/DYLD_LIBRARY_PATH
modifying LD_LIBRARY_PATH/DYLD_LIBRARY_PATH also affects other utilities like curl
to avoid side effects let us use rpath for ssl library linking

Fixes #418
2019-12-21 12:14:21 +01:00
Ilya Shipitsin
632cae2b11 BUILD: CI: comment out cygwin build, upgrade various ssl libraries
cirrus ci builds are now limited to branches master, next
travis-ci images are upgraded to ubuntu bionic
cygwin builds are temporarily disabled on travis-ci
(maybe someone will figure out how to fix them, here's link
https://travis-ci.community/t/cygwin-issue-cygheap-base-mismatch-detected/5359/2 )

openssl upgraded to 1.0.2t, 1.1.0l, 1.1.1d
libressl are upgraded (2.9.2, 2.8.3, 2.7.5)  --> (3.0.2, 2.9.2, 2.8.3)
2019-10-29 06:27:50 +01:00
Willy Tarreau
a3956aa3b6 BUILD: travis-ci: limit build to branches "master" and "next"
Occasionally some short-lived branches are pushed to help developers
rebase their work, these ones do not need to be built. This patch
explicitly lists "master" and "next" as the two only branches of
interest. It also adds a comment with the URL for the build status.
2019-10-17 06:53:55 +02:00
Ilya Shipitsin
a668761181 BUILD: travis-ci: add PCRE2, SLZ build 2019-09-23 19:08:39 +02:00
Ilya Shipitsin
4a2ffe6ae9 BUILD: CI: temporarily disable ASAN
it turned out that ASAN breaks things. until this is resolved,
let us disable ASAN
2019-09-15 12:42:57 +02:00
Ilya Shipitsin
6f9fe36676 BUILD: travis-ci: trigger non-mainstream configurations only on daily builds.
Let us save some electricity of Travis-CI.

The following configurations are built on every push:

  - linux-glibc with threads+openssl 1.1.1 on x86 + clang
  - linux-glibc with threads+libressl 2.9.2 on x86 + clang
  - linux-glibc without SSL nor threads on x86 + clang
  - osx with openssl-1.1.1 + clang

The following configurations are built daily:

  - linux-ppc64le + openssl-1.0.2
  - linux + openssl-1.1.0 + 51d/tree
  - linux + libressl-2.8.3
  - linux + libressl-2.7.5 + prometheus
  - linux + boringssl
  - cygwin
  - coverity scan
2019-08-20 08:13:00 +02:00
Ilya Shipitsin
1b77262cfb BUILD: travis-ci: enable daily Coverity scan
Coverity scan takes some time, also we are limited to 3 scans per day.
So, running it once a day seem to be good idea.
2019-08-06 06:41:03 +02:00
Ilya Shipitsin
862d6932ea BUILD: travis-ci: TFO and GETADDRINFO are now enabled by default
This default changed in the linux-glibc target with commits 364d6f5
and a26181e.
2019-06-15 23:24:47 +02:00
Willy Tarreau
c26b4675e8 BUILD: travis-ci: switch to linux-glibc instead of linux2628
The Linux target has changed and only linux-glibc is known now.
2019-06-15 17:43:18 +02:00
Ilya Shipitsin
b41adedaf7 BUILD: travis-ci: add 51Degree device detection, update openssl to 1.1.1c 2019-06-13 17:02:23 +02:00
Ilya Shipitsin
a088d3dea9 BUILD: travis-ci improvements
full list:

update LibreSSL to 2.9.2
speed up build by using "make -j3"
cache BoringSSL checkout
build prometeus exporter
add basic cygwin build
add USE_TFO=1, USE_SYSTEMD=1 to linux builds
2019-06-05 10:02:42 +02:00
Ilya Shipitsin
46166c2965 BUILD: travis: add sanitizers to travis-ci builds
full list of changes:

use TARGET=osx instead of generic for osx builds,
add USE_PCRE_JIT=1, USE_GETADDRINFO=1 to build matrix,
enable address sanitizer for clang
enable device detection: WURFL, DEVICEATLAS
2019-05-22 17:17:15 +02:00