version: 21.11-rc0
[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, python3-pyelftools, ninja-build]
18       - [libbsd-dev, libpcap-dev, libibverbs-dev, libcrypto++-dev, libfdt-dev, libjansson-dev]
19       - [libarchive-dev]
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 _aarch64_clang_packages: &aarch64_clang_packages
26   - *required_packages
27   - [libgcc-7-dev-arm64-cross, libatomic1-arm64-cross, libc6-dev-arm64-cross, pkg-config-aarch64-linux-gnu]
28
29 _libabigail_build_packages: &libabigail_build_packages
30   - [autoconf, automake, libtool, pkg-config, libxml2-dev, libdw-dev]
31
32 _build_32b_packages: &build_32b_packages
33   - *required_packages
34   - [gcc-multilib]
35
36 _doc_packages: &doc_packages
37   - [doxygen, graphviz, python3-sphinx]
38
39 before_install: ./.ci/${TRAVIS_OS_NAME}-setup.sh
40 script: ./.ci/${TRAVIS_OS_NAME}-build.sh
41
42 env:
43   global:
44     - LIBABIGAIL_VERSION=libabigail-1.8
45     - REF_GIT_TAG=none
46
47 jobs:
48   include:
49   # x86_64 gcc jobs
50   - env: DEF_LIB="static"
51     arch: amd64
52     compiler: gcc
53   - env: DEF_LIB="shared" RUN_TESTS=true
54     arch: amd64
55     compiler: gcc
56   - env: DEF_LIB="shared" BUILD_DOCS=true
57     arch: amd64
58     compiler: gcc
59     addons:
60       apt:
61         packages:
62           - *required_packages
63           - *doc_packages
64   # x86_64 clang jobs
65   - env: DEF_LIB="static"
66     arch: amd64
67     compiler: clang
68   - env: DEF_LIB="shared" RUN_TESTS=true
69     arch: amd64
70     compiler: clang
71   - env: DEF_LIB="shared" BUILD_DOCS=true
72     arch: amd64
73     compiler: clang
74     addons:
75       apt:
76         packages:
77           - *required_packages
78           - *doc_packages
79   # x86_64 cross-compiling 32-bits jobs
80   - env: DEF_LIB="static" BUILD_32BIT=true
81     arch: amd64
82     compiler: gcc
83     addons:
84       apt:
85         packages:
86           - *build_32b_packages
87   # x86_64 cross-compiling aarch64 jobs
88   - env: DEF_LIB="static" AARCH64=true
89     arch: amd64
90     compiler: gcc
91     addons:
92       apt:
93         packages:
94           - *aarch64_packages
95   - env: DEF_LIB="shared" AARCH64=true
96     arch: amd64
97     compiler: gcc
98     addons:
99       apt:
100         packages:
101           - *aarch64_packages
102   - env: DEF_LIB="static" AARCH64=true
103     arch: amd64
104     compiler: clang
105     addons:
106       apt:
107         packages:
108           - *aarch64_clang_packages
109   - env: DEF_LIB="shared" AARCH64=true
110     arch: amd64
111     compiler: clang
112     addons:
113       apt:
114         packages:
115           - *aarch64_clang_packages
116   # aarch64 gcc jobs
117   - env: DEF_LIB="static"
118     dist: focal
119     arch: arm64-graviton2
120     virt: vm
121     group: edge
122     compiler: gcc
123   - env: DEF_LIB="shared" RUN_TESTS=true
124     dist: focal
125     arch: arm64-graviton2
126     virt: vm
127     group: edge
128     compiler: gcc
129   - env: DEF_LIB="shared" BUILD_DOCS=true
130     dist: focal
131     arch: arm64-graviton2
132     virt: vm
133     group: edge
134     compiler: gcc
135     addons:
136       apt:
137         packages:
138           - *required_packages
139           - *doc_packages
140   # aarch64 clang jobs
141   - env: DEF_LIB="static"
142     dist: focal
143     arch: arm64-graviton2
144     virt: vm
145     group: edge
146     compiler: clang
147   - env: DEF_LIB="shared" RUN_TESTS=true
148     dist: focal
149     arch: arm64-graviton2
150     virt: vm
151     group: edge
152     compiler: clang