.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
This commit is contained in:
Meier, Roger 2014-11-19 15:26:18 +01:00 committed by Tom Rini
parent bd5053ffa5
commit c7cb334d14

150
.travis.yml Normal file
View File

@ -0,0 +1,150 @@
# 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
- sudo apt-get install -qq cppcheck sloccount sparse bc libsdl-dev gcc-arm-linux-gnueabi gcc-arm-linux-gnueabihf
# 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:"
- echo -e "[toolchain]\\n${BUILDMAN_ROOT} /\n" > ~/.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
- export BUILDMAN_ALIAS="x86:"
- echo -e "[toolchain-alias]\\n${BUILDMAN_ALIAS} i386" >> ~/.buildman
- 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
- 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
- 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
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"
CROSS_COMPILE="arm-linux-gnueabi-"
- env:
- TEST_CMD="./MAKEALL -a arm -v denx"
CROSS_COMPILE="arm-linux-gnueabi-"
- env:
- TEST_CMD="./MAKEALL -a arm -v freescale"
CROSS_COMPILE="arm-linux-gnueabi-"
- env:
- TEST_CMD="./MAKEALL -a arm -v siemens"
CROSS_COMPILE="arm-linux-gnueabi-"
- env:
- TEST_CMD="./MAKEALL -a arm -v ti"
CROSS_COMPILE="arm-linux-gnueabi-"
- 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:
- TEST_CMD="tools/buildman/buildman --list-error-boards atmel"
- env:
- TEST_CMD="tools/buildman/buildman --list-error-boards denx"
- env:
- TEST_CMD="tools/buildman/buildman --list-error-boards freescale arm"
- env:
- TEST_CMD="tools/buildman/buildman --list-error-boards siemens"
- env:
- TEST_CMD="tools/buildman/buildman --list-error-boards ti"
- env:
- TEST_CMD="tools/buildman/buildman mips"
INSTALL_TOOLCHAIN="mips"
- env:
- TEST_CMD="tools/buildman/buildman mpc5xx"
INSTALL_TOOLCHAIN="ppc"
- env:
- TEST_CMD="tools/buildman/buildman mpc8xx"
INSTALL_TOOLCHAIN="ppc"
- env:
- TEST_CMD="tools/buildman/buildman mpc5xxx"
INSTALL_TOOLCHAIN="ppc"
- env:
- TEST_CMD="tools/buildman/buildman mpc512x"
INSTALL_TOOLCHAIN="ppc"
- env:
- TEST_CMD="tools/buildman/buildman mpc824x"
INSTALL_TOOLCHAIN="ppc"
- env:
- TEST_CMD="tools/buildman/buildman mpc8260"
INSTALL_TOOLCHAIN="ppc"
- env:
- TEST_CMD="tools/buildman/buildman mpc83xx"
INSTALL_TOOLCHAIN="ppc"
- env:
- TEST_CMD="tools/buildman/buildman mpc85xx"
INSTALL_TOOLCHAIN="ppc"
- env:
- TEST_CMD="tools/buildman/buildman mpc86xx"
INSTALL_TOOLCHAIN="ppc"
- env:
- TEST_CMD="tools/buildman/buildman --list-error-boards sandbox x86"
# 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