Blame view

.travis.yml 7.86 KB
c7cb334d1   Meier, Roger   .travis.yml: buil...
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   Tom Rini   travis-ci: Switch...
5
6
  sudo: required
  dist: trusty
e4c1b4d8c   Stephen Warren   .travis.yml: expl...
7

c7cb334d1   Meier, Roger   .travis.yml: buil...
8
  language: c
050c7569b   Roger Meier   .travis.yml: rewo...
9
10
  addons:
    apt:
5ac5861c4   Tom Rini   travis-ci: Add te...
11
12
      sources:
      - sourceline: 'ppa:gns3/qemu'
050c7569b   Roger Meier   .travis.yml: rewo...
13
14
15
16
17
18
19
      packages:
      - cppcheck
      - sloccount
      - sparse
      - bc
      - build-essential
      - libsdl1.2-dev
07bf2122d   Stephen Warren   Enable test/py fo...
20
21
      - python
      - python-virtualenv
5ac5861c4   Tom Rini   travis-ci: Add te...
22
23
24
25
      - qemu-system-arm
      - qemu-system-mips
      - qemu-system-ppc
      - qemu-system-x86
cd402e015   Tom Rini   travis-ci: Update...
26
27
      - gcc-powerpc-linux-gnu
      - gcc-arm-linux-gnueabihf
5eba31c38   Tom Rini   travis.yml: Add i...
28
      - gcc-aarch64-linux-gnu
cd402e015   Tom Rini   travis-ci: Update...
29
      - iasl
c7cb334d1   Meier, Roger   .travis.yml: buil...
30
31
  
  install:
c7cb334d1   Meier, Roger   .travis.yml: buil...
32
   # install latest device tree compiler
4084c7fa6   Tom Rini   travis-ci: Use a ...
33
   - git clone --depth=1 git://git.kernel.org/pub/scm/utils/dtc/dtc.git /tmp/dtc
c7cb334d1   Meier, Roger   .travis.yml: buil...
34
   - make -j4 -C /tmp/dtc
5ac5861c4   Tom Rini   travis-ci: Add te...
35
36
37
38
   # 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   Meier, Roger   .travis.yml: buil...
39
   # prepare buildman environment
43a68e49e   Stephen Warren   travis-ci: Use = ...
40
41
   - echo -e "[toolchain]
  root = /usr" > ~/.buildman
cd402e015   Tom Rini   travis-ci: Update...
42
43
44
45
46
   - echo -e "
  [toolchain-alias]
  blackfin = bfin
  sh = sh4
  openrisc = or32" >> ~/.buildman
c7cb334d1   Meier, Roger   .travis.yml: buil...
47
   - cat ~/.buildman
07bf2122d   Stephen Warren   Enable test/py fo...
48
49
50
   - virtualenv /tmp/venv
   - . /tmp/venv/bin/activate
   - pip install pytest
c7cb334d1   Meier, Roger   .travis.yml: buil...
51
52
53
  
  env:
    global:
5ac5861c4   Tom Rini   travis-ci: Add te...
54
      - PATH=/tmp/dtc:/tmp/uboot-test-hooks/bin:$PATH
c7cb334d1   Meier, Roger   .travis.yml: buil...
55
      - BUILD_DIR=build
c7cb334d1   Meier, Roger   .travis.yml: buil...
56
57
      - HOSTCC="cc"
      - HOSTCXX="c++"
c7cb334d1   Meier, Roger   .travis.yml: buil...
58
59
  
  before_script:
050c7569b   Roger Meier   .travis.yml: rewo...
60
    # install toolchains based on TOOLCHAIN} variable
050c7569b   Roger Meier   .travis.yml: rewo...
61
    - if [[ "${TOOLCHAIN}" == *avr32* ]]; then ./tools/buildman/buildman --fetch-arch avr32 ; fi
cd402e015   Tom Rini   travis-ci: Update...
62
    - if [[ "${TOOLCHAIN}" == *bfin* ]]; then ./tools/buildman/buildman --fetch-arch bfin ; fi
050c7569b   Roger Meier   .travis.yml: rewo...
63
    - if [[ "${TOOLCHAIN}" == *m68k* ]]; then ./tools/buildman/buildman --fetch-arch m68k ; fi
cd402e015   Tom Rini   travis-ci: Update...
64
    - if [[ "${TOOLCHAIN}" == *microblaze* ]]; then ./tools/buildman/buildman --fetch-arch microblaze ; fi
050c7569b   Roger Meier   .travis.yml: rewo...
65
    - if [[ "${TOOLCHAIN}" == *mips* ]]; then ./tools/buildman/buildman --fetch-arch mips ; fi
