.travis.yml 24.6 KB
Newer Older
1
# SPDX-License-Identifier: GPL-2.0+
2
3
4
5
# Copyright Roger Meier <r.meier@siemens.com>

# build U-Boot on Travis CI - https://travis-ci.org/

6
sudo: required
7
dist: bionic
8

9
10
language: c

11
12
addons:
  apt:
13
    update: true
Tom Rini's avatar
Tom Rini committed
14
    sources:
15
16
    - sourceline: 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-10 main'
      key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
17
    packages:
18
    - autopoint
19
20
21
22
23
    - cppcheck
    - sloccount
    - sparse
    - bc
    - build-essential
Simon Glass's avatar
Simon Glass committed
24
    - libsdl2-dev
25
    - python
26
    - python3-sphinx
27
28
    - python3-virtualenv
    - python3-pip
29
    - python3-pygit2
30
31
    - swig
    - libpython-dev
32
    - iasl
33
    - grub-efi-ia32-bin
34
    - grub-efi-amd64-bin
35
36
    - rpm2cpio
    - wget
37
    - device-tree-compiler
Tom Rini's avatar
Tom Rini committed
38
    - lzop
39
    - liblz4-tool
40
    - lzma-alone
Tom Rini's avatar
Tom Rini committed
41
    - libisl15
42
    - clang-10
Marek Vasut's avatar
Marek Vasut committed
43
    - srecord
Heinrich Schuchardt's avatar
Heinrich Schuchardt committed
44
    - graphviz
45
46
47
48
49
50
51
52
    - coreutils
    - util-linux
    - dosfstools
    - gdisk
    - mount
    - mtools
    - openssl
    - sbsigntool
53
54
    - fakeroot
    - mtd-utils
Tom Rini's avatar
Tom Rini committed
55
    - squashfs-tools
56

57
install:
58
59
60
61
 # 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`
62
 # prepare buildman environment
63
 - echo -e "[toolchain]\nroot = /usr" > ~/.buildman
64
 - echo -e "arc = /tmp/arc_gnu_2019.09_prebuilt_uclibc_le_archs_linux_install" >> ~/.buildman
65
66
67
 - echo -e "\n[toolchain-alias]\nsh = sh2" >> ~/.buildman
 - echo -e "x86 = i386" >> ~/.buildman;
 - echo -e "riscv = riscv64" >> ~/.buildman;
68
 - cat ~/.buildman
69
70
71
 - grub-mkimage --prefix="" -o ~/grub_x86.efi -O i386-efi normal  echo lsefimmap lsefi lsefisystab efinet tftp minicmd
 - grub-mkimage --prefix="" -o ~/grub_x64.efi -O x86_64-efi normal  echo lsefimmap lsefi lsefisystab efinet tftp minicmd
 - wget http://mirrors.kernel.org/ubuntu/pool/main/m/mpfr4/libmpfr4_3.1.4-1_amd64.deb && sudo dpkg -i libmpfr4_3.1.4-1_amd64.deb && rm libmpfr4_3.1.4-1_amd64.deb
72
 - wget http://mirrors.kernel.org/ubuntu/pool/universe/e/efitools/efitools_1.8.1-0ubuntu2_amd64.deb && sudo dpkg -i efitools_1.8.1-0ubuntu2_amd64.deb && rm efitools_1.8.1-0ubuntu2_amd64.deb
73
74
75

env:
  global:
76
    - PATH=/tmp/qemu-install/bin:/tmp/uboot-test-hooks/bin:/sbin:/usr/bin:/bin:/usr/local/bin
77
    - PYTHONPATH=/tmp/uboot-test-hooks/py/travis-ci
78
79
80
    - BUILD_DIR=build
    - HOSTCC="cc"
    - HOSTCXX="c++"
81
    - QEMU_VERSION="v4.2.0"
82
83

before_script:
84
85
  # install toolchains based on TOOLCHAIN} variable
  - if [[ "${TOOLCHAIN}" == *m68k* ]]; then ./tools/buildman/buildman --fetch-arch m68k ; fi
86
  - if [[ "${TOOLCHAIN}" == *microblaze* ]]; then ./tools/buildman/buildman --fetch-arch microblaze ; fi
87
  - if [[ "${TOOLCHAIN}" == *mips* ]]; then ./tools/buildman/buildman --fetch-arch mips ; fi
88
  - if [[ "${TOOLCHAIN}" == *sh* ]]; then ./tools/buildman/buildman --fetch-arch sh2 ; fi
89
90
  - if [[ "${TOOLCHAIN}" == *i386* ]]; then
      ./tools/buildman/buildman --fetch-arch i386;
91
    fi
Alexey Brodkin's avatar
Alexey Brodkin committed
92
  - if [[ "${TOOLCHAIN}" == arc ]]; then
93
94
       wget https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/download/arc-2019.09-release/arc_gnu_2019.09_prebuilt_uclibc_le_archs_linux_install.tar.gz &&
       tar -C /tmp -xf arc_gnu_2019.09_prebuilt_uclibc_le_archs_linux_install.tar.gz;
Alexey Brodkin's avatar
Alexey Brodkin committed
95
    fi
