Blame view
.travis.yml
12.5 KB
c7cb334d1
|
1 2 3 4 |
# Copyright Roger Meier <r.meier@siemens.com> # SPDX-License-Identifier: GPL-2.0+ # build U-Boot on Travis CI - https://travis-ci.org/ |
2bb76f33e
|
5 6 |
sudo: required dist: trusty |
e4c1b4d8c
|
7 |
|
c7cb334d1
|
8 |
language: c |
050c7569b
|
9 10 11 12 13 14 15 16 17 |
addons: apt: packages: - cppcheck - sloccount - sparse - bc - build-essential - libsdl1.2-dev |
07bf2122d
|
18 19 |
- python - python-virtualenv |
f2b0c007f
|
20 21 |
- swig - libpython-dev |
cd402e015
|
22 |
- gcc-powerpc-linux-gnu |
cd402e015
|
23 |
- iasl |
0e4e38ae3
|
24 25 26 |
- grub-efi-ia32-bin - rpm2cpio - wget |
36dd5f1b8
|
27 |
- device-tree-compiler |
c7cb334d1
|
28 29 |
install: |
5ac5861c4
|
30 31 32 33 |
# Clone uboot-test-hooks - git clone --depth=1 git://github.com/swarren/uboot-test-hooks.git /tmp/uboot-test-hooks - ln -s travis-ci /tmp/uboot-test-hooks/bin/`hostname` - ln -s travis-ci /tmp/uboot-test-hooks/py/`hostname` |
c7cb334d1
|
34 |
# prepare buildman environment |
43a68e49e
|
35 36 |
- echo -e "[toolchain] root = /usr" > ~/.buildman |
8399538cb
|
37 38 |
- echo -e "aarch64 = /tmp/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu" >> ~/.buildman - echo -e "arm = /tmp/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf" >> ~/.buildman |
80e4bbfcd
|
39 |
- echo -e "arc = /tmp/arc_gnu_2016.09_prebuilt_uclibc_le_archs_linux_install" >> ~/.buildman |
ea3310e8a
|
40 41 42 43 |
- echo -e " [toolchain-alias] sh = sh4 openrisc = or32" >> ~/.buildman |
c7cb334d1
|
44 |
- cat ~/.buildman |
07bf2122d
|
45 46 47 |
- virtualenv /tmp/venv - . /tmp/venv/bin/activate - pip install pytest |
0e4e38ae3
|
48 49 50 |
- grub-mkimage -o ~/grub_x86.efi -O i386-efi normal echo lsefimmap lsefi lsefisystab efinet tftp minicmd - mkdir ~/grub2-arm - ( cd ~/grub2-arm; wget -O - http://download.opensuse.org/ports/armv7hl/distribution/leap/42.2/repo/oss/suse/armv7hl/grub2-arm-efi-2.02~beta2-87.1.armv7hl.rpm | rpm2cpio | cpio -di ) |
1b012a3e7
|
51 52 |
- mkdir ~/grub2-arm64 - ( cd ~/grub2-arm64; wget -O - http://download.opensuse.org/ports/aarch64/distribution/leap/42.2/repo/oss/suse/aarch64/grub2-arm64-efi-2.02~beta2-87.1.aarch64.rpm | rpm2cpio | cpio -di ) |
c7cb334d1
|
53 54 55 |
env: global: |
36dd5f1b8
|
56 |
- PATH=/tmp/qemu-install/bin:/tmp/uboot-test-hooks/bin:/usr/bin:/bin |
e019660a0
|
57 |
- PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci |
c7cb334d1
|
58 |
- BUILD_DIR=build |
c7cb334d1
|
59 60 |
- HOSTCC="cc" - HOSTCXX="c++" |
c7cb334d1
|
61 62 |
before_script: |
050c7569b
|
63 |
# install toolchains based on TOOLCHAIN} variable |
050c7569b
|
64 |
- if [[ "${TOOLCHAIN}" == *m68k* ]]; then ./tools/buildman/buildman --fetch-arch m68k ; fi |
cd402e015
|
65 |
- if [[ "${TOOLCHAIN}" == *microblaze* ]]; then ./tools/buildman/buildman --fetch-arch microblaze ; fi |
050c7569b
|
66 |
- if [[ "${TOOLCHAIN}" == *mips* ]]; then ./tools/buildman/buildman --fetch-arch mips ; fi |
cd402e015
|
67 68 |
- if [[ "${TOOLCHAIN}" == *or32* ]]; then ./tools/buildman/buildman --fetch-arch or32 ; fi - if [[ "${TOOLCHAIN}" == *sh4* ]]; then ./tools/buildman/buildman --fetch-arch sh4 ; fi |
2ded4bf9b
|
69 70 71 72 73 74 |
- if [[ "${TOOLCHAIN}" == *x86_64* ]]; then ./tools/buildman/buildman --fetch-arch x86_64; echo -e " [toolchain-prefix] x86 = ${HOME}/.buildman-toolchains/gcc-4.9.0-nolibc/x86_64-linux/bin/x86_64-linux-" >> ~/.buildman; fi |
80e4bbfcd
|
75 76 77 78 |
- if [[ "${TOOLCHAIN}" == arc ]]; then wget https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/download/arc-2016.09-release/arc_gnu_2016.09_prebuilt_uclibc_le_archs_linux_install.tar.gz && tar -C /tmp -xf arc_gnu_2016.09_prebuilt_uclibc_le_archs_linux_install.tar.gz; fi |
cd402e015
|
79 |
- if [[ "${TOOLCHAIN}" == *xtensa* ]]; then ./tools/buildman/buildman --fetch-arch xtensa ; fi |
8399538cb
|
80 81 82 83 84 85 86 |
# If TOOLCHAIN is unset, we're on some flavour of ARM. - if [[ "${TOOLCHAIN}" == "" ]]; then wget http://releases.linaro.org/components/toolchain/binaries/6.3-2017.02/aarch64-linux-gnu/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu.tar.xz && wget http://releases.linaro.org/components/toolchain/binaries/6.3-2017.02/arm-linux-gnueabihf/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf.tar.xz && tar -C /tmp -xf gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu.tar.xz && tar -C /tmp -xf gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf.tar.xz; fi |
b6896fcbe
|
87 88 89 90 91 92 93 |
- if [[ "${TOOLCHAIN}" == "riscv" ]]; then wget https://github.com/PkmX/riscv-prebuilt-toolchains/releases/download/20180111/riscv32-unknown-elf-toolchain.tar.gz && tar -C /tmp -xf riscv32-unknown-elf-toolchain.tar.gz && echo -e " [toolchain-prefix] riscv = /tmp/riscv32-unknown-elf/bin/riscv32-unknown-elf-" >> ~/.buildman; fi |
3c643fb01
|
94 95 96 97 98 99 100 101 102 |
- if [[ "${QEMU_TARGET}" != "" ]]; then git clone git://git.qemu.org/qemu.git /tmp/qemu; pushd /tmp/qemu; git submodule update --init dtc && git checkout v2.8.0-rc3 && ./configure --prefix=/tmp/qemu-install --target-list=${QEMU_TARGET} && make -j4 all install; popd; fi |
c7cb334d1
|
103 104 |
script: |
8304f0538
|
105 106 107 |
# Comments must be outside the command strings below, or the Travis parser # will get confused. # |
4899210c7
|
108 |
# Exit code 129 means warnings only. |
050c7569b
|
109 |
- if [[ "${BUILDMAN}" != "" ]]; then |
4899210c7
|
110 |
set +e; |
440d8467a
|
111 |
tools/buildman/buildman -P ${BUILDMAN}; |
0c5145fc2
|
112 |
ret=$?; |
bf1c08893
|
113 |
if [[ $ret -ne 0 && $ret -ne 129 ]]; then |
baade496d
|
114 |
tools/buildman/buildman -sdeP ${BUILDMAN}; |
0c5145fc2
|
115 116 |
exit $ret; fi; |
050c7569b
|
117 |
fi |
8304f0538
|
118 119 120 121 |
# "not a_test_which_does_not_exist" is a dummy -k parameter which will # never prevent any test from running. That way, we can always pass # "-k something" even when $TEST_PY_TEST_SPEC doesnt need a custom # value. |
faec290f7
|
122 |
- export UBOOT_TRAVIS_BUILD_DIR=`cd .. && pwd`/.bm-work/${TEST_PY_BD}; |
0e4e38ae3
|
123 124 |
cp ~/grub_x86.efi $UBOOT_TRAVIS_BUILD_DIR/; cp ~/grub2-arm/usr/lib/grub2/arm-efi/grub.efi $UBOOT_TRAVIS_BUILD_DIR/grub_arm.efi; |
1b012a3e7
|
125 |
cp ~/grub2-arm64/usr/lib/grub2/arm64-efi/grub.efi $UBOOT_TRAVIS_BUILD_DIR/grub_arm64.efi; |
faec290f7
|
126 |
if [[ "${TEST_PY_BD}" != "" ]]; then |
8304f0538
|
127 128 |
./test/py/test.py --bd ${TEST_PY_BD} ${TEST_PY_ID} -k "${TEST_PY_TEST_SPEC:-not a_test_which_does_not_exist}" |
faec290f7
|
129 |
--build-dir "$UBOOT_TRAVIS_BUILD_DIR"; |
f2d077888
|
130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
ret=$?; if [[ $ret -ne 0 ]]; then exit $ret; fi; fi; if [[ -n "${TEST_PY_TOOLS}" ]]; then PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt" PATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}" ./tools/binman/binman -t && ./tools/patman/patman --test && ./tools/buildman/buildman -t && PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt" PATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}" ./tools/dtoc/dtoc -t; |
8304f0538
|
144 |
fi |
c7cb334d1
|
145 146 147 148 149 150 |
matrix: include: # we need to build by vendor due to 50min time limit for builds # each env setting here is a dedicated build - env: |
80e4bbfcd
|
151 152 153 |
- BUILDMAN="arc" TOOLCHAIN="arc" - env: |
baade496d
|
154 |
- BUILDMAN="arm11" |
050c7569b
|
155 |
- env: |
baade496d
|
156 |
- BUILDMAN="arm7" |
c7cb334d1
|
157 |
- env: |
050c7569b
|
158 |
- BUILDMAN="arm920t" |
c7cb334d1
|
159 |
- env: |
baade496d
|
160 161 162 163 164 |
- JOB="arm926ejs" BUILDMAN="arm926ejs -x mx,siemens,atmel" - env: - BUILDMAN="arm946es" - env: |
daab59ac0
|
165 |
- BUILDMAN="atmel" |
c7cb334d1
|
166 |
- env: |
626662e4c
|
167 |
- BUILDMAN="aries" |
c7cb334d1
|
168 |
- env: |
575e1607d
|
169 170 171 172 173 174 |
- JOB="Boundary Devices" BUILDMAN="boundary" - env: - JOB="engicam" BUILDMAN="engicam" - env: |
bb417f1c9
|
175 176 177 178 |
- JOB="Freescale ARM32" BUILDMAN="freescale -x powerpc,m68k,aarch64" - env: - JOB="Freescale AArch64" |
30719e2b9
|
179 |
BUILDMAN="freescale&aarch64" |
c7cb334d1
|
180 |
- env: |
30719e2b9
|
181 |
- JOB="i.MX6 (non-Freescale)" |
575e1607d
|
182 |
BUILDMAN="mx6 -x freescale,toradex,boundary,engicam" |
30719e2b9
|
183 184 |
- env: - JOB="i.MX (non-Freescale, non-i.MX6)" |
bc3eed965
|
185 |
BUILDMAN="mx -x freescale,mx6,toradex" |
baade496d
|
186 |
- env: |
afbdfd829
|
187 188 |
- BUILDMAN="k2" - env: |
dbd5df89d
|
189 190 |
- BUILDMAN="samsung" - env: |
afbdfd829
|
191 192 |
- BUILDMAN="socfpga" - env: |
baade496d
|
193 194 195 196 197 198 199 200 |
- BUILDMAN="sun4i" - env: - BUILDMAN="sun5i" - env: - BUILDMAN="sun6i" - env: - BUILDMAN="sun7i" - env: |
8399538cb
|
201 |
- BUILDMAN="sun8i" |
baade496d
|
202 203 204 205 206 207 |
- env: - BUILDMAN="sun9i" - env: - BUILDMAN="sun50i" - env: - JOB="Catch-all ARM" |
afbdfd829
|
208 |
BUILDMAN="arm -x arm11,arm7,arm9,aarch64,atmel,aries,freescale,kirkwood,mvebu,siemens,tegra,uniphier,mx,samsung,sunxi,am33xx,omap3,omap4,omap5,pxa,rockchip,toradex,socfpga,k2,xilinx" |
baade496d
|
209 |
- env: |
050c7569b
|
210 |
- BUILDMAN="sandbox x86" |
cd402e015
|
211 |
TOOLCHAIN="x86_64" |
c7cb334d1
|
212 |
- env: |
bc3eed965
|
213 214 |
- BUILDMAN="toradex" - env: |
050c7569b
|
215 |
- BUILDMAN="kirkwood" |
c7cb334d1
|
216 |
- env: |
0bf1bc440
|
217 218 |
- BUILDMAN="mvebu" - env: |
bc3eed965
|
219 220 |
- JOB="PXA" - BUILDMAN="pxa -x toradex" |
baade496d
|
221 |
- env: |
050c7569b
|
222 223 |
- BUILDMAN="m68k" TOOLCHAIN="m68k" |
c7cb334d1
|
224 |
- env: |
0d3aaa35b
|
225 |
- BUILDMAN="microblaze" |
76761e7fb
|
226 227 |
TOOLCHAIN="microblaze" - env: |
050c7569b
|
228 229 |
- BUILDMAN="mips" TOOLCHAIN="mips" |
d9aa01978
|
230 |
- env: |
050c7569b
|
231 |
- BUILDMAN="mpc83xx" |
c7cb334d1
|
232 |
- env: |
050c7569b
|
233 |
- BUILDMAN="mpc85xx -x freescale" |
d9aa01978
|
234 |
- env: |
050c7569b
|
235 |
- BUILDMAN="mpc85xx -x t208xrdb -x t4qds -x t102* -x p1_p2_rdb_pc -x p1010rdb -x corenet_ds -x b4860qds -x sbc8548 -x bsc91*" |
d9aa01978
|
236 |
- env: |
9464dd56d
|
237 238 239 240 241 |
- BUILDMAN="t208xrdb" - env: - BUILDMAN="t4qds" - env: - BUILDMAN="t102*" |
d9aa01978
|
242 |
- env: |
afdf09ac2
|
243 244 245 |
- BUILDMAN="p1_p2_rdb_pc" - env: - BUILDMAN="p1010rdb" |
8cb2101b9
|
246 |
- env: |
050c7569b
|
247 |
- BUILDMAN="corenet_ds b4860qds sbc8548 bsc91*" |
c7cb334d1
|
248 |
- env: |
050c7569b
|
249 |
- BUILDMAN="mpc86xx" |
c7cb334d1
|
250 |
- env: |
53193a4f0
|
251 252 |
- BUILDMAN="mpc8xx" - env: |
050c7569b
|
253 |
- BUILDMAN="siemens" |
050c7569b
|
254 |
- env: |
bc3eed965
|
255 256 |
- JOB="tegra" BUILDMAN="tegra -x toradex" |
1fcf0ee9f
|
257 |
- env: |
baade496d
|
258 259 260 261 262 263 264 265 |
- JOB="am33xx" BUILDMAN="am33xx -x siemens" - env: - BUILDMAN="omap3" - env: - BUILDMAN="omap4" - env: - BUILDMAN="omap5" |
050c7569b
|
266 |
- env: |
5eba31c38
|
267 268 |
- BUILDMAN="uniphier" - env: |
bc3eed965
|
269 270 |
- JOB="aarch64" BUILDMAN="aarch64 -x tegra,freescale,mvebu,uniphier,sunxi,samsung,rockchip" |
76761e7fb
|
271 |
- env: |
dbd5df89d
|
272 273 |
- BUILDMAN="rockchip" - env: |
76761e7fb
|
274 275 276 |
- BUILDMAN="sh4" TOOLCHAIN="sh4" - env: |
0d3aaa35b
|
277 278 279 |
- JOB="Xilinx (ARM)" BUILDMAN="xilinx -x microblaze" - env: |
76761e7fb
|
280 281 |
- BUILDMAN="xtensa" TOOLCHAIN="xtensa" |
b6896fcbe
|
282 283 284 |
- env: - BUILDMAN="riscv" TOOLCHAIN="riscv" |
c7cb334d1
|
285 286 287 |
# QA jobs for code analytics # static code analysis with cppcheck (we can add --enable=all later) |
d7882210d
|
288 289 290 |
- env: - JOB="cppcheck" script: |
c85b52e43
|
291 |
- cppcheck --force --quiet --inline-suppr . |
c7cb334d1
|
292 |
# search for TODO within source tree |
d7882210d
|
293 294 295 |
- env: - JOB="grep TODO" script: |
c85b52e43
|
296 |
- grep -r TODO . |
c7cb334d1
|
297 |
# search for FIXME within source tree |
d7882210d
|
298 299 300 |
- env: - JOB="grep FIXME HACK" script: |
c85b52e43
|
301 |
- grep -r FIXME . |
c7cb334d1
|
302 |
# search for HACK within source tree and ignore HACKKIT board |
c7cb334d1
|
303 304 305 |
script: - grep -r HACK . | grep -v HACKKIT # some statistics about the code base |
d7882210d
|
306 307 308 |
- env: - JOB="sloccount" script: |
c85b52e43
|
309 |
- sloccount . |
8304f0538
|
310 |
|
07bf2122d
|
311 |
# test/py |
d7882210d
|
312 |
- env: |
8304f0538
|
313 314 315 |
- TEST_PY_BD="sandbox" BUILDMAN="^sandbox$" TOOLCHAIN="x86_64" |
5ac5861c4
|
316 |
- env: |
40c8d26a4
|
317 318 319 320 |
- TEST_PY_BD="sandbox_spl" TEST_PY_TEST_SPEC="test_ofplatdata" BUILDMAN="^sandbox$" TOOLCHAIN="x86_64" |
f2d077888
|
321 |
TEST_PY_TOOLS="yes" |
40c8d26a4
|
322 323 324 325 326 |
- env: - TEST_PY_BD="sandbox_flattree" BUILDMAN="^sandbox_flattree$" TOOLCHAIN="x86_64" - env: |
8304f0538
|
327 328 |
- TEST_PY_BD="vexpress_ca15_tc2" TEST_PY_ID="--id qemu" |
3c643fb01
|
329 |
QEMU_TARGET="arm-softmmu" |
8304f0538
|
330 |
BUILDMAN="^vexpress_ca15_tc2$" |
5ac5861c4
|
331 |
- env: |
8304f0538
|
332 333 |
- TEST_PY_BD="vexpress_ca9x4" TEST_PY_ID="--id qemu" |
3c643fb01
|
334 |
QEMU_TARGET="arm-softmmu" |
8304f0538
|
335 |
BUILDMAN="^vexpress_ca9x4$" |
5ac5861c4
|
336 |
- env: |
8304f0538
|
337 |
- TEST_PY_BD="integratorcp_cm926ejs" |
78992845a
|
338 |
TEST_PY_TEST_SPEC="not sleep" |
8304f0538
|
339 |
TEST_PY_ID="--id qemu" |
3c643fb01
|
340 |
QEMU_TARGET="arm-softmmu" |
8304f0538
|
341 |
BUILDMAN="^integratorcp_cm926ejs$" |
5ac5861c4
|
342 |
- env: |
7b09dffc3
|
343 344 345 346 347 |
- TEST_PY_BD="qemu_arm" TEST_PY_TEST_SPEC="not sleep" QEMU_TARGET="arm-softmmu" BUILDMAN="^qemu_arm$" - env: |
a5bee5072
|
348 349 350 351 352 |
- TEST_PY_BD="qemu_arm64" TEST_PY_TEST_SPEC="not sleep" QEMU_TARGET="aarch64-softmmu" BUILDMAN="^qemu_arm64$" - env: |
8304f0538
|
353 354 |
- TEST_PY_BD="qemu_mips" TEST_PY_TEST_SPEC="not sleep" |
3c643fb01
|
355 |
QEMU_TARGET="mips-softmmu" |
8304f0538
|
356 357 358 359 360 |
BUILDMAN="^qemu_mips$" TOOLCHAIN="mips" - env: - TEST_PY_BD="qemu_mipsel" TEST_PY_TEST_SPEC="not sleep" |
3c643fb01
|
361 |
QEMU_TARGET="mipsel-softmmu" |
8304f0538
|
362 363 364 365 366 |
BUILDMAN="^qemu_mipsel$" TOOLCHAIN="mips" - env: - TEST_PY_BD="qemu_mips64" TEST_PY_TEST_SPEC="not sleep" |
3c643fb01
|
367 |
QEMU_TARGET="mips64-softmmu" |
8304f0538
|
368 369 370 371 372 |
BUILDMAN="^qemu_mips64$" TOOLCHAIN="mips" - env: - TEST_PY_BD="qemu_mips64el" TEST_PY_TEST_SPEC="not sleep" |
3c643fb01
|
373 |
QEMU_TARGET="mips64el-softmmu" |
8304f0538
|
374 375 376 377 378 |
BUILDMAN="^qemu_mips64el$" TOOLCHAIN="mips" - env: - TEST_PY_BD="qemu-ppce500" TEST_PY_TEST_SPEC="not sleep" |
3c643fb01
|
379 |
QEMU_TARGET="ppc-softmmu" |
8304f0538
|
380 381 382 383 |
BUILDMAN="^qemu-ppce500$" - env: - TEST_PY_BD="qemu-x86" TEST_PY_TEST_SPEC="not sleep" |
3c643fb01
|
384 |
QEMU_TARGET="i386-softmmu" |
8304f0538
|
385 386 387 |
BUILDMAN="^qemu-x86$" TOOLCHAIN="x86_64" BUILD_ROM="yes" |
41122d374
|
388 389 390 391 392 393 |
- env: - TEST_PY_BD="zynq_zc702" TEST_PY_TEST_SPEC="not sleep" QEMU_TARGET="arm-softmmu" TEST_PY_ID="--id qemu" BUILDMAN="^zynq_zc702$" |
c7cb334d1
|
394 |
|
c7cb334d1
|
395 |
# TODO make it perfect ;-r |