cd402e015   Tom Rini   travis-ci: Update...
66
67
    - if [[ "${TOOLCHAIN}" == *or32* ]]; then ./tools/buildman/buildman --fetch-arch or32 ; fi
    - if [[ "${TOOLCHAIN}" == *sh4* ]]; then ./tools/buildman/buildman --fetch-arch sh4 ; fi
2ded4bf9b   Stephen Warren   travis-ci: centra...
68
69
70
71
72
73
    - 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
cd402e015   Tom Rini   travis-ci: Update...
74
    - if [[ "${TOOLCHAIN}" == *xtensa* ]]; then ./tools/buildman/buildman --fetch-arch xtensa ; fi
c7cb334d1   Meier, Roger   .travis.yml: buil...
75
76
  
  script:
8304f0538   Stephen Warren   travis-ci: compil...
77
78
79
   # Comments must be outside the command strings below, or the Travis parser
   # will get confused.
   #
4899210c7   Tom Rini   travis-ci: Do not...
80
   # Exit code 129 means warnings only.
050c7569b   Roger Meier   .travis.yml: rewo...
81
   - if [[ "${BUILDMAN}" != "" ]]; then
4899210c7   Tom Rini   travis-ci: Do not...
82
       set +e;
440d8467a   Stephen Warren   travis-ci: use bu...
83
       tools/buildman/buildman -P ${BUILDMAN};
0c5145fc2   Stephen Warren   travis-ci: use co...
84
       ret=$?;
bf1c08893   Stephen Warren   travis-ci: don't ...
85
       if [[ $ret -ne 0 && $ret -ne 129 ]]; then
baade496d   Tom Rini   travis-ci: Try ha...
86
         tools/buildman/buildman -sdeP ${BUILDMAN};
0c5145fc2   Stephen Warren   travis-ci: use co...
87
88
         exit $ret;
       fi;
050c7569b   Roger Meier   .travis.yml: rewo...
89
     fi
8304f0538   Stephen Warren   travis-ci: compil...
90
91
92
93
94
95
96
97
98
   # "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.
   - if [[ "${TEST_PY_BD}" != "" ]]; then
       ./test/py/test.py --bd ${TEST_PY_BD} ${TEST_PY_ID}
         -k "${TEST_PY_TEST_SPEC:-not a_test_which_does_not_exist}"
         --build-dir `cd .. && pwd`/.bm-work/${TEST_PY_BD};
     fi
c7cb334d1   Meier, Roger   .travis.yml: buil...
99
100
101
102
103
104
  
  matrix:
    include:
    # we need to build by vendor due to 50min time limit for builds
    # each env setting here is a dedicated build
      - env:
baade496d   Tom Rini   travis-ci: Try ha...
105
          - BUILDMAN="arm11"
050c7569b   Roger Meier   .travis.yml: rewo...
106
      - env:
baade496d   Tom Rini   travis-ci: Try ha...
107
          - BUILDMAN="arm7"
c7cb334d1   Meier, Roger   .travis.yml: buil...
108
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
109
          - BUILDMAN="arm920t"
c7cb334d1   Meier, Roger   .travis.yml: buil...
110
      - env:
baade496d   Tom Rini   travis-ci: Try ha...
111
112
113
114
115
          - JOB="arm926ejs"
            BUILDMAN="arm926ejs -x mx,siemens,atmel"
      - env:
          - BUILDMAN="arm946es"
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
116
          - BUILDMAN="atmel -x avr32"
c7cb334d1   Meier, Roger   .travis.yml: buil...
117
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
118
119
          - BUILDMAN="avr32"
            TOOLCHAIN="avr32"
c7cb334d1   Meier, Roger   .travis.yml: buil...
120
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
121
          - BUILDMAN="denx"
c7cb334d1   Meier, Roger   .travis.yml: buil...
122
      - env:
5eba31c38   Tom Rini   travis.yml: Add i...
123
124
          - JOB="Freescale ARM"
            BUILDMAN="freescale -x powerpc,m68k"
c7cb334d1   Meier, Roger   .travis.yml: buil...
125
      - env:
baade496d   Tom Rini   travis-ci: Try ha...
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
          - JOB="i.MX (non-Freescale)"
            BUILDMAN="mx -x freescale"
      - env:
          - BUILDMAN="sun4i"
      - env:
          - BUILDMAN="sun5i"
      - env:
          - BUILDMAN="sun6i"
      - env:
          - BUILDMAN="sun7i"
      - env:
          - BUILDMAN="sun8i"
      - env:
          - BUILDMAN="sun9i"
      - env:
          - BUILDMAN="sun50i"
      - env:
          - JOB="Catch-all ARM"
            BUILDMAN="arm -x arm11,arm7,arm9,aarch64,atmel,denx,freescale,kirkwood,siemens,tegra,uniphier,mx,sunxi,am33xx,omap3,omap4,omap5,pxa"
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
146
          - BUILDMAN="sandbox x86"
cd402e015   Tom Rini   travis-ci: Update...
147
            TOOLCHAIN="x86_64"
c7cb334d1   Meier, Roger   .travis.yml: buil...
148
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
149
          - BUILDMAN="kirkwood"
c7cb334d1   Meier, Roger   .travis.yml: buil...
150
      - env:
baade496d   Tom Rini   travis-ci: Try ha...
151
152
          - BUILDMAN="pxa"
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
153
154
          - BUILDMAN="m68k"
            TOOLCHAIN="m68k"
c7cb334d1   Meier, Roger   .travis.yml: buil...
155
      - env:
76761e7fb   Tom Rini   travis-ci: Add mo...
156
157
158
          - BUILDMAN="microblaze"
            TOOLCHAIN="microblaze"
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
159
160
          - BUILDMAN="mips"
            TOOLCHAIN="mips"
d9aa01978   Heiko Schocher   travis.yml: some ...
161
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
162
          - BUILDMAN="mpc512x"
d9aa01978   Heiko Schocher   travis.yml: some ...
163
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
164
          - BUILDMAN="mpc5xx"
d9aa01978   Heiko Schocher   travis.yml: some ...
165
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
166
          - BUILDMAN="mpc5xxx"
d9aa01978   Heiko Schocher   travis.yml: some ...
167
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
168
          - BUILDMAN="mpc8260"
c7cb334d1   Meier, Roger   .travis.yml: buil...
169
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
170
          - BUILDMAN="mpc83xx"
c7cb334d1   Meier, Roger   .travis.yml: buil...
171
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
172
          - BUILDMAN="mpc85xx -x freescale"
d9aa01978   Heiko Schocher   travis.yml: some ...
173
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
174
          - 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   Heiko Schocher   travis.yml: some ...
175
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
176
          - BUILDMAN="t208xrdb t4qds t102*"
d9aa01978   Heiko Schocher   travis.yml: some ...
177
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
178
          - BUILDMAN="p1_p2_rdb_pc p1010rdb"
8cb2101b9   Heiko Schocher   travis.yml: add m...
179
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
180
          - BUILDMAN="corenet_ds b4860qds sbc8548 bsc91*"
c7cb334d1   Meier, Roger   .travis.yml: buil...
181
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
182
          - BUILDMAN="mpc86xx"
c7cb334d1   Meier, Roger   .travis.yml: buil...
183
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
184
          - BUILDMAN="mpc8xx"
c7cb334d1   Meier, Roger   .travis.yml: buil...
185
      - env:
050c7569b   Roger Meier   .travis.yml: rewo...
186
          - BUILDMAN="siemens"
050c7569b   Roger Meier   .travis.yml: rewo...
187
      - env:
5eba31c38   Tom Rini   travis.yml: Add i...
188
          - BUILDMAN="tegra"
1fcf0ee9f   Stephen Warren   travis-ci: build ...
189
      - env:
baade496d   Tom Rini   travis-ci: Try ha...
190
191
192
193
194
195
196
197
          - JOB="am33xx"
            BUILDMAN="am33xx -x siemens"
      - env:
          - BUILDMAN="omap3"
      - env:
          - BUILDMAN="omap4"
      - env:
          - BUILDMAN="omap5"
050c7569b   Roger Meier   .travis.yml: rewo...
198
      - env:
5eba31c38   Tom Rini   travis.yml: Add i...
199
200
          - BUILDMAN="uniphier"
      - env:
baade496d   Tom Rini   travis-ci: Try ha...
201
          - BUILDMAN="aarch64 -x tegra,freescale,uniphier,sunxi"
050c7569b   Roger Meier   .travis.yml: rewo...
202
            TOOLCHAIN="aarch64"
76761e7fb   Tom Rini   travis-ci: Add mo...
203
204
205
206
207
208
      - env:
          - BUILDMAN="sh4"
            TOOLCHAIN="sh4"
      - env:
          - BUILDMAN="xtensa"
            TOOLCHAIN="xtensa"
c7cb334d1   Meier, Roger   .travis.yml: buil...
209
210
211
  
      # QA jobs for code analytics
      # static code analysis with cppcheck (we can add --enable=all later)