96
97
98
99
100
  - if [[ "${TOOLCHAIN}" == "nds32" ]]; then
       wget https://github.com/vincentzwc/prebuilt-nds32-toolchain/releases/download/20180521/nds32le-linux-glibc-v3-upstream.tar.gz &&
       tar -C /tmp -xf nds32le-linux-glibc-v3-upstream.tar.gz &&
       echo -e "\n[toolchain-prefix]\nnds32 = /tmp/nds32le-linux-glibc-v3-upstream/bin/nds32le-linux-" >> ~/.buildman;
    fi
101
102
103
104
105
  - if [[ "${TOOLCHAIN}" == *xtensa* ]]; then
       wget https://github.com/foss-xtensa/toolchain/releases/download/2018.02/x86_64-2018.02-${TOOLCHAIN}.tar.gz &&
       tar -C /tmp -xf x86_64-2018.02-${TOOLCHAIN}.tar.gz &&
       echo -e "\n[toolchain-prefix]\nxtensa = /tmp/2018.02/${TOOLCHAIN}/bin/${TOOLCHAIN}-" >> ~/.buildman;
    fi
106
107
  # If TOOLCHAIN is unset, we're on some flavour of ARM.
  - if [[ "${TOOLCHAIN}" == "" ]]; then
108
109
       ./tools/buildman/buildman --fetch-arch arm &&
       ./tools/buildman/buildman --fetch-arch aarch64;
110
    fi
111
  - if [[ "${TOOLCHAIN}" == "powerpc" ]]; then ./tools/buildman/buildman --fetch-arch powerpc; fi
Rick Chen's avatar
Rick Chen committed
112
  - if [[ "${TOOLCHAIN}" == "riscv" ]]; then
113
       ./tools/buildman/buildman --fetch-arch riscv32 &&
114
       ./tools/buildman/buildman --fetch-arch riscv64;
Rick Chen's avatar
Rick Chen committed
115
    fi
Tom Rini's avatar
Tom Rini committed
116
117
118
119
  - if [[ "${QEMU_TARGET}" != "" ]]; then
       git clone git://git.qemu.org/qemu.git /tmp/qemu;
       pushd /tmp/qemu;
       git submodule update --init dtc &&
120
       git checkout ${QEMU_VERSION} &&
Tom Rini's avatar
Tom Rini committed
121
122
123
124
       ./configure --prefix=/tmp/qemu-install --target-list=${QEMU_TARGET} &&
       make -j4 all install;
       popd;
    fi
125

126
127
128
129
130
131
132
133
  # Build GRUB UEFI targets
  - if [[ "${QEMU_TARGET}" == "arm-softmmu" ]]; then
       git clone git://git.savannah.gnu.org/grub.git /tmp/grub &&
       pushd /tmp/grub &&
       git checkout grub-2.04 &&
       ./bootstrap &&
       ./configure --target=arm --with-platform=efi
       CC=gcc
Bin Meng's avatar
Bin Meng committed
134
135
136
137
138
       TARGET_CC=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-gcc
       TARGET_OBJCOPY=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-objcopy
       TARGET_STRIP=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-strip
       TARGET_NM=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-nm
       TARGET_RANLIB=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-ranlib &&
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
       make -j4 &&
       ./grub-mkimage -O arm-efi -o ~/grub_arm.efi --prefix= -d
       grub-core cat chain configfile echo efinet ext2 fat halt help linux
       lsefisystab loadenv lvm minicmd normal part_msdos part_gpt reboot
       search search_fs_file search_fs_uuid search_label serial sleep test
       true &&
       popd;
    fi
  - if [[ "${QEMU_TARGET}" == "aarch64-softmmu" ]]; then
       git clone git://git.savannah.gnu.org/grub.git /tmp/grub &&
       pushd /tmp/grub &&
       git checkout grub-2.04 &&
       ./bootstrap &&
       ./configure --target=aarch64 --with-platform=efi
       CC=gcc
Bin Meng's avatar
Bin Meng committed
154
155
156
157
158
       TARGET_CC=~/.buildman-toolchains/gcc-9.2.0-nolibc/aarch64-linux/bin/aarch64-linux-gcc
       TARGET_OBJCOPY=~/.buildman-toolchains/gcc-9.2.0-nolibc/aarch64-linux/bin/aarch64-linux-objcopy
       TARGET_STRIP=~/.buildman-toolchains/gcc-9.2.0-nolibc/aarch64-linux/bin/aarch64-linux-strip
       TARGET_NM=~/.buildman-toolchains/gcc-9.2.0-nolibc/aarch64-linux/bin/aarch64-linux-nm
       TARGET_RANLIB=~/.buildman-toolchains/gcc-9.2.0-nolibc/aarch64-linux/bin/aarch64-linux-ranlib &&
159
160
161
162
163
164
165
166
       make -j4 &&
       ./grub-mkimage -O arm64-efi -o ~/grub_arm64.efi --prefix= -d
       grub-core cat chain configfile echo efinet ext2 fat halt help linux
       lsefisystab loadenv lvm minicmd normal part_msdos part_gpt reboot
       search search_fs_file search_fs_uuid search_label serial sleep test
       true &&
       popd;
    fi
