Blame view

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