If I do
jobs:
exclude:
- if: 1 = 1
os: linux
in a .travis.yml file, Travis does Linux builds.
If, however, I do
jobs:
exclude:
- os: linux
What I’m trying to do is to suppress most builds if the branch is coverity_scan, but nothing I tried worked. What must I do here?
And I did
- gem install travis-conditions
in before_install
.
Could you link to build(s) showcasing the problem? Just an excerpt is not enough for diagnostics, it can very well be something else entirely.
This tcpdump build was the one where I first tried this. In this commit I tried suppressing Coverity builds by adding entries like
- arch: ppc64le
if: branch == coverity_scan
to the
jobs:
exclude:
- arch: ppc64le
os: osx
- arch: s390x
os: osx
- arch: arm64
os: osx
- compiler: gcc
os: osx
section of .travis.yml to suppress ppc64, s390x, and arm64 coverity_scan builds, because 1) they shouldn’t be necessary (AMD64 builds should suffice) and 2) they got stuck and reported errors.
As that build indicates, it did not suppress the build.
I tried several other things; in this build I tried just doing
jobs:
exclude:
- if: 1 = 1
as I inferred it should simply suppress all builds; again, it did not.
Please enable build config validation, or run your config through https://config.travis-ci.com/explore.
I forked your project and I have it enabled, and immediately got an error from it:
root
: both matrix
and jobs
given, matrix
overwrites jobs
So your jobs:
clause with the excludes is being ignored.
Indeed, when I commented out matrix:
, jobs were excluded as expected.
matrix:
is now an alias to jobs:
, so just merge them under the latter name.
OK, we now have
jobs:
fast_finish: true
exclude:
- arch: ppc64le
os: osx
- arch: s390x
os: osx
- arch: arm64
os: osx
- compiler: gcc
os: osx
- if: branch = coverity_scan
arch: ppc64le
- if: branch = coverity_scan
arch: s390x
- if: branch = coverity_scan
arch: arm64
cache: ccache
env:
global:
# encrypted COVERITY_SCAN_TOKEN from
# https://scan.coverity.com/projects/<project_id>/submit_build?tab=travis_ci
- secure: "DwUeukcRGl1vXNZDDt2237zCA58ZzmzWpCkPcb/Hpeh8OvRw1eBZJiu4L8iD2qtY4A/dPDvOeBiml5MF6bVri9Dui1yPkvkvFqIXzbK5CWS6Ye+NgSBNMwqnAjhTMv/x8I4Bvy9IhDGwj/2JXVUvjBddRMLRyr/ag+MDRB1IVAI="
# Coverity run condition (avoid matrix multiple runs), need customized
# build script. Need an update if new matrix cases.
- coverity_scan_run_condition='"$TRAVIS_CPU_ARCH" = amd64 -a "$TRAVIS_OS_NAME" = linux -a "$CC" = gcc -a "$REMOTE" = enable -a "$CMAKE" = no -a "$CRYPTO" = yes -a "$BUILD_LIBPCAP" = yes'
# Coverity script test mode (if true no uploading, avoid reaching the quota)
# usual processing: false.
- coverity_scan_script_test_mode=false
- MAKEFLAGS='-j 2' # Travis CI VMs come with 2 cores
matrix:
# NOTE: REMOTE= is for the libpcap build, which is done with autotools
# even if we're building tcpdump with CMake.
# It's irrelevant if we're building tcpdump with the system libpcap.
- BUILD_LIBPCAP=no CMAKE=no CRYPTO=no
- BUILD_LIBPCAP=no CMAKE=no CRYPTO=yes
- BUILD_LIBPCAP=no CMAKE=yes CRYPTO=no
- BUILD_LIBPCAP=no CMAKE=yes CRYPTO=yes
- BUILD_LIBPCAP=yes CMAKE=no REMOTE=disable CRYPTO=no
- BUILD_LIBPCAP=yes CMAKE=no REMOTE=disable CRYPTO=yes
- BUILD_LIBPCAP=yes CMAKE=no REMOTE=enable CRYPTO=no
- BUILD_LIBPCAP=yes CMAKE=no REMOTE=enable CRYPTO=yes
- BUILD_LIBPCAP=yes CMAKE=yes REMOTE=disable CRYPTO=no
- BUILD_LIBPCAP=yes CMAKE=yes REMOTE=disable CRYPTO=yes
- BUILD_LIBPCAP=yes CMAKE=yes REMOTE=enable CRYPTO=no
- BUILD_LIBPCAP=yes CMAKE=yes REMOTE=enable CRYPTO=yes
in tcpdump’s .travis.yml
file, but it’s still trying to run builds on, for example, ppc64le, as per this job.
1 Like
Running https://travis-ci.org/github/the-tcpdump-group/tcpdump/builds/689209239/config through https://config.travis-ci.com/explore, I’m not getting any ppc64le
jobs.
But they are in the actual build – which is supposed to be using the same expansion logic.
This does seem to be a bug.