xref: /openbmc/u-boot/.travis.yml (revision 22b7509e)
1# Copyright Roger Meier <r.meier@siemens.com>
2# SPDX-License-Identifier:	GPL-2.0+
3
4# build U-Boot on Travis CI - https://travis-ci.org/
5
6language: c
7
8cache:
9 - apt
10
11install:
12 # install U-Boot build dependencies
13 - sudo apt-get install -qq cppcheck sloccount sparse bc libsdl-dev build-essential
14 # install latest device tree compiler
15 - git clone --depth=1 https://git.kernel.org/pub/scm/utils/dtc/dtc.git /tmp/dtc
16 - make -j4 -C /tmp/dtc
17 # prepare buildman environment
18 - export BUILDMAN_ROOT="root:"
19 - export BUILDMAN_MIPS="mips:"
20 - export BUILDMAN_PPC="ppc:"
21 - export BUILDMAN_ARM="arm:"
22 - export BUILDMAN_SANDBOX="sandbox:"
23 - echo -e "[toolchain]\n${BUILDMAN_ROOT} /\n" > ~/.buildman
24 - echo -e "${BUILDMAN_MIPS} /opt/eldk-5.4/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/\n" >> ~/.buildman
25 - echo -e "${BUILDMAN_PPC} /opt/eldk-5.4/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux/\n" >> ~/.buildman
26 - echo -e "${BUILDMAN_ARM} /opt/eldk-5.4/armv5te/sysroots/i686-eldk-linux/usr/bin/armv5te-linux-gnueabi/\n" >> ~/.buildman
27 - echo -e "${BUILDMAN_SANDBOX} /usr/bin/gcc\n" >> ~/.buildman
28 - export BUILDMAN_ALIAS="x86:"
29 - export BUILDMAN_ALIAS_ARM="arm:"
30 - echo -e "\n\n[toolchain-alias]\n${BUILDMAN_ALIAS} i386\n" >> ~/.buildman
31 - echo -e "${BUILDMAN_ALIAS_ARM} armv5te\n" >> ~/.buildman
32 - cat ~/.buildman
33
34env:
35  global:
36    - PATH=/tmp/dtc:$PATH
37    - BUILD_DIR=build
38    - CROSS_COMPILE=""
39    - HOSTCC="cc"
40    - HOSTCXX="c++"
41    - TEST_CONFIG_CMD=""
42
43before_script:
44  # install toolchains based on INSTALL_TOOLCHAIN} variable
45  - if [[ "${INSTALL_TOOLCHAIN}" == *ppc* ]]; then wget ftp://ftp.denx.de/pub/eldk/5.4/targets/powerpc/eldk-eglibc-i686-powerpc-toolchain-gmae-5.4.sh ; fi
46  - if [[ "${INSTALL_TOOLCHAIN}" == *ppc* ]]; then sh eldk-eglibc-i686-powerpc-toolchain-gmae-5.4.sh -y ; fi
47  - if [[ "${INSTALL_TOOLCHAIN}" == *mips* ]]; then wget ftp://ftp.denx.de/pub/eldk/5.4/targets/mips/eldk-eglibc-i686-mips-toolchain-gmae-5.4.sh ; fi
48  - if [[ "${INSTALL_TOOLCHAIN}" == *mips* ]]; then sh eldk-eglibc-i686-mips-toolchain-gmae-5.4.sh -y ; fi
49  - if [[ "${INSTALL_TOOLCHAIN}" == *arm* ]]; then wget ftp://ftp.denx.de/pub/eldk/5.4/targets/armv5te/eldk-eglibc-i686-arm-toolchain-gmae-5.4.sh ; fi
50  - if [[ "${INSTALL_TOOLCHAIN}" == *arm* ]]; then sh eldk-eglibc-i686-arm-toolchain-gmae-5.4.sh -y ; fi
51  - if [[ "${INSTALL_TOOLCHAIN}" == *arm* ]]; then ls -al /opt/eldk-5.4/armv5te/sysroots/i686-eldk-linux/usr/bin/armv5te-linux-gnueabi ; fi
52  - if [[ "${INSTALL_TOOLCHAIN}" == *i386* ]]; then ./tools/buildman/buildman sandbox --fetch-arch i386 ; fi
53
54script:
55 # the execution sequence for each test
56 - echo ${TEST_CONFIG_CMD}
57 - ${TEST_CONFIG_CMD}
58 - echo ${TEST_CMD}
59 - ${TEST_CMD}
60
61matrix:
62  include:
63  # we need to build by vendor due to 50min time limit for builds
64  # each env setting here is a dedicated build
65    - env:
66        - TEST_CMD="./MAKEALL -a arm -v atmel"
67          INSTALL_TOOLCHAIN="arm"
68          CROSS_COMPILE="/opt/eldk-5.4/armv5te/sysroots/i686-eldk-linux/usr/bin/armv5te-linux-gnueabi/arm-linux-gnueabi-"
69    - env:
70        - TEST_CMD="./MAKEALL -a arm -v denx"
71          INSTALL_TOOLCHAIN="arm"
72          CROSS_COMPILE="/opt/eldk-5.4/armv5te/sysroots/i686-eldk-linux/usr/bin/armv5te-linux-gnueabi/arm-linux-gnueabi-"
73    - env:
74        - TEST_CMD="./MAKEALL -a arm -v freescale"
75          INSTALL_TOOLCHAIN="arm"
76          CROSS_COMPILE="/opt/eldk-5.4/armv5te/sysroots/i686-eldk-linux/usr/bin/armv5te-linux-gnueabi/arm-linux-gnueabi-"
77    - env:
78        - TEST_CMD="./MAKEALL -a arm -v siemens"
79          INSTALL_TOOLCHAIN="arm"
80          CROSS_COMPILE="/opt/eldk-5.4/armv5te/sysroots/i686-eldk-linux/usr/bin/armv5te-linux-gnueabi/arm-linux-gnueabi-"
81    - env:
82        - TEST_CMD="./MAKEALL -a arm -v ti"
83          INSTALL_TOOLCHAIN="arm"
84          CROSS_COMPILE="/opt/eldk-5.4/armv5te/sysroots/i686-eldk-linux/usr/bin/armv5te-linux-gnueabi/arm-linux-gnueabi-"
85    - env:
86        - TEST_CONFIG_CMD="make sandbox_defconfig"
87          TEST_CMD="make -j4"
88          HOSTCC  = "gcc"
89          HOSTCXX  = "g++"
90    - env:
91        - TEST_CONFIG_CMD="make sandbox_defconfig"
92          TEST_CMD="make -j4"
93          HOSTCC  = "clang"
94          HOSTCXX  = "clang++"
95    - env:
96        - TEST_CMD="./MAKEALL -a mips"
97          INSTALL_TOOLCHAIN="mips"
98          CROSS_COMPILE="/opt/eldk-5.4/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/mips-linux-"
99    - env:
100        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
101          TEST_CMD="tools/buildman/buildman --list-error-boards atmel -x avr32"
102          INSTALL_TOOLCHAIN="arm"
103    - env:
104        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
105          TEST_CMD="tools/buildman/buildman --list-error-boards denx"
106          INSTALL_TOOLCHAIN="arm"
107    - env:
108        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
109          TEST_CMD="tools/buildman/buildman --list-error-boards freescale -x powerpc,m68k,aarch64"
110          INSTALL_TOOLCHAIN="arm"
111    - env:
112        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
113          TEST_CMD="tools/buildman/buildman --list-error-boards freescale -x arm,m68k,aarch64"
114          INSTALL_TOOLCHAIN="ppc"
115    - env:
116        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
117          TEST_CMD="tools/buildman/buildman --list-error-boards siemens"
118          INSTALL_TOOLCHAIN="arm"
119    - env:
120        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
121          TEST_CMD="tools/buildman/buildman --list-error-boards ti"
122          INSTALL_TOOLCHAIN="arm"
123    - env:
124        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
125          TEST_CMD="tools/buildman/buildman --list-error-boards arm1136"
126          INSTALL_TOOLCHAIN="arm"
127    - env:
128        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
129          TEST_CMD="tools/buildman/buildman --list-error-boards arm1176"
130          INSTALL_TOOLCHAIN="arm"
131    - env:
132        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
133          TEST_CMD="tools/buildman/buildman --list-error-boards arm720t"
134          INSTALL_TOOLCHAIN="arm"
135    - env:
136        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
137          TEST_CMD="tools/buildman/buildman --list-error-boards arm920t"
138          INSTALL_TOOLCHAIN="arm"
139    - env:
140        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
141          TEST_CMD="tools/buildman/buildman --list-error-boards davinci"
142          INSTALL_TOOLCHAIN="arm"
143    - env:
144        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
145          TEST_CMD="tools/buildman/buildman --list-error-boards kirkwood"
146          INSTALL_TOOLCHAIN="arm"
147    - env:
148        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
149          TEST_CMD="tools/buildman/buildman mips"
150          INSTALL_TOOLCHAIN="mips"
151    - env:
152        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
153          TEST_CMD="tools/buildman/buildman mpc5xx"
154          INSTALL_TOOLCHAIN="ppc"
155    - env:
156        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
157          TEST_CMD="tools/buildman/buildman mpc8xx"
158          INSTALL_TOOLCHAIN="ppc"
159    - env:
160        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
161          TEST_CMD="tools/buildman/buildman mpc5xxx"
162          INSTALL_TOOLCHAIN="ppc"
163    - env:
164        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
165          TEST_CMD="tools/buildman/buildman mpc512x"
166          INSTALL_TOOLCHAIN="ppc"
167    - env:
168        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
169          TEST_CMD="tools/buildman/buildman mpc8260"
170          INSTALL_TOOLCHAIN="ppc"
171    - env:
172        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
173          TEST_CMD="tools/buildman/buildman mpc83xx"
174          INSTALL_TOOLCHAIN="ppc"
175    - env:
176        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
177          TEST_CMD="tools/buildman/buildman mpc85xx"
178          INSTALL_TOOLCHAIN="ppc"
179    - env:
180        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
181          TEST_CMD="tools/buildman/buildman mpc86xx"
182          INSTALL_TOOLCHAIN="ppc"
183    - env:
184        - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
185          TEST_CMD="tools/buildman/buildman --list-error-boards sandbox x86"
186          INSTALL_TOOLCHAIN="i386"
187
188    # QA jobs for code analytics
189    # static code analysis with cppcheck (we can add --enable=all later)
190    - env:
191        - TEST_CMD="cppcheck --force --quiet --inline-suppr ."
192    # search for TODO within source tree
193    - env:
194        - TEST_CMD="grep -r TODO ."
195    # search for FIXME within source tree
196    - env:
197        - TEST_CMD="grep -r FIXME ."
198    # search for HACK within source tree and ignore HACKKIT board
199    - env:
200        - TEST_CMD="grep -r HACK . | grep -v HACKKIT"
201      script:
202        - grep -r HACK . | grep -v HACKKIT
203    # some statistics about the code base
204    - env:
205        - TEST_CMD="sloccount ."
206
207notifications:
208  email: false
209
210# TODO make it perfect ;-r
211