167
168
169
170
171
172
173
  - if [[ "${QEMU_TARGET}" == "riscv32-softmmu" ]]; then
       git clone git://git.savannah.gnu.org/grub.git /tmp/grub &&
       pushd /tmp/grub &&
       git checkout grub-2.04 &&
       ./bootstrap &&
       ./configure --target=riscv32 --with-platform=efi
       CC=gcc
Bin Meng's avatar
Bin Meng committed
174
175
176
177
178
       TARGET_CC=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv32-linux/bin/riscv32-linux-gcc
       TARGET_OBJCOPY=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv32-linux/bin/riscv32-linux-objcopy
       TARGET_STRIP=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv32-linux/bin/riscv32-linux-strip
       TARGET_NM=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv32-linux/bin/riscv32-linux-nm
       TARGET_RANLIB=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv32-linux/bin/riscv32-linux-ranlib &&
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
       make -j4 &&
       ./grub-mkimage -O riscv32-efi -o ~/grub_riscv32.efi --prefix= -d
       grub-core cat chain configfile echo efinet ext2 fat halt help linux
       lsefisystab loadenv lvm minicmd normal part_msdos part_gpt reboot
       search search_fs_file search_fs_uuid search_label serial sleep test
       true &&
       popd;
    fi
  - if [[ "${QEMU_TARGET}" == "riscv64-softmmu" ]]; then
       git clone git://git.savannah.gnu.org/grub.git /tmp/grub &&
       pushd /tmp/grub &&
       git checkout grub-2.04 &&
       ./bootstrap &&
       ./configure --target=riscv64 --with-platform=efi
       CC=gcc
Bin Meng's avatar
Bin Meng committed
194
195
196
197
198
       TARGET_CC=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv64-linux/bin/riscv64-linux-gcc
       TARGET_OBJCOPY=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv64-linux/bin/riscv64-linux-objcopy
       TARGET_STRIP=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv64-linux/bin/riscv64-linux-strip
       TARGET_NM=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv64-linux/bin/riscv64-linux-nm
       TARGET_RANLIB=~/.buildman-toolchains/gcc-9.2.0-nolibc/riscv64-linux/bin/riscv64-linux-ranlib &&
199
200
201
202
203
204
205
206
       make -j4 &&
       ./grub-mkimage -O riscv64-efi -o ~/grub_riscv64.efi --prefix= -d
       grub-core cat chain configfile echo efinet ext2 fat halt help linux
       lsefisystab loadenv lvm minicmd normal part_msdos part_gpt reboot
       search search_fs_file search_fs_uuid search_label serial sleep test
       true &&
       popd;
    fi
207
  - if [[ "${TEST_PY_BD}" == "qemu-riscv32_spl" ]]; then
208
209
       wget -O - https://github.com/riscv/opensbi/releases/download/v0.8/opensbi-0.8-rv-bin.tar.xz | tar -C /tmp -xJ;
       export OPENSBI=/tmp/opensbi-0.8-rv-bin/share/opensbi/ilp32/generic/firmware/fw_dynamic.bin;
210
211
    fi
  - if [[ "${TEST_PY_BD}" == "qemu-riscv64_spl" ]]; then
212
213
       wget -O - https://github.com/riscv/opensbi/releases/download/v0.8/opensbi-0.8-rv-bin.tar.xz | tar -C /tmp -xJ;
       export OPENSBI=/tmp/opensbi-0.8-rv-bin/share/opensbi/lp64/generic/firmware/fw_dynamic.bin;
214
    fi
215

216
script:
217
218
219
 # Comments must be outside the command strings below, or the Travis parser
 # will get confused.
 #
220
221
 # If we've been asked to use clang only do one configuration.
 #
222
 # Build a selection of boards if TEST_PY_BD is empty
223
 - if [[ "${BUILDMAN}" != "" ]]; then
224
225
     ret=0
     tools/buildman/buildman -P -E -W ${BUILDMAN} ${OVERRIDE} || ret=$?;
226
     if [[ $ret -ne 0 ]]; then
227
       tools/buildman/buildman -seP ${BUILDMAN};
228
229
       exit $ret;
     fi;
230
   fi
231
 # Build just the one board needed for testing, if TEST_PY_BD is non-empty
232
 # Note: "${var:+"-k $var"}" expands to "" if $var is empty, "-k $var" if not
233
 - if [[ "${TEST_PY_BD}" != "" ]]; then
234
     export UBOOT_TRAVIS_BUILD_DIR=`cd .. && pwd`/${TEST_PY_BD};
235
236
237
238
239
240
241
242
243
244
245
246
247
248
     cp ~/grub_x86.efi $UBOOT_TRAVIS_BUILD_DIR/;
     cp ~/grub_x64.efi $UBOOT_TRAVIS_BUILD_DIR/;
     if [[ -e ~/grub_arm.efi ]]; then
       cp ~/grub_arm.efi $UBOOT_TRAVIS_BUILD_DIR/;
     fi;
     if [[ -e ~/grub_arm64.efi ]]; then
       cp ~/grub_arm64.efi $UBOOT_TRAVIS_BUILD_DIR/;
     fi;
     if [[ -e ~/grub_riscv32.efi ]]; then
       cp ~/grub_riscv32.efi $UBOOT_TRAVIS_BUILD_DIR/;
     fi;
     if [[ -e ~/grub_riscv64.efi ]]; then
       cp ~/grub_riscv64.efi $UBOOT_TRAVIS_BUILD_DIR/;
     fi;
