add ABI checks
[dpdk.git] / .travis.yml
1 language: c
2 cache:
3   ccache: true
4   directories:
5     - reference
6 compiler:
7   - gcc
8   - clang
9
10 dist: xenial
11
12 os:
13   - linux
14
15 addons:
16   apt:
17     update: true
18     packages: &required_packages
19       - [libnuma-dev, linux-headers-$(uname -r), python3-setuptools, python3-wheel, python3-pip, ninja-build]
20
21 aarch64_packages: &aarch64_packages
22   - *required_packages
23   - [gcc-aarch64-linux-gnu, libc6-dev-arm64-cross, pkg-config-aarch64-linux-gnu]
24
25 extra_packages: &extra_packages
26   - *required_packages
27   - [libbsd-dev, libpcap-dev, libcrypto++-dev, libjansson4, abigail-tools]
28
29 build_32b_packages: &build_32b_packages
30   - *required_packages
31   - [gcc-multilib]
32
33 doc_packages: &doc_packages
34   - [doxygen, graphviz, python3-sphinx]
35
36 before_install: ./.ci/${TRAVIS_OS_NAME}-setup.sh
37
38 env:
39   - DEF_LIB="static"
40   - DEF_LIB="shared"
41   - DEF_LIB="static" OPTS="-Denable_kmods=false"
42   - DEF_LIB="shared" OPTS="-Denable_kmods=false"
43   - DEF_LIB="shared" RUN_TESTS=1
44
45 matrix:
46   include:
47   - env: DEF_LIB="static" BUILD_32BIT=1
48     compiler: gcc
49     addons:
50       apt:
51         packages:
52           - *build_32b_packages
53   - env: DEF_LIB="static" OPTS="-Denable_kmods=false" AARCH64=1
54     compiler: gcc
55     addons:
56       apt:
57         packages:
58           - *aarch64_packages
59   - env: DEF_LIB="shared" OPTS="-Denable_kmods=false" AARCH64=1
60     compiler: gcc
61     addons:
62       apt:
63         packages:
64           - *aarch64_packages
65   - env: DEF_LIB="static" EXTRA_PACKAGES=1
66     compiler: gcc
67     addons:
68       apt:
69         packages:
70           - *extra_packages
71   - env: DEF_LIB="shared" EXTRA_PACKAGES=1 RUN_TESTS=1 BUILD_DOCS=1
72     compiler: gcc
73     addons:
74       apt:
75         packages:
76           - *extra_packages
77           - *doc_packages
78   - env: DEF_LIB="shared" EXTRA_PACKAGES=1 ABI_CHECKS=1
79     compiler: gcc
80     addons:
81       apt:
82         packages:
83           - *extra_packages
84   - env: DEF_LIB="static" OPTS="-Denable_kmods=false" EXTRA_PACKAGES=1
85     compiler: gcc
86     addons:
87       apt:
88         packages:
89           - *extra_packages
90   - env: DEF_LIB="shared" OPTS="-Denable_kmods=false" EXTRA_PACKAGES=1
91     compiler: gcc
92     addons:
93       apt:
94         packages:
95           - *extra_packages
96   - env: DEF_LIB="static" EXTRA_PACKAGES=1
97     compiler: clang
98     addons:
99       apt:
100         packages:
101           - *extra_packages
102   - env: DEF_LIB="shared" EXTRA_PACKAGES=1
103     compiler: clang
104     addons:
105       apt:
106         packages:
107           - *extra_packages
108   - env: DEF_LIB="shared" EXTRA_PACKAGES=1 RUN_TESTS=1 BUILD_DOCS=1
109     compiler: clang
110     addons:
111       apt:
112         packages:
113           - *extra_packages
114           - *doc_packages
115   - env: DEF_LIB="static" OPTS="-Denable_kmods=false" EXTRA_PACKAGES=1
116     compiler: clang
117     addons:
118       apt:
119         packages:
120           - *extra_packages
121   - env: DEF_LIB="shared" OPTS="-Denable_kmods=false" EXTRA_PACKAGES=1
122     compiler: clang
123     addons:
124       apt:
125         packages:
126           - *extra_packages
127   - env: DEF_LIB="static"
128     arch: arm64
129     compiler: gcc
130     dist: bionic
131     addons:
132       apt:
133         packages:
134           - *required_packages
135   - env: DEF_LIB="shared"
136     arch: arm64
137     compiler: gcc
138     dist: bionic
139     addons:
140       apt:
141         packages:
142           - *required_packages
143   - env: DEF_LIB="static"
144     arch: arm64
145     dist: bionic
146     compiler: clang
147     addons:
148       apt:
149         packages:
150           - *required_packages
151   - env: DEF_LIB="shared"
152     arch: arm64
153     dist: bionic
154     compiler: clang
155     addons:
156       apt:
157         packages:
158           - *required_packages
159   - env: DEF_LIB="shared" EXTRA_PACKAGES=1 ABI_CHECKS=1
160     arch: arm64
161     dist: bionic
162     compiler: gcc
163     addons:
164       apt:
165         packages:
166           - *extra_packages
167   - env: DEF_LIB="shared" OPTS="-Denable_kmods=false" BUILD_DOCS=1
168     arch: arm64
169     compiler: gcc
170     dist: bionic
171     addons:
172       apt:
173         packages:
174           - *required_packages
175           - *doc_packages
176
177 script: ./.ci/${TRAVIS_OS_NAME}-build.sh