numam-dpdk/.travis.yml
David Marchand 0e157d7a9a ci: reorganise Travis jobs
Let's prune the jobs list to limit the amount of time spent by the robot
in Travis.

Since meson enables automatically the relevant components, there is not
much gain in testing with extra_packages vs required_packages.

For a given arch/compiler/env combination, compilation is first tested
in all jobs that run tests or build the docs or run the ABI checks.
In the same context, for jobs that accumulates running tests, building
the docs etc..., those steps are independent and can be split to save
some cpu on Travis.

With this, we go down from 21 to 15 jobs.

Note: this patch requires a flush of the existing caches in Travis.

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Aaron Conole <aconole@redhat.com>
2020-02-20 17:29:17 +01:00

127 lines
2.8 KiB
YAML

# default values for all jobs
language: c
cache:
ccache: true
directories:
- libabigail
- reference
dist: bionic
os: linux
addons:
apt:
update: true
packages: &required_packages
- [libnuma-dev, python3-setuptools, python3-wheel, python3-pip, ninja-build]
- [libbsd-dev, libpcap-dev, libibverbs-dev, libcrypto++-dev, libfdt-dev, libjansson4]
_aarch64_packages: &aarch64_packages
- *required_packages
- [gcc-aarch64-linux-gnu, libc6-dev-arm64-cross, pkg-config-aarch64-linux-gnu]
_libabigail_build_packages: &libabigail_build_packages
- [autoconf, automake, libtool, pkg-config, libxml2-dev, libdw-dev]
_build_32b_packages: &build_32b_packages
- *required_packages
- [gcc-multilib]
_doc_packages: &doc_packages
- [doxygen, graphviz, python3-sphinx]
before_install: ./.ci/${TRAVIS_OS_NAME}-setup.sh
script: ./.ci/${TRAVIS_OS_NAME}-build.sh
jobs:
include:
# x86_64 gcc jobs
- env: DEF_LIB="static"
arch: amd64
compiler: gcc
- env: DEF_LIB="shared" RUN_TESTS=1
arch: amd64
compiler: gcc
- env: DEF_LIB="shared" BUILD_DOCS=1
arch: amd64
compiler: gcc
addons:
apt:
packages:
- *required_packages
- *doc_packages
- env: DEF_LIB="shared" ABI_CHECKS=1
arch: amd64
compiler: gcc
addons:
apt:
packages:
- *required_packages
- *libabigail_build_packages
# x86_64 clang jobs
- env: DEF_LIB="static"
arch: amd64
compiler: clang
- env: DEF_LIB="shared" RUN_TESTS=1
arch: amd64
compiler: clang
- env: DEF_LIB="shared" BUILD_DOCS=1
arch: amd64
compiler: clang
addons:
apt:
packages:
- *required_packages
- *doc_packages
# x86_64 cross-compiling 32-bits jobs
- env: DEF_LIB="static" BUILD_32BIT=1
arch: amd64
compiler: gcc
addons:
apt:
packages:
- *build_32b_packages
# x86_64 cross-compiling aarch64 jobs
- env: DEF_LIB="static" AARCH64=1
arch: amd64
compiler: gcc
addons:
apt:
packages:
- *aarch64_packages
- env: DEF_LIB="shared" AARCH64=1
arch: amd64
compiler: gcc
addons:
apt:
packages:
- *aarch64_packages
# aarch64 gcc jobs
- env: DEF_LIB="static"
arch: arm64
compiler: gcc
- env: DEF_LIB="shared" BUILD_DOCS=1
arch: arm64
compiler: gcc
addons:
apt:
packages:
- *required_packages
- *doc_packages
- env: DEF_LIB="shared" ABI_CHECKS=1
arch: arm64
compiler: gcc
addons:
apt:
packages:
- *required_packages
- *libabigail_build_packages
# aarch64 clang jobs
- env: DEF_LIB="static"
arch: arm64
compiler: clang
- env: DEF_LIB="shared"
arch: arm64
compiler: clang