249
250
     tools/buildman/buildman -o ${UBOOT_TRAVIS_BUILD_DIR} -w -E -W -e
       --board ${TEST_PY_BD} ${OVERRIDE} || exit;
251
252
253
     virtualenv -p /usr/bin/python3 /tmp/venv;
     . /tmp/venv/bin/activate;
     pip install -r test/py/requirements.txt;
254
     ./test/py/test.py -ra --bd ${TEST_PY_BD} ${TEST_PY_ID}
255
       ${TEST_PY_TEST_SPEC:+"-k ${TEST_PY_TEST_SPEC}"}
256
       --build-dir "$UBOOT_TRAVIS_BUILD_DIR" || exit;
257
258
259
     if [[ -n "${TEST_PY_TOOLS}" ]]; then
       export PYTHONPATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc/pylibfdt";
       export PATH="${UBOOT_TRAVIS_BUILD_DIR}/scripts/dtc:${PATH}";
Tom Rini's avatar
Tom Rini committed
260
       pip install pyelftools &&
261
       ./tools/binman/binman --toolpath ${UBOOT_TRAVIS_BUILD_DIR}/tools test &&
Simon Glass's avatar
Simon Glass committed
262
       ./tools/patman/patman test &&
263
       ./tools/buildman/buildman -t &&
264
265
       ./tools/dtoc/dtoc -t &&
       make testconfig;
266
     fi;
267
   fi
268
269
270
271
272

matrix:
  include:
  # we need to build by vendor due to 50min time limit for builds
  # each env setting here is a dedicated build
Stephen Warren's avatar
Stephen Warren committed
273
274
    - name: "buildman arc"
      env:
Alexey Brodkin's avatar
Alexey Brodkin committed
275
276
        - BUILDMAN="arc"
          TOOLCHAIN="arc"
Stephen Warren's avatar
Stephen Warren committed
277
278
    - name: "buildman arm11 arm7 arm920t arm946es"
      env:
Tom Rini's avatar
Tom Rini committed
279
        - BUILDMAN="arm11 arm7 arm920t arm946es"
280
    - name: "buildman arm926ejs (non-NXP,siemens,at91,kirkwood,spear)"
Stephen Warren's avatar
Stephen Warren committed
281
      env:
282
        - JOB="arm926ejs"
283
284
          BUILDMAN="arm926ejs -x freescale,siemens,at91,kirkwood,spear,omap"
    - name: "buildman at91 (non arm v7)"
Stephen Warren's avatar
Stephen Warren committed
285
      env:
286
287
288
289
        - BUILDMAN="at91 -x armv7"
    - name: "buildman at91 (non arm926ejs)"
      env:
        - BUILDMAN="at91 -x arm926ejs"
Stephen Warren's avatar
Stephen Warren committed
290
291
292
    - name: "buildman boundary engicam toradex"
      env:
        - BUILDMAN="boundary engicam toradex"
293
    - name: "buildman ARM bcm"
294
      env:
295
        - BUILDMAN="bcm -x mips"
296
    - name: "buildman NXP ARM32 (catch-all)"
Stephen Warren's avatar
Stephen Warren committed
297
      env:
298
299
        - BUILDMAN="freescale -x powerpc,m68k,aarch64,ls101,ls102,ls104,ls108,ls20,lx216"
    - name: "buildman NXP LS101x"
Stephen Warren's avatar
Stephen Warren committed
300
      env:
301
302
        - BUILDMAN="freescale&ls101"
    - name: "buildman NXP LS102x"
303
      env:
304
305
        - BUILDMAN="freescale&ls102"
    - name: "buildman NXP LS104x"
306
      env:
307
308
        - BUILDMAN="freescale&ls104"
    - name: "buildman NXP LS108x"
309
      env:
310
311
        - BUILDMAN="freescale&ls108"
    - name: "buildman NXP LS20xx"
312
      env:
313
314
        - BUILDMAN="freescale&ls20"
    - name: "buildman NXP LX216x"
315
      env:
316
        - BUILDMAN="freescale&lx216"
Tom Rini's avatar
Tom Rini committed
317
    - name: "buildman i.MX6 tqc"
Stephen Warren's avatar
Stephen Warren committed
318
      env:
Tom Rini's avatar
Tom Rini committed
319
320
        - BUILDMAN="mx6&tqc"
    - name: "buildman i.MX6 (catch-all)"
Stephen Warren's avatar
Stephen Warren committed
321
      env:
Tom Rini's avatar
Tom Rini committed
322
323
324
325
        - BUILDMAN="mx6 -x boundary,engicam,freescale,technexion,toradex,tqc"
    - name: "buildman i.MX (non-i.MX6 catch-all)"
      env:
        - BUILDMAN="mx -x freescale,mx6,toradex,technexion"
326
    - name: "buildman keystone 2/3"
Stephen Warren's avatar
Stephen Warren committed
327
      env:
