1c7cb334dSMeier, Roger# Copyright Roger Meier <r.meier@siemens.com> 2c7cb334dSMeier, Roger# SPDX-License-Identifier: GPL-2.0+ 3c7cb334dSMeier, Roger 4c7cb334dSMeier, Roger# build U-Boot on Travis CI - https://travis-ci.org/ 5c7cb334dSMeier, Roger 6*2bb76f33STom Rinisudo: required 7*2bb76f33STom Rinidist: trusty 8e4c1b4d8SStephen Warren 9c7cb334dSMeier, Rogerlanguage: c 10c7cb334dSMeier, Roger 11050c7569SRoger Meieraddons: 12050c7569SRoger Meier apt: 13050c7569SRoger Meier packages: 14050c7569SRoger Meier - cppcheck 15050c7569SRoger Meier - sloccount 16050c7569SRoger Meier - sparse 17050c7569SRoger Meier - bc 18050c7569SRoger Meier - build-essential 19050c7569SRoger Meier - libsdl1.2-dev 2007bf2122SStephen Warren - python 2107bf2122SStephen Warren - python-virtualenv 22050c7569SRoger Meier 23c7cb334dSMeier, Rogercache: 24c7cb334dSMeier, Roger - apt 25c7cb334dSMeier, Roger 26c7cb334dSMeier, Rogerinstall: 27c7cb334dSMeier, Roger # install latest device tree compiler 28c7cb334dSMeier, Roger - git clone --depth=1 https://git.kernel.org/pub/scm/utils/dtc/dtc.git /tmp/dtc 29c7cb334dSMeier, Roger - make -j4 -C /tmp/dtc 30c7cb334dSMeier, Roger # prepare buildman environment 31c7cb334dSMeier, Roger - export BUILDMAN_ROOT="root:" 32c7cb334dSMeier, Roger - export BUILDMAN_PPC="ppc:" 33d9aa0197SHeiko Schocher - export BUILDMAN_ARM="arm:" 34d9aa0197SHeiko Schocher - export BUILDMAN_SANDBOX="sandbox:" 35d9aa0197SHeiko Schocher - echo -e "[toolchain]\n${BUILDMAN_ROOT} /\n" > ~/.buildman 36d9aa0197SHeiko Schocher - echo -e "${BUILDMAN_PPC} /opt/eldk-5.4/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux/\n" >> ~/.buildman 37d9aa0197SHeiko Schocher - echo -e "${BUILDMAN_ARM} /opt/eldk-5.4/armv5te/sysroots/i686-eldk-linux/usr/bin/armv5te-linux-gnueabi/\n" >> ~/.buildman 38d9aa0197SHeiko Schocher - echo -e "${BUILDMAN_SANDBOX} /usr/bin/gcc\n" >> ~/.buildman 39c7cb334dSMeier, Roger - export BUILDMAN_ALIAS="x86:" 40d9aa0197SHeiko Schocher - export BUILDMAN_ALIAS_ARM="arm:" 41d9aa0197SHeiko Schocher - echo -e "\n\n[toolchain-alias]\n${BUILDMAN_ALIAS} i386\n" >> ~/.buildman 42d9aa0197SHeiko Schocher - echo -e "${BUILDMAN_ALIAS_ARM} armv5te\n" >> ~/.buildman 43c7cb334dSMeier, Roger - cat ~/.buildman 4407bf2122SStephen Warren - virtualenv /tmp/venv 4507bf2122SStephen Warren - . /tmp/venv/bin/activate 4607bf2122SStephen Warren - pip install pytest 47c7cb334dSMeier, Roger 48c7cb334dSMeier, Rogerenv: 49c7cb334dSMeier, Roger global: 50c7cb334dSMeier, Roger - PATH=/tmp/dtc:$PATH 51c7cb334dSMeier, Roger - BUILD_DIR=build 52c7cb334dSMeier, Roger - HOSTCC="cc" 53c7cb334dSMeier, Roger - HOSTCXX="c++" 54c7cb334dSMeier, Roger 55c7cb334dSMeier, Rogerbefore_script: 56050c7569SRoger Meier # install toolchains based on TOOLCHAIN} variable 57050c7569SRoger Meier - if [[ "${TOOLCHAIN}" == *aarch64* ]]; then ./tools/buildman/buildman --fetch-arch aarch64 ; fi 58050c7569SRoger Meier - 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 59050c7569SRoger Meier - if [[ "${TOOLCHAIN}" == *arm* ]]; then sh eldk-eglibc-i686-arm-toolchain-gmae-5.4.sh -y ; fi 60050c7569SRoger Meier - if [[ "${TOOLCHAIN}" == *avr32* ]]; then ./tools/buildman/buildman --fetch-arch avr32 ; fi 61050c7569SRoger Meier - if [[ "${TOOLCHAIN}" == *i386* ]]; then ./tools/buildman/buildman sandbox --fetch-arch i386 ; fi 62050c7569SRoger Meier - if [[ "${TOOLCHAIN}" == *m68k* ]]; then ./tools/buildman/buildman --fetch-arch m68k ; fi 63050c7569SRoger Meier - if [[ "${TOOLCHAIN}" == *mips* ]]; then ./tools/buildman/buildman --fetch-arch mips ; fi 64050c7569SRoger Meier - 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 65050c7569SRoger Meier - if [[ "${TOOLCHAIN}" == *ppc* ]]; then sh eldk-eglibc-i686-powerpc-toolchain-gmae-5.4.sh -y ; fi 66c7cb334dSMeier, Roger 67c7cb334dSMeier, Rogerscript: 68c7cb334dSMeier, Roger # the execution sequence for each test 69050c7569SRoger Meier - if [[ "${TEST_CMD}" != "" ]]; then 70050c7569SRoger Meier ${TEST_CMD}; 71050c7569SRoger Meier fi 72050c7569SRoger Meier - if [[ "${BUILDMAN}" != "" ]]; then 73050c7569SRoger Meier tools/buildman/buildman ${BUILDMAN}; 74050c7569SRoger Meier fi 75c7cb334dSMeier, Roger 76c7cb334dSMeier, Rogermatrix: 77c7cb334dSMeier, Roger include: 78c7cb334dSMeier, Roger # we need to build by vendor due to 50min time limit for builds 79c7cb334dSMeier, Roger # each env setting here is a dedicated build 80c7cb334dSMeier, Roger - env: 81050c7569SRoger Meier - BUILDMAN="arm1136" 82050c7569SRoger Meier TOOLCHAIN="arm" 83c7cb334dSMeier, Roger - env: 84050c7569SRoger Meier - BUILDMAN="arm1136" 85050c7569SRoger Meier TOOLCHAIN="arm" 86c7cb334dSMeier, Roger - env: 87050c7569SRoger Meier - BUILDMAN="arm1176" 88050c7569SRoger Meier TOOLCHAIN="arm" 89c7cb334dSMeier, Roger - env: 90050c7569SRoger Meier - BUILDMAN="arm720t" 91050c7569SRoger Meier TOOLCHAIN="arm" 92c7cb334dSMeier, Roger - env: 93050c7569SRoger Meier - BUILDMAN="arm920t" 94050c7569SRoger Meier TOOLCHAIN="arm" 95c7cb334dSMeier, Roger - env: 96050c7569SRoger Meier - BUILDMAN="atmel -x avr32" 97050c7569SRoger Meier TOOLCHAIN="arm" 98c7cb334dSMeier, Roger - env: 99050c7569SRoger Meier - BUILDMAN="avr32" 100050c7569SRoger Meier TOOLCHAIN="avr32" 101c7cb334dSMeier, Roger - env: 102050c7569SRoger Meier - BUILDMAN="davinci" 103050c7569SRoger Meier TOOLCHAIN="arm" 104c7cb334dSMeier, Roger - env: 105050c7569SRoger Meier - BUILDMAN="denx" 106050c7569SRoger Meier TOOLCHAIN="arm" 107d9aa0197SHeiko Schocher - env: 108050c7569SRoger Meier - BUILDMAN="freescale -x powerpc,m68k,aarch64" 109050c7569SRoger Meier TOOLCHAIN="arm" 110d9aa0197SHeiko Schocher - env: 111050c7569SRoger Meier - BUILDMAN="sandbox x86" 112050c7569SRoger Meier TOOLCHAIN="i386" 113d9aa0197SHeiko Schocher - env: 114050c7569SRoger Meier - BUILDMAN="kirkwood" 115050c7569SRoger Meier TOOLCHAIN="arm" 116d9aa0197SHeiko Schocher - env: 117050c7569SRoger Meier - BUILDMAN="m68k" 118050c7569SRoger Meier TOOLCHAIN="m68k" 1198cb2101bSHeiko Schocher - env: 120050c7569SRoger Meier - BUILDMAN="mips" 121050c7569SRoger Meier TOOLCHAIN="mips" 1228cb2101bSHeiko Schocher - env: 123050c7569SRoger Meier - BUILDMAN="mpc512x" 124050c7569SRoger Meier TOOLCHAIN="ppc" 125d9aa0197SHeiko Schocher - env: 126050c7569SRoger Meier - BUILDMAN="mpc5xx" 127050c7569SRoger Meier TOOLCHAIN="ppc" 1288cb2101bSHeiko Schocher - env: 129050c7569SRoger Meier - BUILDMAN="mpc5xxx" 130050c7569SRoger Meier TOOLCHAIN="ppc" 1318cb2101bSHeiko Schocher - env: 132050c7569SRoger Meier - BUILDMAN="mpc8260" 133050c7569SRoger Meier TOOLCHAIN="ppc" 1348cb2101bSHeiko Schocher - env: 135050c7569SRoger Meier - BUILDMAN="mpc83xx" 136050c7569SRoger Meier TOOLCHAIN="ppc" 1378cb2101bSHeiko Schocher - env: 138050c7569SRoger Meier - BUILDMAN="mpc85xx -x freescale" 139050c7569SRoger Meier TOOLCHAIN="ppc" 140d9aa0197SHeiko Schocher - env: 141050c7569SRoger Meier - BUILDMAN="mpc85xx -x t208xrdb -x t4qds -x t102* -x p1_p2_rdb_pc -x p1010rdb -x corenet_ds -x b4860qds -x sbc8548 -x bsc91*" 142050c7569SRoger Meier TOOLCHAIN="ppc" 1438cb2101bSHeiko Schocher - env: 144050c7569SRoger Meier - BUILDMAN="t208xrdb t4qds t102*" 145050c7569SRoger Meier TOOLCHAIN="ppc" 146c7cb334dSMeier, Roger - env: 147050c7569SRoger Meier - BUILDMAN="p1_p2_rdb_pc p1010rdb" 148050c7569SRoger Meier TOOLCHAIN="ppc" 1498cb2101bSHeiko Schocher - env: 150050c7569SRoger Meier - BUILDMAN="corenet_ds b4860qds sbc8548 bsc91*" 151050c7569SRoger Meier TOOLCHAIN="ppc" 152c7cb334dSMeier, Roger - env: 153050c7569SRoger Meier - BUILDMAN="mpc86xx" 154050c7569SRoger Meier TOOLCHAIN="ppc" 155c7cb334dSMeier, Roger - env: 156050c7569SRoger Meier - BUILDMAN="mpc8xx" 157050c7569SRoger Meier TOOLCHAIN="ppc" 158c7cb334dSMeier, Roger - env: 159050c7569SRoger Meier - BUILDMAN="siemens" 160050c7569SRoger Meier TOOLCHAIN="arm" 161c7cb334dSMeier, Roger - env: 162050c7569SRoger Meier - BUILDMAN="ti" 163050c7569SRoger Meier TOOLCHAIN="arm" 164c7cb334dSMeier, Roger - env: 165050c7569SRoger Meier - BUILDMAN="aarch64" 166050c7569SRoger Meier TOOLCHAIN="aarch64" 167c7cb334dSMeier, Roger 168c7cb334dSMeier, Roger # QA jobs for code analytics 169c7cb334dSMeier, Roger # static code analysis with cppcheck (we can add --enable=all later) 170c7cb334dSMeier, Roger - env: 171c7cb334dSMeier, Roger - TEST_CMD="cppcheck --force --quiet --inline-suppr ." 172c7cb334dSMeier, Roger # search for TODO within source tree 173c7cb334dSMeier, Roger - env: 174c7cb334dSMeier, Roger - TEST_CMD="grep -r TODO ." 175c7cb334dSMeier, Roger # search for FIXME within source tree 176c7cb334dSMeier, Roger - env: 177c7cb334dSMeier, Roger - TEST_CMD="grep -r FIXME ." 178c7cb334dSMeier, Roger # search for HACK within source tree and ignore HACKKIT board 179c7cb334dSMeier, Roger - env: 180c7cb334dSMeier, Roger - TEST_CMD="grep -r HACK . | grep -v HACKKIT" 181c7cb334dSMeier, Roger script: 182c7cb334dSMeier, Roger - grep -r HACK . | grep -v HACKKIT 183c7cb334dSMeier, Roger # some statistics about the code base 184c7cb334dSMeier, Roger - env: 185c7cb334dSMeier, Roger - TEST_CMD="sloccount ." 18607bf2122SStephen Warren # test/py 18707bf2122SStephen Warren - env: 18807bf2122SStephen Warren - TEST_CMD="./test/py/test.py --bd sandbox --build" 189c7cb334dSMeier, Roger 190c7cb334dSMeier, Roger# TODO make it perfect ;-r 191