Commit Graph

64 Commits

Author SHA1 Message Date
Ilya Shipitsin 5dcec7e539 CI: travis-ci: drop coverity scan builds
we ran out of travis-ci minutes on December 2020. I would keep
exotic architectures like arm64, s390, ppc64le on travis and move
Coverity scan to Github Actions.

so, let us drop coverity scan from travis-ci.
2020-12-22 19:39:23 +01:00
Ilya Shipitsin d394fd35e7 CI: travis-ci: remove builds migrated to GH actions 2020-11-21 05:40:27 +01:00
Ilya Shipitsin ddc202a024 CI: travis-ci: arm64 are not allowed to fail anymore 2020-11-17 12:17:41 +01:00
Ilya Shipitsin 6d54113406 CI: travis-ci: remove amd64, osx builds
they are migrated to Github Actions
2020-11-17 12:17:22 +01:00
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