328
        - BUILDMAN="k2 k3"
Stephen Warren's avatar
Stephen Warren committed
329
330
    - name: "buildman samsung socfpga"
      env:
Tom Rini's avatar
Tom Rini committed
331
        - BUILDMAN="samsung socfpga"
332
333
334
    - name: "buildman spear"
      env:
        - BUILDMAN="spear"
Stephen Warren's avatar
Stephen Warren committed
335
336
    - name: "buildman sun4i"
      env:
337
        - BUILDMAN="sun4i"
Stephen Warren's avatar
Stephen Warren committed
338
339
    - name: "buildman sun5i"
      env:
340
        - BUILDMAN="sun5i"
Stephen Warren's avatar
Stephen Warren committed
341
342
    - name: "buildman sun6i"
      env:
343
        - BUILDMAN="sun6i"
344
    - name: "buildman sun7i"
Stephen Warren's avatar
Stephen Warren committed
345
      env:
346
        - BUILDMAN="sun7i"
Tom Rini's avatar
Tom Rini committed
347
    - name: "buildman 64bit sun8i"
Stephen Warren's avatar
Stephen Warren committed
348
      env:
349
        - BUILDMAN="sun8i&aarch64 -x orangepi"
Tom Rini's avatar
Tom Rini committed
350
351
    - name: "buildman 32bit sun8i"
      env:
352
        - BUILDMAN="sun8i&armv7 -x orangepi"
Stephen Warren's avatar
Stephen Warren committed
353
354
    - name: "buildman sun9i"
      env:
355
        - BUILDMAN="sun9i"
Stephen Warren's avatar
Stephen Warren committed
356
357
    - name: "buildman sun50i"
      env:
358
        - BUILDMAN="sun50i -x orangepi"
Stephen Warren's avatar
Stephen Warren committed
359
360
    - name: "buildman catch-all ARM"
      env:
361
        - BUILDMAN="arm -x arm11,arm7,arm9,aarch64,at91,bcm,freescale,kirkwood,mvebu,siemens,tegra,uniphier,mx,samsung,sunxi,am33xx,omap,rk,toradex,socfpga,k2,k3,zynq"
Stephen Warren's avatar
Stephen Warren committed
362
363
    - name: "buildman sandbox x86"
      env:
364
        - BUILDMAN="sandbox x86"
365
          TOOLCHAIN="i386"
Tom Rini's avatar
Tom Rini committed
366
367
368
    - name: "buildman technexion"
      env:
        - BUILDMAN="technexion"
369
    - name: "buildman kirkwood"
Stephen Warren's avatar
Stephen Warren committed
370
      env:
371
        - BUILDMAN="kirkwood"
Stephen Warren's avatar
Stephen Warren committed
372
373
    - name: "buildman mvebu"
      env:
374
        - BUILDMAN="mvebu"
Stephen Warren's avatar
Stephen Warren committed
375
376
    - name: "buildman m68k"
      env:
377
378
        - BUILDMAN="m68k"
          TOOLCHAIN="m68k"
Stephen Warren's avatar
Stephen Warren committed
379
380
    - name: "buildman microblaze"
      env:
381
        - BUILDMAN="microblaze"
Tom Rini's avatar
Tom Rini committed
382
          TOOLCHAIN="microblaze"
Stephen Warren's avatar
Stephen Warren committed
383
384
    - name: "buildman mips"
      env:
385
386
        - BUILDMAN="mips"
          TOOLCHAIN="mips"
Stephen Warren's avatar
Stephen Warren committed
387
388
389
    - name: "buildman non-Freescale PowerPC"
      env:
        - BUILDMAN="powerpc -x freescale"
390
          TOOLCHAIN="powerpc"
Stephen Warren's avatar
Stephen Warren committed
391
392
    - name: "buildman mpc85xx&freescale (excluding many)"
      env:
Tom Rini's avatar
Tom Rini committed
393
        - BUILDMAN="mpc85xx&freescale -x t208xrdb -x t4qds -x t102* -x p1_p2_rdb_pc -x p1010rdb -x corenet_ds -x b4860qds -x bsc91*"
394
          TOOLCHAIN="powerpc"
Stephen Warren's avatar
Stephen Warren committed
395
396
    - name: "buildman t208xrdb corenet_ds"
      env:
Tom Rini's avatar
Tom Rini committed
397
        - BUILDMAN="t208xrdb corenet_ds"
398
          TOOLCHAIN="powerpc"
Stephen Warren's avatar
Stephen Warren committed
399
400
    - name: "buildman Freescale PowerPC"
      env:
Tom Rini's avatar
Tom Rini committed
401
        - BUILDMAN="t4qds b4860qds mpc83xx&freescale mpc86xx&freescale"
402
          TOOLCHAIN="powerpc"
Stephen Warren's avatar
Stephen Warren committed
403
404
    - name: "buildman t102*"
      env:
405
        - BUILDMAN="t102*"
406
          TOOLCHAIN="powerpc"
Stephen Warren's avatar
Stephen Warren committed
407
408
    - name: "buildman p1_p2_rdb_pc"
      env:
409
        - BUILDMAN="p1_p2_rdb_pc"
410
          TOOLCHAIN="powerpc"
