ci: enable v21 ABI checks
[dpdk.git] / .travis.yml
1 # default values for all jobs
2 language: c
3 cache:
4   ccache: true
5   directories:
6     - libabigail
7     - reference
8
9 dist: bionic
10
11 os: linux
12
13 addons:
14   apt:
15     update: true
16     packages: &required_packages
17       - [libnuma-dev, python3-setuptools, python3-wheel, python3-pip, ninja-build]
18       - [libbsd-dev, libpcap-dev, libibverbs-dev, libcrypto++-dev, libfdt-dev, libjansson-dev]
19
20 _aarch64_packages: &aarch64_packages
21   - *required_packages
22   - [gcc-aarch64-linux-gnu, libc6-dev-arm64-cross, pkg-config-aarch64-linux-gnu]
23
24 _libabigail_build_packages: &libabigail_build_packages
25   - [autoconf, automake, libtool, pkg-config, libxml2-dev, libdw-dev]
26
27 _build_32b_packages: &build_32b_packages
28   - *required_packages
29   - [gcc-multilib]
30
31 _doc_packages: &doc_packages
32   - [doxygen, graphviz, python3-sphinx]
33
34 before_install: ./.ci/${TRAVIS_OS_NAME}-setup.sh
35 script: ./.ci/${TRAVIS_OS_NAME}-build.sh
36
37 env:
38   global:
39     - LIBABIGAIL_VERSION=libabigail-1.8
40     - REF_GIT_TAG=v20.11
41
42 jobs:
43   include:
44   # x86_64 gcc jobs
45   - env: DEF_LIB="static"
46     arch: amd64
47     compiler: gcc
48   - env: DEF_LIB="shared" RUN_TESTS=true
49     arch: amd64
50     compiler: gcc
51   - env: DEF_LIB="shared" BUILD_DOCS=true
52     arch: amd64
53     compiler: gcc
54     addons:
55       apt:
56         packages:
57           - *required_packages
58           - *doc_packages
59   - env: DEF_LIB="shared" ABI_CHECKS=true
60     arch: amd64
61     compiler: gcc
62     addons:
63       apt:
64         packages:
65           - *required_packages
66           - *libabigail_build_packages
67   # x86_64 clang jobs
68   - env: DEF_LIB="static"
69     arch: amd64
70     compiler: clang
71   - env: DEF_LIB="shared" RUN_TESTS=true
72     arch: amd64
73     compiler: clang
74   - env: DEF_LIB="shared" BUILD_DOCS=true
75     arch: amd64
76     compiler: clang
77     addons:
78       apt:
79         packages:
80           - *required_packages
81           - *doc_packages
82   # x86_64 cross-compiling 32-bits jobs
83   - env: DEF_LIB="static" BUILD_32BIT=true
84     arch: amd64
85     compiler: gcc
86     addons:
87       apt:
88         packages:
89           - *build_32b_packages
90   # x86_64 cross-compiling aarch64 jobs
91   - env: DEF_LIB="static" AARCH64=true
92     arch: amd64
93     compiler: gcc
94     addons:
95       apt:
96         packages:
97           - *aarch64_packages
98   - env: DEF_LIB="shared" AARCH64=true
99     arch: amd64
100     compiler: gcc
101     addons:
102       apt:
103         packages:
104           - *aarch64_packages
105   # aarch64 gcc jobs
106   - env: DEF_LIB="static"
107     arch: arm64
108     compiler: gcc
109   - env: DEF_LIB="shared" RUN_TESTS=true
110     arch: arm64
111     compiler: gcc
112   - env: DEF_LIB="shared" RUN_TESTS=true
113     dist: focal
114     arch: arm64-graviton2
115     virt: vm
116     group: edge
117     compiler: gcc
118   - env: DEF_LIB="shared" BUILD_DOCS=true
119     arch: arm64
120     compiler: gcc
121     addons:
122       apt:
123         packages:
124           - *required_packages
125           - *doc_packages
126   - env: DEF_LIB="shared" ABI_CHECKS=true
127     arch: arm64
128     compiler: gcc
129     addons:
130       apt:
131         packages:
132           - *required_packages
133           - *libabigail_build_packages
134   # aarch64 clang jobs
135   - env: DEF_LIB="static"
136     arch: arm64
137     compiler: clang
138   - env: DEF_LIB="shared" RUN_TESTS=true
139     arch: arm64
140     compiler: clang
141   - env: DEF_LIB="shared" RUN_TESTS=true
142     dist: focal
143     arch: arm64-graviton2
144     virt: vm
145     group: edge
146     compiler: clang