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