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