# Copyright Roger Meier # SPDX-License-Identifier: GPL-2.0+ # build U-Boot on Travis CI - https://travis-ci.org/ sudo: true language: c addons: apt: packages: - cppcheck - sloccount - sparse - bc - build-essential - libsdl1.2-dev - python - python-virtualenv cache: - apt install: # 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_PPC="ppc:" - export BUILDMAN_ARM="arm:" - export BUILDMAN_SANDBOX="sandbox:" - echo -e "[toolchain]\n${BUILDMAN_ROOT} /\n" > ~/.buildman - echo -e "${BUILDMAN_PPC} /opt/eldk-5.4/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux/\n" >> ~/.buildman - echo -e "${BUILDMAN_ARM} /opt/eldk-5.4/armv5te/sysroots/i686-eldk-linux/usr/bin/armv5te-linux-gnueabi/\n" >> ~/.buildman - echo -e "${BUILDMAN_SANDBOX} /usr/bin/gcc\n" >> ~/.buildman - export BUILDMAN_ALIAS="x86:" - export BUILDMAN_ALIAS_ARM="arm:" - echo -e "\n\n[toolchain-alias]\n${BUILDMAN_ALIAS} i386\n" >> ~/.buildman - echo -e "${BUILDMAN_ALIAS_ARM} armv5te\n" >> ~/.buildman - cat ~/.buildman - virtualenv /tmp/venv - . /tmp/venv/bin/activate - pip install pytest env: global: - PATH=/tmp/dtc:$PATH - BUILD_DIR=build - HOSTCC="cc" - HOSTCXX="c++" before_script: # install toolchains based on TOOLCHAIN} variable - if [[ "${TOOLCHAIN}" == *aarch64* ]]; then ./tools/buildman/buildman --fetch-arch aarch64 ; fi - if [[ "${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 [[ "${TOOLCHAIN}" == *arm* ]]; then sh eldk-eglibc-i686-arm-toolchain-gmae-5.4.sh -y ; fi - if [[ "${TOOLCHAIN}" == *avr32* ]]; then ./tools/buildman/buildman --fetch-arch avr32 ; fi - if [[ "${TOOLCHAIN}" == *i386* ]]; then ./tools/buildman/buildman sandbox --fetch-arch i386 ; fi - if [[ "${TOOLCHAIN}" == *m68k* ]]; then ./tools/buildman/buildman --fetch-arch m68k ; fi - if [[ "${TOOLCHAIN}" == *mips* ]]; then ./tools/buildman/buildman --fetch-arch mips ; fi - if [[ "${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 [[ "${TOOLCHAIN}" == *ppc* ]]; then sh eldk-eglibc-i686-powerpc-toolchain-gmae-5.4.sh -y ; fi script: # the execution sequence for each test - if [[ "${TEST_CMD}" != "" ]]; then ${TEST_CMD}; fi - if [[ "${BUILDMAN}" != "" ]]; then tools/buildman/buildman ${BUILDMAN}; fi matrix: include: # we need to build by vendor due to 50min time limit for builds # each env setting here is a dedicated build - env: - BUILDMAN="arm1136" TOOLCHAIN="arm" - env: - BUILDMAN="arm1136" TOOLCHAIN="arm" - env: - BUILDMAN="arm1176" TOOLCHAIN="arm" - env: - BUILDMAN="arm720t" TOOLCHAIN="arm" - env: - BUILDMAN="arm920t" TOOLCHAIN="arm" - env: - BUILDMAN="atmel -x avr32" TOOLCHAIN="arm" - env: - BUILDMAN="avr32" TOOLCHAIN="avr32" - env: - BUILDMAN="davinci" TOOLCHAIN="arm" - env: - BUILDMAN="denx" TOOLCHAIN="arm" - env: - BUILDMAN="freescale -x powerpc,m68k,aarch64" TOOLCHAIN="arm" - env: - BUILDMAN="sandbox x86" TOOLCHAIN="i386" - env: - BUILDMAN="kirkwood" TOOLCHAIN="arm" - env: - BUILDMAN="m68k" TOOLCHAIN="m68k" - env: - BUILDMAN="mips" TOOLCHAIN="mips" - env: - BUILDMAN="mpc512x" TOOLCHAIN="ppc" - env: - BUILDMAN="mpc5xx" TOOLCHAIN="ppc" - env: - BUILDMAN="mpc5xxx" TOOLCHAIN="ppc" - env: - BUILDMAN="mpc8260" TOOLCHAIN="ppc" - env: - BUILDMAN="mpc83xx" TOOLCHAIN="ppc" - env: - BUILDMAN="mpc85xx -x freescale" TOOLCHAIN="ppc" - env: - BUILDMAN="mpc85xx -x t208xrdb -x t4qds -x t102* -x p1_p2_rdb_pc -x p1010rdb -x corenet_ds -x b4860qds -x sbc8548 -x bsc91*" TOOLCHAIN="ppc" - env: - BUILDMAN="t208xrdb t4qds t102*" TOOLCHAIN="ppc" - env: - BUILDMAN="p1_p2_rdb_pc p1010rdb" TOOLCHAIN="ppc" - env: - BUILDMAN="corenet_ds b4860qds sbc8548 bsc91*" TOOLCHAIN="ppc" - env: - BUILDMAN="mpc86xx" TOOLCHAIN="ppc" - env: - BUILDMAN="mpc8xx" TOOLCHAIN="ppc" - env: - BUILDMAN="siemens" TOOLCHAIN="arm" - env: - BUILDMAN="ti" TOOLCHAIN="arm" - env: - BUILDMAN="aarch64" TOOLCHAIN="aarch64" # 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 ." # test/py - env: - TEST_CMD="./test/py/test.py --bd sandbox --build" # TODO make it perfect ;-r