Stephen Warren's avatar
Stephen Warren committed
411
412
    - name: "buildman p1010rdb bsc91"
      env:
Tom Rini's avatar
Tom Rini committed
413
        - BUILDMAN="p1010rdb bsc91"
414
          TOOLCHAIN="powerpc"
Stephen Warren's avatar
Stephen Warren committed
415
416
    - name: "buildman siemens"
      env:
417
        - BUILDMAN="siemens"
Stephen Warren's avatar
Stephen Warren committed
418
419
420
421
422
423
424
425
    - name: "buildman tegra"
      env:
        - BUILDMAN="tegra -x toradex"
    - name: "buildman am33xx (no siemens)"
      env:
        - BUILDMAN="am33xx -x siemens"
    - name: "buildman omap"
      env:
Tom Rini's avatar
Tom Rini committed
426
        - BUILDMAN="omap"
427
428
429
    - name: "buildman orangepi"
      env:
        - BUILDMAN="orangepi"
Stephen Warren's avatar
Stephen Warren committed
430
431
    - name: "buildman uniphier"
      env:
432
        - BUILDMAN="uniphier"
Stephen Warren's avatar
Stephen Warren committed
433
434
    - name: "buildman catch-all AArch64"
      env:
435
        - BUILDMAN="aarch64 -x bcm,k3,tegra,ls1,ls2,lx216,mvebu,uniphier,sunxi,samsung,socfpga,rk,versal,zynq"
Stephen Warren's avatar
Stephen Warren committed
436
437
    - name: "buildman rockchip"
      env:
438
        - BUILDMAN="rk -x orangepi"
Stephen Warren's avatar
Stephen Warren committed
439
440
441
    - name: "buildman sh"
      env:
        - BUILDMAN="sh -x arm"
442
          TOOLCHAIN="sh"
443
    - name: "buildman Zynq* (ARMv7)"
Stephen Warren's avatar
Stephen Warren committed
444
      env:
445
446
447
448
        - BUILDMAN="zynq&armv7"
    - name: "buildman ZynqMP and Versal"
      env:
        - BUILDMAN="versal|zynqmp&aarch64"
Stephen Warren's avatar
Stephen Warren committed
449
450
    - name: "buildman xtensa"
      env:
Tom Rini's avatar
Tom Rini committed
451
        - BUILDMAN="xtensa"
452
          TOOLCHAIN="xtensa-dc233c-elf"
Stephen Warren's avatar
Stephen Warren committed
453
454
    - name: "buildman riscv"
      env:
Rick Chen's avatar
Rick Chen committed
455
456
        - BUILDMAN="riscv"
          TOOLCHAIN="riscv"
457
458
459
460
    - name: "buildman nds32"
      env:
        - BUILDMAN="nds32"
          TOOLCHAIN="nds32"
461
462
463

    # QA jobs for code analytics
    # static code analysis with cppcheck (we can add --enable=all later)
Stephen Warren's avatar
Stephen Warren committed
464
    - name: "cppcheck"
465
      script:
466
        - cppcheck -j$(nproc) --force --quiet --inline-suppr .
Heinrich Schuchardt's avatar
Heinrich Schuchardt committed
467
468
469
470
    # build HTML documentation
    - name: "htmldocs"
      script:
        - make htmldocs
471
    # search for TODO within source tree
Stephen Warren's avatar
Stephen Warren committed
472
    - name: "grep TODO"
473
      script:
Tom Rini's avatar
Tom Rini committed
474
        - grep -r TODO .
475
    # search for FIXME within source tree
Stephen Warren's avatar
Stephen Warren committed
476
    - name: "grep FIXME HACK"
477
      script:
Tom Rini's avatar
Tom Rini committed
478
        - grep -r FIXME .
479
480
481
482
    # search for HACK within source tree and ignore HACKKIT board
      script:
        - grep -r HACK . | grep -v HACKKIT
    # some statistics about the code base
Stephen Warren's avatar
Stephen Warren committed
483
    - name: "sloccount"
484
      script:
Tom Rini's avatar
Tom Rini committed
485
        - sloccount .
486
487
488
489
    # ensure all configs have MAINTAINERS entries
    - name: "Check for configs without MAINTAINERS entry"
      script:
        - if [ `./tools/genboardscfg.py -f 2>&1 | wc -l` -ne 0 ]; then exit 1; fi
490
491
492
493
    # Ensure host tools build
    - name: "Build tools-only"
      script:
        - make tools-only_config tools-only -j$(nproc)
Pierre-Jean Texier's avatar
Pierre-Jean Texier committed
494
495
496
497
    # Ensure env tools build
    - name: "Build envtools"
      script:
        - make tools-only_config envtools -j$(nproc)
498

499
500
501
502
503
    - name: "Run tests for Nokia RX-51 (aka N900)"
      script:
        - export PATH=~/.buildman-toolchains/gcc-9.2.0-nolibc/arm-linux-gnueabi/bin/:$PATH
        - test/nokia_rx51_test.sh

504
    # test/py
Stephen Warren's avatar
Stephen Warren committed
505
506
    - name: "test/py sandbox"
      env:
507
        - TEST_PY_BD="sandbox"
