xref: /rk3399_rockchip-uboot/.travis.yml (revision 1fcf0ee9f1c9ce6d6d510409a67a2d8ca1b52dfd)
1c7cb334dSMeier, Roger# Copyright Roger Meier <r.meier@siemens.com>
2c7cb334dSMeier, Roger# SPDX-License-Identifier:	GPL-2.0+
3c7cb334dSMeier, Roger
4c7cb334dSMeier, Roger# build U-Boot on Travis CI - https://travis-ci.org/
5c7cb334dSMeier, Roger
62bb76f33STom Rinisudo: required
72bb76f33STom Rinidist: trusty
8e4c1b4d8SStephen Warren
9c7cb334dSMeier, Rogerlanguage: c
10c7cb334dSMeier, Roger
11050c7569SRoger Meieraddons:
12050c7569SRoger Meier  apt:
135ac5861cSTom Rini    sources:
145ac5861cSTom Rini    - sourceline: 'ppa:gns3/qemu'
15050c7569SRoger Meier    packages:
16050c7569SRoger Meier    - cppcheck
17050c7569SRoger Meier    - sloccount
18050c7569SRoger Meier    - sparse
19050c7569SRoger Meier    - bc
20050c7569SRoger Meier    - build-essential
21050c7569SRoger Meier    - libsdl1.2-dev
2207bf2122SStephen Warren    - python
2307bf2122SStephen Warren    - python-virtualenv
245ac5861cSTom Rini    - qemu-system-arm
255ac5861cSTom Rini    - qemu-system-mips
265ac5861cSTom Rini    - qemu-system-ppc
275ac5861cSTom Rini    - qemu-system-x86
28cd402e01STom Rini    - gcc-powerpc-linux-gnu
29cd402e01STom Rini    - gcc-arm-linux-gnueabihf
30cd402e01STom Rini    - iasl
31c7cb334dSMeier, Roger
32c7cb334dSMeier, Rogerinstall:
33c7cb334dSMeier, Roger # install latest device tree compiler
344084c7faSTom Rini - git clone --depth=1 git://git.kernel.org/pub/scm/utils/dtc/dtc.git /tmp/dtc
35c7cb334dSMeier, Roger - make -j4 -C /tmp/dtc
365ac5861cSTom Rini # Clone uboot-test-hooks
375ac5861cSTom Rini - git clone --depth=1 git://github.com/swarren/uboot-test-hooks.git /tmp/uboot-test-hooks
385ac5861cSTom Rini - ln -s travis-ci /tmp/uboot-test-hooks/bin/`hostname`
395ac5861cSTom Rini - ln -s travis-ci /tmp/uboot-test-hooks/py/`hostname`
40c7cb334dSMeier, Roger # prepare buildman environment
4143a68e49SStephen Warren - echo -e "[toolchain]\nroot = /usr" > ~/.buildman
42cd402e01STom Rini - echo -e "\n[toolchain-alias]\nblackfin = bfin\nsh = sh4\nopenrisc = or32" >> ~/.buildman
43c7cb334dSMeier, Roger - cat ~/.buildman
4407bf2122SStephen Warren - virtualenv /tmp/venv
4507bf2122SStephen Warren - . /tmp/venv/bin/activate
4607bf2122SStephen Warren - pip install pytest
47c7cb334dSMeier, Roger
48c7cb334dSMeier, Rogerenv:
49c7cb334dSMeier, Roger  global:
505ac5861cSTom Rini    - PATH=/tmp/dtc:/tmp/uboot-test-hooks/bin:$PATH
51c7cb334dSMeier, Roger    - BUILD_DIR=build
52c7cb334dSMeier, Roger    - HOSTCC="cc"
53c7cb334dSMeier, Roger    - HOSTCXX="c++"
54c7cb334dSMeier, Roger
55c7cb334dSMeier, Rogerbefore_script:
56050c7569SRoger Meier  # install toolchains based on TOOLCHAIN} variable
57050c7569SRoger Meier  - if [[ "${TOOLCHAIN}" == *aarch64* ]]; then ./tools/buildman/buildman --fetch-arch aarch64 ; fi
58050c7569SRoger Meier  - if [[ "${TOOLCHAIN}" == *avr32* ]]; then ./tools/buildman/buildman --fetch-arch avr32 ; fi
59cd402e01STom Rini  - if [[ "${TOOLCHAIN}" == *bfin* ]]; then ./tools/buildman/buildman --fetch-arch bfin ; fi
60050c7569SRoger Meier  - if [[ "${TOOLCHAIN}" == *m68k* ]]; then ./tools/buildman/buildman --fetch-arch m68k ; fi
61cd402e01STom Rini  - if [[ "${TOOLCHAIN}" == *microblaze* ]]; then ./tools/buildman/buildman --fetch-arch microblaze ; fi
62050c7569SRoger Meier  - if [[ "${TOOLCHAIN}" == *mips* ]]; then ./tools/buildman/buildman --fetch-arch mips ; fi
63cd402e01STom Rini  - if [[ "${TOOLCHAIN}" == *or32* ]]; then ./tools/buildman/buildman --fetch-arch or32 ; fi
64cd402e01STom Rini  - if [[ "${TOOLCHAIN}" == *sh4* ]]; then ./tools/buildman/buildman --fetch-arch sh4 ; fi
652ded4bf9SStephen Warren  - if [[ "${TOOLCHAIN}" == *x86_64* ]]; then
662ded4bf9SStephen Warren      ./tools/buildman/buildman --fetch-arch x86_64;
672ded4bf9SStephen Warren      echo -e "\n[toolchain-prefix]\nx86 = ${HOME}/.buildman-toolchains/gcc-4.9.0-nolibc/x86_64-linux/bin/x86_64-linux-" >> ~/.buildman;
682ded4bf9SStephen Warren    fi
69cd402e01STom Rini  - if [[ "${TOOLCHAIN}" == *xtensa* ]]; then ./tools/buildman/buildman --fetch-arch xtensa ; fi
70c7cb334dSMeier, Roger
71c7cb334dSMeier, Rogerscript:
728304f053SStephen Warren # Comments must be outside the command strings below, or the Travis parser
738304f053SStephen Warren # will get confused.
748304f053SStephen Warren #
754899210cSTom Rini # Exit code 129 means warnings only.
76050c7569SRoger Meier - if [[ "${BUILDMAN}" != "" ]]; then
774899210cSTom Rini     set +e;
78440d8467SStephen Warren     tools/buildman/buildman -P ${BUILDMAN};
790c5145fcSStephen Warren     ret=$?;
80bf1c0889SStephen Warren     if [[ $ret -ne 0 && $ret -ne 129 ]]; then
810c5145fcSStephen Warren       exit $ret;
820c5145fcSStephen Warren     fi;
83050c7569SRoger Meier   fi
848304f053SStephen Warren # "not a_test_which_does_not_exist" is a dummy -k parameter which will
858304f053SStephen Warren # never prevent any test from running. That way, we can always pass
868304f053SStephen Warren # "-k something" even when $TEST_PY_TEST_SPEC doesnt need a custom
878304f053SStephen Warren # value.
888304f053SStephen Warren - if [[ "${TEST_PY_BD}" != "" ]]; then
898304f053SStephen Warren     ./test/py/test.py --bd ${TEST_PY_BD} ${TEST_PY_ID}
908304f053SStephen Warren       -k "${TEST_PY_TEST_SPEC:-not a_test_which_does_not_exist}"
918304f053SStephen Warren       --build-dir `cd .. && pwd`/.bm-work/${TEST_PY_BD};
928304f053SStephen Warren   fi
93c7cb334dSMeier, Roger
94c7cb334dSMeier, Rogermatrix:
95c7cb334dSMeier, Roger  include:
96c7cb334dSMeier, Roger  # we need to build by vendor due to 50min time limit for builds
97c7cb334dSMeier, Roger  # each env setting here is a dedicated build
98c7cb334dSMeier, Roger    - env:
99050c7569SRoger Meier        - BUILDMAN="arm1136"
100c7cb334dSMeier, Roger    - env:
101050c7569SRoger Meier        - BUILDMAN="arm1176"
102c7cb334dSMeier, Roger    - env:
103050c7569SRoger Meier        - BUILDMAN="arm720t"
104c7cb334dSMeier, Roger    - env:
105050c7569SRoger Meier        - BUILDMAN="arm920t"
106c7cb334dSMeier, Roger    - env:
107050c7569SRoger Meier        - BUILDMAN="atmel -x avr32"
108c7cb334dSMeier, Roger    - env:
109050c7569SRoger Meier        - BUILDMAN="avr32"
110050c7569SRoger Meier          TOOLCHAIN="avr32"
111c7cb334dSMeier, Roger    - env:
112050c7569SRoger Meier        - BUILDMAN="davinci"
113c7cb334dSMeier, Roger    - env:
114050c7569SRoger Meier        - BUILDMAN="denx"
115d9aa0197SHeiko Schocher    - env:
116050c7569SRoger Meier        - BUILDMAN="freescale -x powerpc,m68k,aarch64"
117d9aa0197SHeiko Schocher    - env:
118050c7569SRoger Meier        - BUILDMAN="sandbox x86"
119cd402e01STom Rini          TOOLCHAIN="x86_64"
120d9aa0197SHeiko Schocher    - env:
121050c7569SRoger Meier        - BUILDMAN="kirkwood"
122d9aa0197SHeiko Schocher    - env:
123050c7569SRoger Meier        - BUILDMAN="m68k"
124050c7569SRoger Meier          TOOLCHAIN="m68k"
1258cb2101bSHeiko Schocher    - env:
12676761e7fSTom Rini        - BUILDMAN="microblaze"
12776761e7fSTom Rini          TOOLCHAIN="microblaze"
12876761e7fSTom Rini    - env:
129050c7569SRoger Meier        - BUILDMAN="mips"
130050c7569SRoger Meier          TOOLCHAIN="mips"
1318cb2101bSHeiko Schocher    - env:
132050c7569SRoger Meier        - BUILDMAN="mpc512x"
133d9aa0197SHeiko Schocher    - env:
134050c7569SRoger Meier        - BUILDMAN="mpc5xx"
1358cb2101bSHeiko Schocher    - env:
136050c7569SRoger Meier        - BUILDMAN="mpc5xxx"
1378cb2101bSHeiko Schocher    - env:
138050c7569SRoger Meier        - BUILDMAN="mpc8260"
1398cb2101bSHeiko Schocher    - env:
140050c7569SRoger Meier        - BUILDMAN="mpc83xx"
1418cb2101bSHeiko Schocher    - env:
142050c7569SRoger Meier        - BUILDMAN="mpc85xx -x freescale"
143d9aa0197SHeiko Schocher    - env:
144050c7569SRoger Meier        - BUILDMAN="mpc85xx -x t208xrdb -x t4qds -x t102* -x p1_p2_rdb_pc -x p1010rdb -x corenet_ds -x b4860qds -x sbc8548 -x bsc91*"
1458cb2101bSHeiko Schocher    - env:
146050c7569SRoger Meier        - BUILDMAN="t208xrdb t4qds t102*"
147c7cb334dSMeier, Roger    - env:
148050c7569SRoger Meier        - BUILDMAN="p1_p2_rdb_pc p1010rdb"
1498cb2101bSHeiko Schocher    - env:
150050c7569SRoger Meier        - BUILDMAN="corenet_ds b4860qds sbc8548 bsc91*"
151c7cb334dSMeier, Roger    - env:
152050c7569SRoger Meier        - BUILDMAN="mpc86xx"
153c7cb334dSMeier, Roger    - env:
154050c7569SRoger Meier        - BUILDMAN="mpc8xx"
155c7cb334dSMeier, Roger    - env:
156050c7569SRoger Meier        - BUILDMAN="siemens"
157c7cb334dSMeier, Roger    - env:
158*1fcf0ee9SStephen Warren        - BUILDMAN="tegra -x aarch64"
159*1fcf0ee9SStephen Warren    - env:
160050c7569SRoger Meier        - BUILDMAN="ti"
161c7cb334dSMeier, Roger    - env:
162050c7569SRoger Meier        - BUILDMAN="aarch64"
163050c7569SRoger Meier          TOOLCHAIN="aarch64"
16476761e7fSTom Rini    - env:
16576761e7fSTom Rini        - BUILDMAN="sh4"
16676761e7fSTom Rini          TOOLCHAIN="sh4"
16776761e7fSTom Rini    - env:
16876761e7fSTom Rini        - BUILDMAN="xtensa"
16976761e7fSTom Rini          TOOLCHAIN="xtensa"
170c7cb334dSMeier, Roger
171c7cb334dSMeier, Roger    # QA jobs for code analytics
172c7cb334dSMeier, Roger    # static code analysis with cppcheck (we can add --enable=all later)
173d7882210SStephen Warren    - env:
174d7882210SStephen Warren        - JOB="cppcheck"
175d7882210SStephen Warren      script:
176c85b52e4STom Rini        - cppcheck --force --quiet --inline-suppr .
177c7cb334dSMeier, Roger    # search for TODO within source tree
178d7882210SStephen Warren    - env:
179d7882210SStephen Warren        - JOB="grep TODO"
180d7882210SStephen Warren      script:
181c85b52e4STom Rini        - grep -r TODO .
182c7cb334dSMeier, Roger    # search for FIXME within source tree
183d7882210SStephen Warren    - env:
184d7882210SStephen Warren        - JOB="grep FIXME HACK"
185d7882210SStephen Warren      script:
186c85b52e4STom Rini        - grep -r FIXME .
187c7cb334dSMeier, Roger    # search for HACK within source tree and ignore HACKKIT board
188c7cb334dSMeier, Roger      script:
189c7cb334dSMeier, Roger        - grep -r HACK . | grep -v HACKKIT
190c7cb334dSMeier, Roger    # some statistics about the code base
191d7882210SStephen Warren    - env:
192d7882210SStephen Warren        - JOB="sloccount"
193d7882210SStephen Warren      script:
194c85b52e4STom Rini        - sloccount .
1958304f053SStephen Warren
19607bf2122SStephen Warren    # test/py
197d7882210SStephen Warren    - env:
1988304f053SStephen Warren        - TEST_PY_BD="sandbox"
1998304f053SStephen Warren          BUILDMAN="^sandbox$"
2008304f053SStephen Warren          TOOLCHAIN="x86_64"
2015ac5861cSTom Rini    - env:
2028304f053SStephen Warren        - TEST_PY_BD="vexpress_ca15_tc2"
2038304f053SStephen Warren          TEST_PY_ID="--id qemu"
2048304f053SStephen Warren          BUILDMAN="^vexpress_ca15_tc2$"
2055ac5861cSTom Rini    - env:
2068304f053SStephen Warren        - TEST_PY_BD="vexpress_ca9x4"
2078304f053SStephen Warren          TEST_PY_ID="--id qemu"
2088304f053SStephen Warren          BUILDMAN="^vexpress_ca9x4$"
2095ac5861cSTom Rini    - env:
2108304f053SStephen Warren        - TEST_PY_BD="integratorcp_cm926ejs"
2118304f053SStephen Warren          TEST_PY_ID="--id qemu"
2128304f053SStephen Warren          BUILDMAN="^integratorcp_cm926ejs$"
2135ac5861cSTom Rini    - env:
2148304f053SStephen Warren        - TEST_PY_BD="qemu_mips"
2158304f053SStephen Warren          TEST_PY_TEST_SPEC="not sleep"
2168304f053SStephen Warren          BUILDMAN="^qemu_mips$"
2178304f053SStephen Warren          TOOLCHAIN="mips"
2188304f053SStephen Warren    - env:
2198304f053SStephen Warren        - TEST_PY_BD="qemu_mipsel"
2208304f053SStephen Warren          TEST_PY_TEST_SPEC="not sleep"
2218304f053SStephen Warren          BUILDMAN="^qemu_mipsel$"
2228304f053SStephen Warren          TOOLCHAIN="mips"
2238304f053SStephen Warren    - env:
2248304f053SStephen Warren        - TEST_PY_BD="qemu_mips64"
2258304f053SStephen Warren          TEST_PY_TEST_SPEC="not sleep"
2268304f053SStephen Warren          BUILDMAN="^qemu_mips64$"
2278304f053SStephen Warren          TOOLCHAIN="mips"
2288304f053SStephen Warren    - env:
2298304f053SStephen Warren        - TEST_PY_BD="qemu_mips64el"
2308304f053SStephen Warren          TEST_PY_TEST_SPEC="not sleep"
2318304f053SStephen Warren          BUILDMAN="^qemu_mips64el$"
2328304f053SStephen Warren          TOOLCHAIN="mips"
2338304f053SStephen Warren    - env:
2348304f053SStephen Warren        - TEST_PY_BD="qemu-ppce500"
2358304f053SStephen Warren          TEST_PY_TEST_SPEC="not sleep"
2368304f053SStephen Warren          BUILDMAN="^qemu-ppce500$"
2378304f053SStephen Warren    - env:
2388304f053SStephen Warren        - TEST_PY_BD="qemu-x86"
2398304f053SStephen Warren          TEST_PY_TEST_SPEC="not sleep"
2408304f053SStephen Warren          BUILDMAN="^qemu-x86$"
2418304f053SStephen Warren          TOOLCHAIN="x86_64"
2428304f053SStephen Warren          BUILD_ROM="yes"
243c7cb334dSMeier, Roger
244c7cb334dSMeier, Roger# TODO make it perfect ;-r
245