.travis.yml 5.0 KB

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