508
          TOOLCHAIN="i386"
Tom Rini's avatar
Tom Rini committed
509
510
511
    - name: "test/py sandbox with clang"
      env:
        - TEST_PY_BD="sandbox"
512
          OVERRIDE="-O clang-10"
Stephen Warren's avatar
Stephen Warren committed
513
514
    - name: "test/py sandbox_spl"
      env:
Tom Rini's avatar
Tom Rini committed
515
        - TEST_PY_BD="sandbox_spl"
516
          TEST_PY_TEST_SPEC="test_ofplatdata or test_handoff or test_spl"
517
          TOOLCHAIN="i386"
Simon Glass's avatar
Simon Glass committed
518
          TEST_PY_TOOLS="yes"
Stephen Warren's avatar
Stephen Warren committed
519
520
    - name: "test/py sandbox_flattree"
      env:
Tom Rini's avatar
Tom Rini committed
521
        - TEST_PY_BD="sandbox_flattree"
522
          TOOLCHAIN="i386"
523
524
525
526
527
    - name: "test/py evb-ast2500"
      env:
        - TEST_PY_BD="evb-ast2500"
          TEST_PY_ID="--id qemu"
          QEMU_TARGET="arm-softmmu"
Stephen Warren's avatar
Stephen Warren committed
528
529
    - name: "test/py vexpress_ca15_tc2"
      env:
530
531
        - TEST_PY_BD="vexpress_ca15_tc2"
          TEST_PY_ID="--id qemu"
Tom Rini's avatar
Tom Rini committed
532
          QEMU_TARGET="arm-softmmu"
Stephen Warren's avatar
Stephen Warren committed
533
534
    - name: "test/py vexpress_ca9x4"
      env:
535
536
        - TEST_PY_BD="vexpress_ca9x4"
          TEST_PY_ID="--id qemu"
Tom Rini's avatar
Tom Rini committed
537
          QEMU_TARGET="arm-softmmu"
Stephen Warren's avatar
Stephen Warren committed
538
539
    - name: "test/py integratorcp_cm926ejs"
      env:
540
        - TEST_PY_BD="integratorcp_cm926ejs"
541
          TEST_PY_TEST_SPEC="not sleep"
542
          TEST_PY_ID="--id qemu"
Tom Rini's avatar
Tom Rini committed
543
          QEMU_TARGET="arm-softmmu"
Stephen Warren's avatar
Stephen Warren committed
544
545
    - name: "test/py qemu_arm"
      env:
546
547
548
        - TEST_PY_BD="qemu_arm"
          TEST_PY_TEST_SPEC="not sleep"
          QEMU_TARGET="arm-softmmu"
Stephen Warren's avatar
Stephen Warren committed
549
550
    - name: "test/py qemu_arm64"
      env:
551
552
553
        - TEST_PY_BD="qemu_arm64"
          TEST_PY_TEST_SPEC="not sleep"
          QEMU_TARGET="aarch64-softmmu"
Stephen Warren's avatar
Stephen Warren committed
554
555
    - name: "test/py qemu_mips"
      env:
556
557
        - TEST_PY_BD="qemu_mips"
          TEST_PY_TEST_SPEC="not sleep"
Tom Rini's avatar
Tom Rini committed
558
          QEMU_TARGET="mips-softmmu"
559
          TOOLCHAIN="mips"
Stephen Warren's avatar
Stephen Warren committed
560
561
    - name: "test/py qemu_mipsel"
      env:
562
563
        - TEST_PY_BD="qemu_mipsel"
          TEST_PY_TEST_SPEC="not sleep"
Tom Rini's avatar
Tom Rini committed
564
          QEMU_TARGET="mipsel-softmmu"
565
          TOOLCHAIN="mips"
Stephen Warren's avatar
Stephen Warren committed
566
567
    - name: "test/py qemu_mips64"
      env:
568
569
        - TEST_PY_BD="qemu_mips64"
          TEST_PY_TEST_SPEC="not sleep"
Tom Rini's avatar
Tom Rini committed
570
          QEMU_TARGET="mips64-softmmu"
571
          TOOLCHAIN="mips"
Stephen Warren's avatar
Stephen Warren committed
572
573
    - name: "test/py qemu_mips64el"
      env:
574
575
        - TEST_PY_BD="qemu_mips64el"
          TEST_PY_TEST_SPEC="not sleep"
Tom Rini's avatar
Tom Rini committed
576
          QEMU_TARGET="mips64el-softmmu"
577
          TOOLCHAIN="mips"
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
    - name: "test/py qemu-malta"
      env:
        - TEST_PY_BD="malta"
          TEST_PY_TEST_SPEC="not sleep and not efi"
          TEST_PY_ID="--id qemu"
          QEMU_TARGET="mips-softmmu"
          TOOLCHAIN="mips"
    - name: "test/py qemu-maltael"
      env:
        - TEST_PY_BD="maltael"
          TEST_PY_TEST_SPEC="not sleep and not efi"
          TEST_PY_ID="--id qemu"
          QEMU_TARGET="mipsel-softmmu"
          TOOLCHAIN="mips"
    - name: "test/py qemu-malta64"
      env:
        - TEST_PY_BD="malta64"
          TEST_PY_TEST_SPEC="not sleep and not efi"
          TEST_PY_ID="--id qemu"
          QEMU_TARGET="mips64-softmmu"
          TOOLCHAIN="mips"
    - name: "test/py qemu-malta64el"
      env:
        - TEST_PY_BD="malta64el"
          TEST_PY_TEST_SPEC="not sleep and not efi"
          TEST_PY_ID="--id qemu"
          QEMU_TARGET="mips64el-softmmu"
          TOOLCHAIN="mips"
