Commit Graph

50 Commits

Author SHA1 Message Date
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
Ilya Shipitsin
b9ae7643d8 BUILD: travis-ci: make TMPDIR global variable in travis-ci
This patch will reveal osx reg-tests errors (after osx build is repaired).
2019-05-11 06:07:47 +02:00
Ilya Shipitsin
35d20afe6f BUILD: add BoringSSL to travis-ci build matrix 2019-05-10 10:39:29 +02:00
Ilya Shipitsin
d8db4e6dba BUILD: travis-ci bugfixes and improvements
Call missing scripts/build-ssl.sh (which actually builds SSL variants)
Enable OpenSSL, LibreSSL builds caching, it saves a bunch of time
LibreSSL builds are not allowed to fail anymore
Add openssl to osx builds
2019-05-08 08:10:56 +02:00
Frédéric Lécaille
6c06815751 BUILD: travis: TMPDIR replacement.
TMPDIR default value may be too long to create UNIX sockets for the stats
used during the reg tests. Indeed vtest builds its temporary working directory
${tmpdir} variable from TMPDIR variable, with /tmp as value if not already set.
This is the case on Linux contrary to OS X which sets TMPDIR with a too much long
value.

With this path we revert the part of 88c63a6 commit which tried to shorten this
TMPDIR value modifying script/run-regtests.sh. Unfortunately this was not
sufficient. Furthermore this patch force TMPDIR to /tmp value for all the OS'es.

Thank you to Tim Düsterhus and Ilya for having helped on this issue.
2019-05-06 08:10:07 +02:00
Ilya Shipitsin
17641a7fbf BUILD: temporarily mark LibreSSL builds as allowed to fail 2019-05-06 07:26:38 +02:00
Ilya Shipitsin
70e0224987 BUILD: travis-ci: get back to osx without openssl support
there's some issue with socket path, after it is resolved,
we will enable openssl for osx
2019-05-06 07:26:15 +02:00
Ilya Shipitsin
054a5b82c1 BUILD: extend travis-ci matrix
added openssl-1.0.2, 1.1.0, 1.1.1, libressl-2.7.5, 2.8.3, 2.9.1
added linux-ppc64le image
2019-05-05 10:16:13 +02:00
Willy Tarreau
a0abc8f2be BUILD: travis: remove the "allow_failures" entry
Now that OSX passes all regtests as well, remove this temporary entry.
2019-04-25 08:58:02 +02:00
Tim Duesterhus
88c63a6e55 BUILD: extend Travis CI config to support more platforms
This commit extends the Travis CI configuration to build HAProxy
with gcc on Linux, clang on Mac and cleans up the build flag
configuration to be easier extendable.

Note: At the moment HAProxy fails on Travis for configurations
on OS X
2019-04-25 08:24:29 +02:00
Ilya Shipitsin
8a9d55bb9b MEDIUM: enable travis-ci builds
currently only xenial/clang build is enabled. osx and xenial/gcc
will be enabled later.

travis-ci is cloud based continuous integration, builds will be
started automatically if they are enabled for certain repo or fork.

Signed-off-by: Ilya Shipitsin <chipitsine@gmail.com>
2019-04-18 18:39:55 +02:00