.travis.yml 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  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. sudo: true
  5. language: c
  6. addons:
  7. apt:
  8. packages:
  9. - cppcheck
  10. - sloccount
  11. - sparse
  12. - bc
  13. - build-essential
  14. - libsdl1.2-dev
  15. - python
  16. - python-virtualenv
  17. cache:
  18. - apt
  19. install:
  20. # install latest device tree compiler
  21. - git clone --depth=1 https://git.kernel.org/pub/scm/utils/dtc/dtc.git /tmp/dtc
  22. - make -j4 -C /tmp/dtc
  23. # prepare buildman environment
  24. - export BUILDMAN_ROOT="root:"
  25. - export BUILDMAN_PPC="ppc:"
  26. - export BUILDMAN_ARM="arm:"
  27. - export BUILDMAN_SANDBOX="sandbox:"
  28. - echo -e "[toolchain]\n${BUILDMAN_ROOT} /\n" > ~/.buildman
  29. - echo -e "${BUILDMAN_PPC} /opt/eldk-5.4/powerpc/sysroots/i686-eldk-linux/usr/bin/powerpc-linux/\n" >> ~/.buildman
  30. - echo -e "${BUILDMAN_ARM} /opt/eldk-5.4/armv5te/sysroots/i686-eldk-linux/usr/bin/armv5te-linux-gnueabi/\n" >> ~/.buildman
  31. - echo -e "${BUILDMAN_SANDBOX} /usr/bin/gcc\n" >> ~/.buildman
  32. - export BUILDMAN_ALIAS="x86:"
  33. - export BUILDMAN_ALIAS_ARM="arm:"
  34. - echo -e "\n\n[toolchain-alias]\n${BUILDMAN_ALIAS} i386\n" >> ~/.buildman
  35. - echo -e "${BUILDMAN_ALIAS_ARM} armv5te\n" >> ~/.buildman
  36. - cat ~/.buildman
  37. - virtualenv /tmp/venv
  38. - . /tmp/venv/bin/activate
  39. - pip install pytest
  40. env:
  41. global:
  42. - PATH=/tmp/dtc:$PATH
  43. - BUILD_DIR=build
  44. - HOSTCC="cc"
  45. - HOSTCXX="c++"
  46. before_script:
  47. # install toolchains based on TOOLCHAIN} variable
  48. - if [[ "${TOOLCHAIN}" == *aarch64* ]]; then ./tools/buildman/buildman --fetch-arch aarch64 ; fi
  49. - 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
  50. - if [[ "${TOOLCHAIN}" == *arm* ]]; then sh eldk-eglibc-i686-arm-toolchain-gmae-5.4.sh -y ; fi
  51. - if [[ "${TOOLCHAIN}" == *avr32* ]]; then ./tools/buildman/buildman --fetch-arch avr32 ; fi
  52. - if [[ "${TOOLCHAIN}" == *i386* ]]; then ./tools/buildman/buildman sandbox --fetch-arch i386 ; fi
  53. - if [[ "${TOOLCHAIN}" == *m68k* ]]; then ./tools/buildman/buildman --fetch-arch m68k ; fi
  54. - if [[ "${TOOLCHAIN}" == *mips* ]]; then ./tools/buildman/buildman --fetch-arch mips ; fi
  55. - 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
  56. - if [[ "${TOOLCHAIN}" == *ppc* ]]; then sh eldk-eglibc-i686-powerpc-toolchain-gmae-5.4.sh -y ; fi
  57. script:
  58. # the execution sequence for each test
  59. - if [[ "${TEST_CMD}" != "" ]]; then
  60. ${TEST_CMD};
  61. fi
  62. - if [[ "${BUILDMAN}" != "" ]]; then
  63. tools/buildman/buildman ${BUILDMAN};
  64. fi
  65. matrix:
  66. include:
  67. # we need to build by vendor due to 50min time limit for builds
  68. # each env setting here is a dedicated build
  69. - env:
  70. - BUILDMAN="arm1136"
  71. TOOLCHAIN="arm"
  72. - env:
  73. - BUILDMAN="arm1136"
  74. TOOLCHAIN="arm"
  75. - env:
  76. - BUILDMAN="arm1176"
  77. TOOLCHAIN="arm"
  78. - env:
  79. - BUILDMAN="arm720t"
  80. TOOLCHAIN="arm"
  81. - env:
  82. - BUILDMAN="arm920t"
  83. TOOLCHAIN="arm"
  84. - env:
  85. - BUILDMAN="atmel -x avr32"
  86. TOOLCHAIN="arm"
  87. - env:
  88. - BUILDMAN="avr32"
  89. TOOLCHAIN="avr32"
  90. - env:
  91. - BUILDMAN="davinci"
  92. TOOLCHAIN="arm"
  93. - env:
  94. - BUILDMAN="denx"
  95. TOOLCHAIN="arm"
  96. - env:
  97. - BUILDMAN="freescale -x powerpc,m68k,aarch64"
  98. TOOLCHAIN="arm"
  99. - env:
  100. - BUILDMAN="sandbox x86"
  101. TOOLCHAIN="i386"
  102. - env:
  103. - BUILDMAN="kirkwood"
  104. TOOLCHAIN="arm"
  105. - env:
  106. - BUILDMAN="m68k"
  107. TOOLCHAIN="m68k"
  108. - env:
  109. - BUILDMAN="mips"
  110. TOOLCHAIN="mips"
  111. - env:
  112. - BUILDMAN="mpc512x"
  113. TOOLCHAIN="ppc"
  114. - env:
  115. - BUILDMAN="mpc5xx"
  116. TOOLCHAIN="ppc"
  117. - env:
  118. - BUILDMAN="mpc5xxx"
  119. TOOLCHAIN="ppc"
  120. - env:
  121. - BUILDMAN="mpc8260"
  122. TOOLCHAIN="ppc"
  123. - env:
  124. - BUILDMAN="mpc83xx"
  125. TOOLCHAIN="ppc"
  126. - env:
  127. - BUILDMAN="mpc85xx -x freescale"
  128. TOOLCHAIN="ppc"
  129. - env:
  130. - BUILDMAN="mpc85xx -x t208xrdb -x t4qds -x t102* -x p1_p2_rdb_pc -x p1010rdb -x corenet_ds -x b4860qds -x sbc8548 -x bsc91*"
  131. TOOLCHAIN="ppc"
  132. - env:
  133. - BUILDMAN="t208xrdb t4qds t102*"
  134. TOOLCHAIN="ppc"
  135. - env:
  136. - BUILDMAN="p1_p2_rdb_pc p1010rdb"
  137. TOOLCHAIN="ppc"
  138. - env:
  139. - BUILDMAN="corenet_ds b4860qds sbc8548 bsc91*"
  140. TOOLCHAIN="ppc"
  141. - env:
  142. - BUILDMAN="mpc86xx"
  143. TOOLCHAIN="ppc"
  144. - env:
  145. - BUILDMAN="mpc8xx"
  146. TOOLCHAIN="ppc"
  147. - env:
  148. - BUILDMAN="siemens"
  149. TOOLCHAIN="arm"
  150. - env:
  151. - BUILDMAN="ti"
  152. TOOLCHAIN="arm"
  153. - env:
  154. - BUILDMAN="aarch64"
  155. TOOLCHAIN="aarch64"
  156. # QA jobs for code analytics
  157. # static code analysis with cppcheck (we can add --enable=all later)
  158. - env:
  159. - TEST_CMD="cppcheck --force --quiet --inline-suppr ."
  160. # search for TODO within source tree
  161. - env:
  162. - TEST_CMD="grep -r TODO ."
  163. # search for FIXME within source tree
  164. - env:
  165. - TEST_CMD="grep -r FIXME ."
  166. # search for HACK within source tree and ignore HACKKIT board
  167. - env:
  168. - TEST_CMD="grep -r HACK . | grep -v HACKKIT"
  169. script:
  170. - grep -r HACK . | grep -v HACKKIT
  171. # some statistics about the code base
  172. - env:
  173. - TEST_CMD="sloccount ."
  174. # test/py
  175. - env:
  176. - TEST_CMD="./test/py/test.py --bd sandbox --build"
  177. # TODO make it perfect ;-r