Stephen Warren's avatar
Stephen Warren committed
606
607
    - name: "test/py qemu-ppce500"
      env:
608
609
        - TEST_PY_BD="qemu-ppce500"
          TEST_PY_TEST_SPEC="not sleep"
Tom Rini's avatar
Tom Rini committed
610
          QEMU_TARGET="ppc-softmmu"
611
          TOOLCHAIN="powerpc"
612
613
614
615
616
617
    - name: "test/py qemu-riscv32"
      env:
        - TEST_PY_BD="qemu-riscv32"
          TEST_PY_TEST_SPEC="not sleep"
          QEMU_TARGET="riscv32-softmmu"
          TOOLCHAIN="riscv"
618
619
620
621
622
623
    - name: "test/py qemu-riscv64"
      env:
        - TEST_PY_BD="qemu-riscv64"
          TEST_PY_TEST_SPEC="not sleep"
          QEMU_TARGET="riscv64-softmmu"
          TOOLCHAIN="riscv"
624
625
626
627
628
629
630
631
632
633
634
635
    - name: "test/py qemu-riscv32_spl"
      env:
        - TEST_PY_BD="qemu-riscv32_spl"
          TEST_PY_TEST_SPEC="not sleep"
          QEMU_TARGET="riscv32-softmmu"
          TOOLCHAIN="riscv"
    - name: "test/py qemu-riscv64_spl"
      env:
        - TEST_PY_BD="qemu-riscv64_spl"
          TEST_PY_TEST_SPEC="not sleep"
          QEMU_TARGET="riscv64-softmmu"
          TOOLCHAIN="riscv"
Stephen Warren's avatar
Stephen Warren committed
636
637
    - name: "test/py qemu-x86"
      env:
638
639
        - TEST_PY_BD="qemu-x86"
          TEST_PY_TEST_SPEC="not sleep"
Tom Rini's avatar
Tom Rini committed
640
          QEMU_TARGET="i386-softmmu"
641
          TOOLCHAIN="i386"
642
          BUILD_ROM="yes"
643
644
645
646
647
648
649
    - name: "test/py qemu-x86_64"
      env:
        - TEST_PY_BD="qemu-x86_64"
          TEST_PY_TEST_SPEC="not sleep"
          QEMU_TARGET="x86_64-softmmu"
          TOOLCHAIN="i386"
          BUILD_ROM="yes"
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
    - name: "test/py r2dplus_i82557c"
      env:
        - TEST_PY_BD="r2dplus"
          TEST_PY_ID="--id i82557c_qemu"
          QEMU_TARGET="sh4-softmmu"
          BUILDMAN="sh -x arm"
          TOOLCHAIN="sh"
    - name: "test/py r2dplus_pcnet"
      env:
        - TEST_PY_BD="r2dplus"
          TEST_PY_ID="--id pcnet_qemu"
          QEMU_TARGET="sh4-softmmu"
          BUILDMAN="sh -x arm"
          TOOLCHAIN="sh"
    - name: "test/py r2dplus_rtl8139"
      env:
        - TEST_PY_BD="r2dplus"
          TEST_PY_ID="--id rtl8139_qemu"
          QEMU_TARGET="sh4-softmmu"
          BUILDMAN="sh -x arm"
          TOOLCHAIN="sh"
    - name: "test/py r2dplus_tulip"
      env:
        - TEST_PY_BD="r2dplus"
          TEST_PY_ID="--id tulip_qemu"
          QEMU_TARGET="sh4-softmmu"
          BUILDMAN="sh -x arm"
          TOOLCHAIN="sh"
678
    - name: "test/py xilinx_zynq_virt"
Stephen Warren's avatar
Stephen Warren committed
679
      env:
680
        - TEST_PY_BD="xilinx_zynq_virt"
681
682
683
          TEST_PY_TEST_SPEC="not sleep"
          QEMU_TARGET="arm-softmmu"
          TEST_PY_ID="--id qemu"
684
685
686
687
688
689
    - name: "test/py xilinx_versal_virt"
      env:
        - TEST_PY_BD="xilinx_versal_virt"
          TEST_PY_TEST_SPEC="not sleep"
          QEMU_TARGET="aarch64-softmmu"
          TEST_PY_ID="--id qemu"
Stephen Warren's avatar
Stephen Warren committed
690
691
    - name: "test/py xtfpga"
      env:
692
693
694
695
696
        - TEST_PY_BD="xtfpga"
          TEST_PY_TEST_SPEC="not sleep"
          QEMU_TARGET="xtensa-softmmu"
          TEST_PY_ID="--id qemu"
          TOOLCHAIN="xtensa-dc233c-elf"
697
698

# TODO make it perfect ;-r