.travis.yml 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  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 build-essential
  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. - export BUILDMAN_ARM="arm:"
  18. - export BUILDMAN_SANDBOX="sandbox:"
  19. - echo -e "[toolchain]\n${BUILDMAN_ROOT} /\n" > ~/.buildman
  20. - echo -e "${BUILDMAN_MIPS} /opt/eldk-5.4/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/\n" >> ~/.buildman
  21. - echo -e "${BUILDMAN_PPC} /opt/eldk-5.4/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux/\n" >> ~/.buildman
  22. - echo -e "${BUILDMAN_ARM} /opt/eldk-5.4/armv5te/sysroots/i686-eldk-linux/usr/bin/armv5te-linux-gnueabi/\n" >> ~/.buildman
  23. - echo -e "${BUILDMAN_SANDBOX} /usr/bin/gcc\n" >> ~/.buildman
  24. - export BUILDMAN_ALIAS="x86:"
  25. - export BUILDMAN_ALIAS_ARM="arm:"
  26. - echo -e "\n\n[toolchain-alias]\n${BUILDMAN_ALIAS} i386\n" >> ~/.buildman
  27. - echo -e "${BUILDMAN_ALIAS_ARM} armv5te\n" >> ~/.buildman
  28. - cat ~/.buildman
  29. env:
  30. global:
  31. - PATH=/tmp/dtc:$PATH
  32. - BUILD_DIR=build
  33. - CROSS_COMPILE=""
  34. - HOSTCC="cc"
  35. - HOSTCXX="c++"
  36. - TEST_CONFIG_CMD=""
  37. before_script:
  38. # install toolchains based on INSTALL_TOOLCHAIN} variable
  39. - if [[ "${INSTALL_TOOLCHAIN}" == *arm* ]]; then wget ftp://ftp.denx.de/pub/eldk/5.4/targets/armv5te/eldk-eglibc-i686-arm-toolchain-gmae-5.4.sh ; fi
  40. - if [[ "${INSTALL_TOOLCHAIN}" == *arm* ]]; then sh eldk-eglibc-i686-arm-toolchain-gmae-5.4.sh -y ; fi
  41. - if [[ "${INSTALL_TOOLCHAIN}" == *arm* ]]; then ls -al /opt/eldk-5.4/armv5te/sysroots/i686-eldk-linux/usr/bin/armv5te-linux-gnueabi ; fi
  42. - if [[ "${INSTALL_TOOLCHAIN}" == *avr32* ]]; then ./tools/buildman/buildman --fetch-arch avr32 ; fi
  43. - if [[ "${INSTALL_TOOLCHAIN}" == *i386* ]]; then ./tools/buildman/buildman sandbox --fetch-arch i386 ; fi
  44. - if [[ "${INSTALL_TOOLCHAIN}" == *m68k* ]]; then ./tools/buildman/buildman --fetch-arch m68k ; fi
  45. - 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
  46. - if [[ "${INSTALL_TOOLCHAIN}" == *mips* ]]; then sh eldk-eglibc-i686-mips-toolchain-gmae-5.4.sh -y ; fi
  47. - 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
  48. - if [[ "${INSTALL_TOOLCHAIN}" == *ppc* ]]; then sh eldk-eglibc-i686-powerpc-toolchain-gmae-5.4.sh -y ; fi
  49. script:
  50. # the execution sequence for each test
  51. - echo ${TEST_CONFIG_CMD}
  52. - ${TEST_CONFIG_CMD}
  53. - echo ${TEST_CMD}
  54. - ${TEST_CMD}
  55. matrix:
  56. include:
  57. # we need to build by vendor due to 50min time limit for builds
  58. # each env setting here is a dedicated build
  59. - env:
  60. - TEST_CMD="./MAKEALL -a arm -v atmel"
  61. INSTALL_TOOLCHAIN="arm"
  62. CROSS_COMPILE="/opt/eldk-5.4/armv5te/sysroots/i686-eldk-linux/usr/bin/armv5te-linux-gnueabi/arm-linux-gnueabi-"
  63. - env:
  64. - TEST_CMD="./MAKEALL -a arm -v denx"
  65. INSTALL_TOOLCHAIN="arm"
  66. CROSS_COMPILE="/opt/eldk-5.4/armv5te/sysroots/i686-eldk-linux/usr/bin/armv5te-linux-gnueabi/arm-linux-gnueabi-"
  67. - env:
  68. - TEST_CMD="./MAKEALL -a arm -v freescale"
  69. INSTALL_TOOLCHAIN="arm"
  70. CROSS_COMPILE="/opt/eldk-5.4/armv5te/sysroots/i686-eldk-linux/usr/bin/armv5te-linux-gnueabi/arm-linux-gnueabi-"
  71. - env:
  72. - TEST_CMD="./MAKEALL -a arm -v siemens"
  73. INSTALL_TOOLCHAIN="arm"
  74. CROSS_COMPILE="/opt/eldk-5.4/armv5te/sysroots/i686-eldk-linux/usr/bin/armv5te-linux-gnueabi/arm-linux-gnueabi-"
  75. - env:
  76. - TEST_CMD="./MAKEALL -a arm -v ti"
  77. INSTALL_TOOLCHAIN="arm"
  78. CROSS_COMPILE="/opt/eldk-5.4/armv5te/sysroots/i686-eldk-linux/usr/bin/armv5te-linux-gnueabi/arm-linux-gnueabi-"
  79. - env:
  80. - TEST_CONFIG_CMD="make sandbox_defconfig"
  81. TEST_CMD="make -j4"
  82. HOSTCC = "gcc"
  83. HOSTCXX = "g++"
  84. - env:
  85. - TEST_CONFIG_CMD="make sandbox_defconfig"
  86. TEST_CMD="make -j4"
  87. HOSTCC = "clang"
  88. HOSTCXX = "clang++"
  89. - env:
  90. - TEST_CMD="./MAKEALL -a mips"
  91. INSTALL_TOOLCHAIN="mips"
  92. CROSS_COMPILE="/opt/eldk-5.4/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/mips-linux-"
  93. - env:
  94. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  95. TEST_CMD="tools/buildman/buildman --list-error-boards arm1136"
  96. INSTALL_TOOLCHAIN="arm"
  97. - env:
  98. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  99. TEST_CMD="tools/buildman/buildman --list-error-boards arm1176"
  100. INSTALL_TOOLCHAIN="arm"
  101. - env:
  102. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  103. TEST_CMD="tools/buildman/buildman --list-error-boards arm720t"
  104. INSTALL_TOOLCHAIN="arm"
  105. - env:
  106. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  107. TEST_CMD="tools/buildman/buildman --list-error-boards arm920t"
  108. INSTALL_TOOLCHAIN="arm"
  109. - env:
  110. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  111. TEST_CMD="tools/buildman/buildman --list-error-boards atmel -x avr32"
  112. INSTALL_TOOLCHAIN="arm"
  113. - env:
  114. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  115. TEST_CMD="tools/buildman/buildman --list-error-boards avr32"
  116. INSTALL_TOOLCHAIN="avr32"
  117. - env:
  118. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  119. TEST_CMD="tools/buildman/buildman --list-error-boards davinci"
  120. INSTALL_TOOLCHAIN="arm"
  121. - env:
  122. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  123. TEST_CMD="tools/buildman/buildman --list-error-boards denx"
  124. INSTALL_TOOLCHAIN="arm"
  125. - env:
  126. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  127. TEST_CMD="tools/buildman/buildman --list-error-boards freescale -x powerpc,m68k,aarch64"
  128. INSTALL_TOOLCHAIN="arm"
  129. - env:
  130. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  131. TEST_CMD="tools/buildman/buildman --list-error-boards freescale -x arm,m68k,aarch64"
  132. INSTALL_TOOLCHAIN="ppc"
  133. - env:
  134. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  135. TEST_CMD="tools/buildman/buildman --list-error-boards sandbox x86"
  136. INSTALL_TOOLCHAIN="i386"
  137. - env:
  138. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  139. TEST_CMD="tools/buildman/buildman --list-error-boards kirkwood"
  140. INSTALL_TOOLCHAIN="arm"
  141. - env:
  142. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  143. TEST_CMD="tools/buildman/buildman --list-error-boards m68k"
  144. INSTALL_TOOLCHAIN="m68k"
  145. - env:
  146. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  147. TEST_CMD="tools/buildman/buildman mips"
  148. INSTALL_TOOLCHAIN="mips"
  149. - env:
  150. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  151. TEST_CMD="tools/buildman/buildman mpc512x"
  152. INSTALL_TOOLCHAIN="ppc"
  153. - env:
  154. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  155. TEST_CMD="tools/buildman/buildman mpc5xx"
  156. INSTALL_TOOLCHAIN="ppc"
  157. - env:
  158. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  159. TEST_CMD="tools/buildman/buildman mpc5xxx"
  160. INSTALL_TOOLCHAIN="ppc"
  161. - env:
  162. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  163. TEST_CMD="tools/buildman/buildman mpc8260"
  164. INSTALL_TOOLCHAIN="ppc"
  165. - env:
  166. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  167. TEST_CMD="tools/buildman/buildman mpc83xx"
  168. INSTALL_TOOLCHAIN="ppc"
  169. - env:
  170. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  171. TEST_CMD="tools/buildman/buildman mpc85xx"
  172. INSTALL_TOOLCHAIN="ppc"
  173. - env:
  174. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  175. TEST_CMD="tools/buildman/buildman mpc86xx"
  176. INSTALL_TOOLCHAIN="ppc"
  177. - env:
  178. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  179. TEST_CMD="tools/buildman/buildman mpc8xx"
  180. INSTALL_TOOLCHAIN="ppc"
  181. - env:
  182. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  183. TEST_CMD="tools/buildman/buildman --list-error-boards siemens"
  184. INSTALL_TOOLCHAIN="arm"
  185. - env:
  186. - TEST_CONFIG_CMD="tools/buildman/buildman --list-tool-chains"
  187. TEST_CMD="tools/buildman/buildman --list-error-boards ti"
  188. INSTALL_TOOLCHAIN="arm"
  189. # QA jobs for code analytics
  190. # static code analysis with cppcheck (we can add --enable=all later)
  191. - env:
  192. - TEST_CMD="cppcheck --force --quiet --inline-suppr ."
  193. # search for TODO within source tree
  194. - env:
  195. - TEST_CMD="grep -r TODO ."
  196. # search for FIXME within source tree
  197. - env:
  198. - TEST_CMD="grep -r FIXME ."
  199. # search for HACK within source tree and ignore HACKKIT board
  200. - env:
  201. - TEST_CMD="grep -r HACK . | grep -v HACKKIT"
  202. script:
  203. - grep -r HACK . | grep -v HACKKIT
  204. # some statistics about the code base
  205. - env:
  206. - TEST_CMD="sloccount ."
  207. notifications:
  208. email: false
  209. # TODO make it perfect ;-r