d7882210d   Stephen Warren   travis-ci: set en...
212
213
214
      - env:
          - JOB="cppcheck"
        script:
c85b52e43   Tom Rini   travis-ci: Drop '...
215
          - cppcheck --force --quiet --inline-suppr .
c7cb334d1   Meier, Roger   .travis.yml: buil...
216
      # search for TODO within source tree
d7882210d   Stephen Warren   travis-ci: set en...
217
218
219
      - env:
          - JOB="grep TODO"
        script:
c85b52e43   Tom Rini   travis-ci: Drop '...
220
          - grep -r TODO .
c7cb334d1   Meier, Roger   .travis.yml: buil...
221
      # search for FIXME within source tree
d7882210d   Stephen Warren   travis-ci: set en...
222
223
224
      - env:
          - JOB="grep FIXME HACK"
        script:
c85b52e43   Tom Rini   travis-ci: Drop '...
225
          - grep -r FIXME .
c7cb334d1   Meier, Roger   .travis.yml: buil...
226
      # search for HACK within source tree and ignore HACKKIT board
c7cb334d1   Meier, Roger   .travis.yml: buil...
227
228
229
        script:
          - grep -r HACK . | grep -v HACKKIT
      # some statistics about the code base
d7882210d   Stephen Warren   travis-ci: set en...
230
231
232
      - env:
          - JOB="sloccount"
        script:
c85b52e43   Tom Rini   travis-ci: Drop '...
233
          - sloccount .
8304f0538   Stephen Warren   travis-ci: compil...
234

07bf2122d   Stephen Warren   Enable test/py fo...
235
      # test/py
d7882210d   Stephen Warren   travis-ci: set en...
236
      - env:
8304f0538   Stephen Warren   travis-ci: compil...
237
238
239
          - TEST_PY_BD="sandbox"
            BUILDMAN="^sandbox$"
            TOOLCHAIN="x86_64"
5ac5861c4   Tom Rini   travis-ci: Add te...
240
      - env:
8304f0538   Stephen Warren   travis-ci: compil...
241
242
243
          - TEST_PY_BD="vexpress_ca15_tc2"
            TEST_PY_ID="--id qemu"
            BUILDMAN="^vexpress_ca15_tc2$"
5ac5861c4   Tom Rini   travis-ci: Add te...
244
      - env:
8304f0538   Stephen Warren   travis-ci: compil...
245
246
247
          - TEST_PY_BD="vexpress_ca9x4"
            TEST_PY_ID="--id qemu"
            BUILDMAN="^vexpress_ca9x4$"
5ac5861c4   Tom Rini   travis-ci: Add te...
248
      - env:
8304f0538   Stephen Warren   travis-ci: compil...
249
250
251
          - TEST_PY_BD="integratorcp_cm926ejs"
            TEST_PY_ID="--id qemu"
            BUILDMAN="^integratorcp_cm926ejs$"
5ac5861c4   Tom Rini   travis-ci: Add te...
252
      - env:
8304f0538   Stephen Warren   travis-ci: compil...
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
          - TEST_PY_BD="qemu_mips"
            TEST_PY_TEST_SPEC="not sleep"
            BUILDMAN="^qemu_mips$"
            TOOLCHAIN="mips"
      - env:
          - TEST_PY_BD="qemu_mipsel"
            TEST_PY_TEST_SPEC="not sleep"
            BUILDMAN="^qemu_mipsel$"
            TOOLCHAIN="mips"
      - env:
          - TEST_PY_BD="qemu_mips64"
            TEST_PY_TEST_SPEC="not sleep"
            BUILDMAN="^qemu_mips64$"
            TOOLCHAIN="mips"
      - env:
          - TEST_PY_BD="qemu_mips64el"
            TEST_PY_TEST_SPEC="not sleep"
            BUILDMAN="^qemu_mips64el$"
            TOOLCHAIN="mips"
      - env:
          - TEST_PY_BD="qemu-ppce500"
            TEST_PY_TEST_SPEC="not sleep"
            BUILDMAN="^qemu-ppce500$"
      - env:
          - TEST_PY_BD="qemu-x86"
            TEST_PY_TEST_SPEC="not sleep"
            BUILDMAN="^qemu-x86$"
            TOOLCHAIN="x86_64"
            BUILD_ROM="yes"
c7cb334d1   Meier, Roger   .travis.yml: buil...
282

c7cb334d1   Meier, Roger   .travis.yml: buil...
283
  # TODO make it perfect ;-r