Commit c7cb334d1490a891a1f145a9daea2ed2376a2ca3

Authored by Meier, Roger
Committed by Tom Rini
1 parent bd5053ffa5

.travis.yml: build u-boot on travis-ci

Goal:
  - building all variants of U-Boot with multiple configurations
  - code quality checks and metrics
  - https://travis-ci.org/u-boot/u-boot/builds

Showing 1 changed file with 150 additions and 0 deletions Side-by-side Diff

  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 +
  6 +language: c
  7 +
  8 +cache:
  9 + - apt
  10 +
  11 +install:
  12 + # install U-Boot build dependencies
  13 + - sudo apt-get install -qq cppcheck sloccount sparse bc libsdl-dev gcc-arm-linux-gnueabi gcc-arm-linux-gnueabihf
  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 + - echo -e "[toolchain]\\n${BUILDMAN_ROOT} /\n" > ~/.buildman
  22 + - echo -e "${BUILDMAN_MIPS} /opt/eldk-5.4/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/" >> ~/.buildman
  23 + - echo -e "${BUILDMAN_PPC} /opt/eldk-5.4/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux/" >> ~/.buildman
  24 + - export BUILDMAN_ALIAS="x86:"
  25 + - echo -e "[toolchain-alias]\\n${BUILDMAN_ALIAS} i386" >> ~/.buildman
  26 + - cat ~/.buildman
  27 +
  28 +env:
  29 + global:
  30 + - PATH=/tmp/dtc:$PATH
  31 + - BUILD_DIR=build
  32 + - CROSS_COMPILE=""
  33 + - HOSTCC="cc"
  34 + - HOSTCXX="c++"
  35 + - TEST_CONFIG_CMD=""
  36 +
  37 +before_script:
  38 + # install toolchains based on INSTALL_TOOLCHAIN} variable
  39 + - 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
  40 + - if [[ "${INSTALL_TOOLCHAIN}" == *ppc* ]]; then sh eldk-eglibc-i686-powerpc-toolchain-gmae-5.4.sh -y ; fi
  41 + - 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
  42 + - if [[ "${INSTALL_TOOLCHAIN}" == *mips* ]]; then sh eldk-eglibc-i686-mips-toolchain-gmae-5.4.sh -y ; fi
  43 +
  44 +script:
  45 + # the execution sequence for each test
  46 + - echo ${TEST_CONFIG_CMD}
  47 + - ${TEST_CONFIG_CMD}
  48 + - echo ${TEST_CMD}
  49 + - ${TEST_CMD}
  50 +
  51 +matrix:
  52 + include:
  53 + # we need to build by vendor due to 50min time limit for builds
  54 + # each env setting here is a dedicated build
  55 + - env:
  56 + - TEST_CMD="./MAKEALL -a arm -v atmel"
  57 + CROSS_COMPILE="arm-linux-gnueabi-"
  58 + - env:
  59 + - TEST_CMD="./MAKEALL -a arm -v denx"
  60 + CROSS_COMPILE="arm-linux-gnueabi-"
  61 + - env:
  62 + - TEST_CMD="./MAKEALL -a arm -v freescale"
  63 + CROSS_COMPILE="arm-linux-gnueabi-"
  64 + - env:
  65 + - TEST_CMD="./MAKEALL -a arm -v siemens"
  66 + CROSS_COMPILE="arm-linux-gnueabi-"
  67 + - env:
  68 + - TEST_CMD="./MAKEALL -a arm -v ti"
  69 + CROSS_COMPILE="arm-linux-gnueabi-"
  70 + - env:
  71 + - TEST_CONFIG_CMD="make sandbox_defconfig"
  72 + TEST_CMD="make -j4"
  73 + HOSTCC = "gcc"
  74 + HOSTCXX = "g++"
  75 + - env:
  76 + - TEST_CONFIG_CMD="make sandbox_defconfig"
  77 + TEST_CMD="make -j4"
  78 + HOSTCC = "clang"
  79 + HOSTCXX = "clang++"
  80 + - env:
  81 + - TEST_CMD="./MAKEALL -a mips"
  82 + INSTALL_TOOLCHAIN="mips"
  83 + CROSS_COMPILE="/opt/eldk-5.4/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/mips-linux-"
  84 + - env:
  85 + - TEST_CMD="tools/buildman/buildman --list-error-boards atmel"
  86 + - env:
  87 + - TEST_CMD="tools/buildman/buildman --list-error-boards denx"
  88 + - env:
  89 + - TEST_CMD="tools/buildman/buildman --list-error-boards freescale arm"
  90 + - env:
  91 + - TEST_CMD="tools/buildman/buildman --list-error-boards siemens"
  92 + - env:
  93 + - TEST_CMD="tools/buildman/buildman --list-error-boards ti"
  94 + - env:
  95 + - TEST_CMD="tools/buildman/buildman mips"
  96 + INSTALL_TOOLCHAIN="mips"
  97 + - env:
  98 + - TEST_CMD="tools/buildman/buildman mpc5xx"
  99 + INSTALL_TOOLCHAIN="ppc"
  100 + - env:
  101 + - TEST_CMD="tools/buildman/buildman mpc8xx"
  102 + INSTALL_TOOLCHAIN="ppc"
  103 + - env:
  104 + - TEST_CMD="tools/buildman/buildman mpc5xxx"
  105 + INSTALL_TOOLCHAIN="ppc"
  106 + - env:
  107 + - TEST_CMD="tools/buildman/buildman mpc512x"
  108 + INSTALL_TOOLCHAIN="ppc"
  109 + - env:
  110 + - TEST_CMD="tools/buildman/buildman mpc824x"
  111 + INSTALL_TOOLCHAIN="ppc"
  112 + - env:
  113 + - TEST_CMD="tools/buildman/buildman mpc8260"
  114 + INSTALL_TOOLCHAIN="ppc"
  115 + - env:
  116 + - TEST_CMD="tools/buildman/buildman mpc83xx"
  117 + INSTALL_TOOLCHAIN="ppc"
  118 + - env:
  119 + - TEST_CMD="tools/buildman/buildman mpc85xx"
  120 + INSTALL_TOOLCHAIN="ppc"
  121 + - env:
  122 + - TEST_CMD="tools/buildman/buildman mpc86xx"
  123 + INSTALL_TOOLCHAIN="ppc"
  124 +
  125 + - env:
  126 + - TEST_CMD="tools/buildman/buildman --list-error-boards sandbox x86"
  127 +
  128 + # QA jobs for code analytics
  129 + # static code analysis with cppcheck (we can add --enable=all later)
  130 + - env:
  131 + - TEST_CMD="cppcheck --force --quiet --inline-suppr ."
  132 + # search for TODO within source tree
  133 + - env:
  134 + - TEST_CMD="grep -r TODO ."
  135 + # search for FIXME within source tree
  136 + - env:
  137 + - TEST_CMD="grep -r FIXME ."
  138 + # search for HACK within source tree and ignore HACKKIT board
  139 + - env:
  140 + - TEST_CMD="grep -r HACK . | grep -v HACKKIT"
  141 + script:
  142 + - grep -r HACK . | grep -v HACKKIT
  143 + # some statistics about the code base
  144 + - env:
  145 + - TEST_CMD="sloccount ."
  146 +
  147 +notifications:
  148 + email: false
  149 +
  150 +# TODO make it perfect ;-r