.travis.yml 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411
  1. #
  2. # Copyright (c) 2008-2016 the Urho3D project.
  3. #
  4. # Permission is hereby granted, free of charge, to any person obtaining a copy
  5. # of this software and associated documentation files (the "Software"), to deal
  6. # in the Software without restriction, including without limitation the rights
  7. # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  8. # copies of the Software, and to permit persons to whom the Software is
  9. # furnished to do so, subject to the following conditions:
  10. #
  11. # The above copyright notice and this permission notice shall be included in
  12. # all copies or substantial portions of the Software.
  13. #
  14. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  15. # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  16. # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  17. # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  18. # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  19. # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  20. # THE SOFTWARE.
  21. #
  22. ---
  23. language: cpp
  24. compiler: gcc
  25. cache: ccache
  26. sudo: false
  27. addons: {apt: {sources: &default_sources [george-edison55-precise-backports, kubuntu-backports], packages: &default_packages [cmake, doxygen, graphviz]}}
  28. env:
  29. global:
  30. - secure: SLJCjkjDsTMbCIV9Wecz5JATnhk0fuzlnLMeZdvvFDv+8NL8cXyutkU0VfyRSLf3HSD1Js79a6fRMROyVGWj/w/BRrjqGnZzsB6+ZeJNnadiVIF5Gh+w90We5ccvSp2G4DyYgwkNnkKlJK7zNEWGu/K+bHL1EOCA+EIVrFMyA44=
  31. - secure: ecj/PwpbHkH9AYFsc2TMeRuNm5E3xMM8A0x4AcGhzpwDuZWdFx3R1T4G9u45Z5aUyTJWGqOeX1JPaEVVFZuYnNBKRy0kmiUrM9EE0j7WsT57K48tP1ysn2ynyvHgbYkKOfYR0t8XAMWTBbulT9DVVk3DS69//2WgiXGDVUEJTyI=
  32. - numjobs=4
  33. - USE_CCACHE=1
  34. - CCACHE_SLOPPINESS=pch_defines,time_macros
  35. - CCACHE_COMPRESS=1
  36. - CCACHE_MAXSIZE=100M
  37. - URHO3D_DEPLOYMENT_TARGET=generic
  38. matrix:
  39. fast_finish: true
  40. exclude:
  41. - compiler: gcc
  42. include:
  43. - &Linux-64bit
  44. addons: {apt: {sources: [*default_sources, ubuntu-toolchain-r-test], packages: [g++-4.9, &linux_packages [*default_packages, libasound2-dev, libpulse-dev, rpm]]}}
  45. env: LINUX=1 URHO3D_LIB_TYPE=STATIC URHO3D_UPDATE_SOURCE_TREE=1 COVERITY_SCAN_THRESHOLD=100 SF_DEFAULT=linux:Linux-64bit-STATIC.tar.gz
  46. - &Linux-64bit-shared
  47. addons: {apt: {sources: *default_sources, packages: *linux_packages}}
  48. env: LINUX=1 URHO3D_LIB_TYPE=SHARED
  49. - <<: *Linux-64bit-shared
  50. compiler: clang
  51. env: LINUX=1 URHO3D_LIB_TYPE=STATIC
  52. - <<: *Linux-64bit-shared
  53. compiler: clang
  54. - &Linux-32bit
  55. addons: {apt: {sources: *default_sources, packages: [*linux_packages, g++-multilib, "libxrandr-dev:i386", "libglapi-mesa:i386", "libgl1-mesa-glx:i386", "libgl1-mesa-dev:i386", "libxext-dev:i386", "libxrender-dev:i386", lib32readline6-dev]}}
  56. env: LINUX=1 URHO3D_LIB_TYPE=STATIC URHO3D_64BIT=0
  57. - &Linux-32bit-shared
  58. <<: *Linux-32bit
  59. env: LINUX=1 URHO3D_LIB_TYPE=SHARED URHO3D_64BIT=0
  60. - <<: *Linux-32bit
  61. compiler: clang
  62. - <<: *Linux-32bit-shared
  63. compiler: clang
  64. - &MinGW-64bit
  65. compiler: x86_64-w64-mingw32-gcc
  66. addons: {apt: {sources: *default_sources, packages: [*default_packages, gcc-mingw-w64-x86-64, g++-mingw-w64-x86-64, binutils-mingw-w64-x86-64]}}
  67. env: WIN32=1 URHO3D_LIB_TYPE=STATIC
  68. - <<: *MinGW-64bit
  69. compiler: x86_64-w64-mingw32-gcc
  70. env: WIN32=1 URHO3D_LIB_TYPE=SHARED
  71. - <<: *MinGW-64bit
  72. compiler: x86_64-w64-mingw32-gcc
  73. env: WIN32=1 URHO3D_LIB_TYPE=STATIC URHO3D_OPENGL=0
  74. - <<: *MinGW-64bit
  75. compiler: x86_64-w64-mingw32-gcc
  76. env: WIN32=1 URHO3D_LIB_TYPE=SHARED URHO3D_OPENGL=0
  77. # Ubuntu 12.04 LTS does not have up-to-date D3D11 headers, disable the CI build jobs for D3D11 for now until Travis-CI upgrades their OS to 14.04 LTS or better (We may not need these anymore because now we already have CI jobs on AppVeyor to cover the D3D11 build)
  78. # <<: *MinGW-64bit
  79. # compiler: x86_64-w64-mingw32-gcc
  80. # env: WIN32=1 URHO3D_LIB_TYPE=STATIC URHO3D_D3D11=1
  81. # <<: *MinGW-64bit
  82. # compiler: x86_64-w64-mingw32-gcc
  83. # env: WIN32=1 URHO3D_LIB_TYPE=SHARED URHO3D_D3D11=1
  84. - &MinGW-32bit
  85. compiler: i686-w64-mingw32-gcc
  86. addons: {apt: {sources: *default_sources, packages: [*default_packages, gcc-mingw-w64-i686, g++-mingw-w64-i686, binutils-mingw-w64-i686]}}
  87. env: WIN32=1 URHO3D_LIB_TYPE=STATIC URHO3D_64BIT=0
  88. - <<: *MinGW-32bit
  89. compiler: i686-w64-mingw32-gcc
  90. env: WIN32=1 URHO3D_LIB_TYPE=SHARED URHO3D_64BIT=0
  91. - <<: *MinGW-32bit
  92. compiler: i686-w64-mingw32-gcc
  93. env: WIN32=1 URHO3D_LIB_TYPE=STATIC URHO3D_64BIT=0 URHO3D_OPENGL=0
  94. - <<: *MinGW-32bit
  95. compiler: i686-w64-mingw32-gcc
  96. env: WIN32=1 URHO3D_LIB_TYPE=SHARED URHO3D_64BIT=0 URHO3D_OPENGL=0
  97. # <<: *MinGW-32bit
  98. # compiler: i686-w64-mingw32-gcc
  99. # env: WIN32=1 URHO3D_LIB_TYPE=STATIC URHO3D_64BIT=0 URHO3D_D3D11=1
  100. # <<: *MinGW-32bit
  101. # compiler: i686-w64-mingw32-gcc
  102. # env: WIN32=1 URHO3D_LIB_TYPE=SHARED URHO3D_64BIT=0 URHO3D_D3D11=1
  103. before_script:
  104. - rake ci_timer
  105. - export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
  106. - export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
  107. # Travis-CI has a special case handling for release tag where it checks out directly from the tag branch instead of the default 'master' branch
  108. - if [ $RELEASE_TAG ] || ([ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]); then if [ ${TRAVIS_JOB_NUMBER##*.} == 1 ]; then export SITE_UPDATE=1; fi; if [ "$CC" == "gcc" ] && ([ $RELEASE_TAG ] || echo $COMMIT_MESSAGE |grep -cq '\[ci package\]'); then export PACKAGE_UPLOAD=1; fi; fi
  109. - if [ $LINUX ]; then if [ "$URHO3D_64BIT" == "0" ]; then export CMAKE_PREFIX_PATH=/usr/lib/i386-linux-gnu; else export DISPLAY=:99.0; bash -e /etc/init.d/xvfb start; fi; fi
  110. - if [ $WIN32 ]; then if [ "$URHO3D_64BIT" == "0" ]; then export ARCH=i686; else export ARCH=x86_64; fi && export MINGW_PREFIX=/usr/bin/${ARCH}-w64-mingw32; fi
  111. # MinGW package on Ubuntu 12.04 LTS does not come with d3dcompiler.h file which is required by our CI build with URHO3D_OPENGL=0.
  112. # Temporarily workaround the problem by downloading the missing header from Ubuntu 14.04 LTS source package.
  113. - if [ $URHO3D_OPENGL ]; then mkdir -p ../Build/{,generated/{UsingBuildTree,UsingSDK}/}include/Urho3D/ThirdParty && wget -P ../Build/include/Urho3D/ThirdParty https://bazaar.launchpad.net/~ubuntu-branches/ubuntu/trusty/mingw-w64/trusty/download/package-import%40ubuntu.com-20130624192537-vzn12bb7qd5w3iy8/d3dcompiler.h-20120402093420-bk10a737hzitlkgj-65/d3dcompiler.h && for d in UsingBuildTree UsingSDK; do bash -c "cd ../Build/generated/$d/include/Urho3D/ThirdParty && ln -s ../../../../../include/Urho3D/ThirdParty/d3dcompiler.h ."; done; fi
  114. - export PATH=$(whereis -b ccache |grep -o '\S*lib\S*'):$PATH
  115. - if [ $URHO3D_BINDINGS ]; then git clone --depth 1 https://github.com/urho3d/fastcomp-clang.git && export LLVM_CLANG_ROOT=$(pwd)/fastcomp-clang && export CXX=g++-4.9 CC=gcc-4.9 && for compiler in gcc g++; do ln -s $(which ccache) $HOME/$compiler-4.9; done && export PATH=$HOME:$PATH; fi
  116. # For some reason clang compiler toolchain installation in Travis CI VM does not have symlink in the ccache symlinks directory, so workaround it
  117. - if [ "$CC" == "clang" ]; then ln -s $(which ccache) $HOME/clang && ln -s $(which ccache) $HOME/clang++ && export PATH=$HOME:$PATH; fi
  118. - rake ci_setup_cache
  119. script: rake ci && if [ $SITE_UPDATE ]; then rake ci_site_update; fi && if [ $PACKAGE_UPLOAD ]; then rake ci_package_upload && if [ $LINUX ] && [ ! "$URHO3D_64BIT" == "0" ]; then rake ci_package_upload URHO3D_USE_LIB64_RPM=1; fi; fi && rake ci_timer
  120. after_script:
  121. - rake ci_teardown_cache
  122. - if [ ${TRAVIS_JOB_NUMBER##*.} == 1 ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then rake ci_create_mirrors; fi
  123. notifications: {email: {on_success: never, on_failure: change}}
  124. ---
  125. branch: {name: Coverity-Scan, active: no, mandatory: yes}
  126. language: cpp
  127. compiler: gcc
  128. cache: ccache
  129. sudo: false
  130. addons:
  131. apt:
  132. packages: [libasound2-dev, libpulse-dev]
  133. coverity_scan:
  134. project:
  135. name: urho3d/Urho3D
  136. description: Urho3D is a free lightweight, cross-platform 2D and 3D game engine implemented in C++ and released under the MIT license. Greatly inspired by OGRE and Horde3D.
  137. notification_email: [email protected]
  138. build_command_prepend: rake cmake URHO3D_LUAJIT=1 URHO3D_LUAJIT_AMALG=1 URHO3D_SAMPLES=1 URHO3D_TOOLS=1 URHO3D_EXTRAS=1 URHO3D_DATABASE_SQLITE=1 URHO3D_LIB_TYPE=SHARED
  139. build_command: rake make numjobs=4
  140. branch_pattern: .*Coverity-Scan$
  141. env:
  142. global:
  143. - secure: SLJCjkjDsTMbCIV9Wecz5JATnhk0fuzlnLMeZdvvFDv+8NL8cXyutkU0VfyRSLf3HSD1Js79a6fRMROyVGWj/w/BRrjqGnZzsB6+ZeJNnadiVIF5Gh+w90We5ccvSp2G4DyYgwkNnkKlJK7zNEWGu/K+bHL1EOCA+EIVrFMyA44=
  144. - secure: itgWNvH4Zj0hQpkUctVxMwJwVX3hIluVuvUbzO2XG7dxQaMMfcLGwVKgq8X1HOf4dJCUv5WL0jcSMWXbdc8tvqQJwBb5R2Z2JJYpTTAgtmLy7TNn6zgetZtGrYEJuTlxSItbS/NF4iPDO25ih7j5Ma0ffXRpBnlURQaytfYfFaQ=
  145. - LINUX=1
  146. - USE_CCACHE=1
  147. - CCACHE_SLOPPINESS=pch_defines,time_macros
  148. - CCACHE_COMPRESS=1
  149. - CCACHE_MAXSIZE=100M
  150. before_script:
  151. - export TRAVIS_COMMIT=$TRAVIS_COMMIT~
  152. - export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
  153. - export PATH=$(whereis -b ccache |grep -o '\S*lib\S*'):$PATH
  154. - rake ci_setup_cache
  155. script: true
  156. after_script: rake ci_teardown_cache
  157. ---
  158. branch: {name: Annotate, active: no}
  159. language: cpp
  160. compiler: gcc
  161. cache: ccache
  162. sudo: false
  163. addons: {apt: {sources: [kubuntu-backports, ubuntu-toolchain-r-test], packages: [cmake, g++-4.9, libasound2-dev, libpulse-dev]}}
  164. env:
  165. global:
  166. - secure: SLJCjkjDsTMbCIV9Wecz5JATnhk0fuzlnLMeZdvvFDv+8NL8cXyutkU0VfyRSLf3HSD1Js79a6fRMROyVGWj/w/BRrjqGnZzsB6+ZeJNnadiVIF5Gh+w90We5ccvSp2G4DyYgwkNnkKlJK7zNEWGu/K+bHL1EOCA+EIVrFMyA44=
  167. - numjobs=4
  168. - USE_CCACHE=1
  169. - CCACHE_SLOPPINESS=pch_defines,time_macros
  170. - CCACHE_COMPRESS=1
  171. - CCACHE_MAXSIZE=100M
  172. before_script:
  173. - export TRAVIS_COMMIT=$TRAVIS_COMMIT~
  174. - export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
  175. - git clone --depth 1 https://github.com/urho3d/fastcomp-clang.git && export LLVM_CLANG_ROOT=$(pwd)/fastcomp-clang
  176. - export PATH=$(whereis -b ccache |grep -o '\S*lib\S*'):$PATH
  177. - export CXX=g++-4.9 CC=gcc-4.9
  178. - for compiler in gcc g++; do ln -s $(which ccache) $HOME/$compiler-4.9; done && export PATH=$HOME:$PATH
  179. - rake ci_setup_cache
  180. script: rake ci_annotate
  181. after_script: rake ci_teardown_cache
  182. ---
  183. branch: {name: Android-CI, active: yes}
  184. language: android
  185. cache: {directories: $HOME/.ccache}
  186. android: {components: [build-tools-22.0.1]}
  187. jdk: oraclejdk8
  188. sudo: false
  189. addons: {apt: {sources: &default_sources george-edison55-precise-backports, packages: &default_packages [doxygen, graphviz, g++-multilib]}}
  190. env:
  191. global:
  192. - secure: SLJCjkjDsTMbCIV9Wecz5JATnhk0fuzlnLMeZdvvFDv+8NL8cXyutkU0VfyRSLf3HSD1Js79a6fRMROyVGWj/w/BRrjqGnZzsB6+ZeJNnadiVIF5Gh+w90We5ccvSp2G4DyYgwkNnkKlJK7zNEWGu/K+bHL1EOCA+EIVrFMyA44=
  193. - secure: ecj/PwpbHkH9AYFsc2TMeRuNm5E3xMM8A0x4AcGhzpwDuZWdFx3R1T4G9u45Z5aUyTJWGqOeX1JPaEVVFZuYnNBKRy0kmiUrM9EE0j7WsT57K48tP1ysn2ynyvHgbYkKOfYR0t8XAMWTBbulT9DVVk3DS69//2WgiXGDVUEJTyI=
  194. - numjobs=4
  195. - ANDROID=1
  196. - ANDROID_TMP=~/tmp
  197. - USE_CCACHE=1
  198. - CCACHE_SLOPPINESS=pch_defines,time_macros
  199. - CCACHE_COMPRESS=1
  200. - CCACHE_MAXSIZE=100M
  201. matrix:
  202. # x86 and x86_64 emulation currently requires hardware acceleration which Travis-CI cannot provide, so skip testing using AVD for now
  203. - ANDROID_ABI=x86_64 ANDROID_TOOLCHAIN_NAME=x86_64-clang URHO3D_LIB_TYPE=STATIC INSTALL=sys-img-x86_64-android-21 # Using default native API level 21
  204. - ANDROID_ABI=x86_64 ANDROID_TOOLCHAIN_NAME=x86_64-clang URHO3D_LIB_TYPE=SHARED INSTALL=sys-img-x86_64-android-21
  205. - ANDROID_ABI=x86 ANDROID_TOOLCHAIN_NAME=x86-clang URHO3D_LIB_TYPE=STATIC INSTALL=sys-img-x86-android-21 ANDROID_NATIVE_API_LEVEL=21 # 9 is the default but at least 12 is needed when LuaJIT is enabled
  206. - ANDROID_ABI=x86 ANDROID_TOOLCHAIN_NAME=x86-clang URHO3D_LIB_TYPE=SHARED INSTALL=sys-img-x86-android-21 ANDROID_NATIVE_API_LEVEL=21
  207. - ANDROID_ABI=armeabi-v7a ANDROID_TOOLCHAIN_NAME=arm-linux-androideabi-clang URHO3D_LIB_TYPE=STATIC # Using default native API Level 9
  208. - ANDROID_ABI=armeabi-v7a ANDROID_TOOLCHAIN_NAME=arm-linux-androideabi-clang URHO3D_LIB_TYPE=SHARED AVD=21
  209. matrix:
  210. fast_finish: true
  211. include:
  212. # ANDROID_ANDROID_ABI=arm64-v8a uses NEON by default, so the following two CI jobs also test NEON code path in the build
  213. - addons: &newer_gcc {apt: {sources: [*default_sources, ubuntu-toolchain-r-test], packages: [*default_packages, g++-4.9]}}
  214. env: ANDROID_ABI=arm64-v8a ANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang URHO3D_LIB_TYPE=STATIC NO_SDK_SYSIMG=1 # Using default native API level 21
  215. - addons: {<<: *newer_gcc}
  216. env: ANDROID_ABI=arm64-v8a ANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang URHO3D_LIB_TYPE=SHARED NO_SDK_SYSIMG=1
  217. before_script:
  218. - rake ci_timer
  219. - export TRAVIS_COMMIT=$TRAVIS_COMMIT~
  220. - export COMMIT_MESSAGE=$(git log --format=%B -n1 $TRAVIS_COMMIT)
  221. - export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
  222. - if [ $RELEASE_TAG ] || (! [[ $TRAVIS_BRANCH =~ [^-]+-[^-]+-CI ]] && echo $COMMIT_MESSAGE |grep -cq '\[ci package\]'); then export PACKAGE_UPLOAD=1; fi
  223. - git clone --depth 1 --branch strip https://github.com/urho3d/android-ndk.git && export ANDROID_NDK=$(pwd)/android-ndk && if ([ $AVD ] || [ $PACKAGE_UPLOAD ]) && [ $INSTALL ]; then (while :; do echo 'y'; sleep 1; done) |android update sdk --no-ui --all --filter $INSTALL; fi
  224. - if [ "$ANDROID_ABI" == "arm64-v8a" ]; then export PATH=$HOME:$PATH CXX=g++-4.9 CC=gcc-4.9 && for compiler in gcc g++; do ln -s $(which ccache) $HOME/$compiler-4.9; done; fi
  225. - export C_PATH=$(pwd)/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin
  226. - export PATH=$(whereis -b ccache |grep -o '\S*lib\S*'):$C_PATH:$PATH; for f in $C_PATH/{clang,clang++}; do touch -d "2015-01-01 00:00:00 +0800" $f; done
  227. - rake ci_setup_cache
  228. script: rake ci && if [ $PACKAGE_UPLOAD ]; then rake ci_package_upload; fi && rake ci_timer
  229. after_script: rake ci_teardown_cache
  230. ---
  231. branch: {name: RPI-CI, active: yes}
  232. language: cpp
  233. compiler: gcc
  234. cache: ccache
  235. sudo: false
  236. addons: {apt: {sources: &default_sources george-edison55-precise-backports, packages: &default_packages [doxygen, graphviz, g++-multilib, rpm]}}
  237. env:
  238. global:
  239. - secure: SLJCjkjDsTMbCIV9Wecz5JATnhk0fuzlnLMeZdvvFDv+8NL8cXyutkU0VfyRSLf3HSD1Js79a6fRMROyVGWj/w/BRrjqGnZzsB6+ZeJNnadiVIF5Gh+w90We5ccvSp2G4DyYgwkNnkKlJK7zNEWGu/K+bHL1EOCA+EIVrFMyA44=
  240. - secure: ecj/PwpbHkH9AYFsc2TMeRuNm5E3xMM8A0x4AcGhzpwDuZWdFx3R1T4G9u45Z5aUyTJWGqOeX1JPaEVVFZuYnNBKRy0kmiUrM9EE0j7WsT57K48tP1ysn2ynyvHgbYkKOfYR0t8XAMWTBbulT9DVVk3DS69//2WgiXGDVUEJTyI=
  241. - numjobs=4
  242. - RPI=1
  243. - USE_CCACHE=1
  244. - CCACHE_SLOPPINESS=pch_defines,time_macros
  245. - CCACHE_COMPRESS=1
  246. - CCACHE_MAXSIZE=100M
  247. matrix:
  248. # RPI 1
  249. - URHO3D_LIB_TYPE=STATIC
  250. - URHO3D_LIB_TYPE=SHARED
  251. # RPI 2/3
  252. - URHO3D_LIB_TYPE=STATIC RPI_ABI='armeabi-v7a with NEON'
  253. - URHO3D_LIB_TYPE=SHARED RPI_ABI='armeabi-v7a with NEON'
  254. matrix:
  255. fast_finish: true
  256. before_script:
  257. - rake ci_timer
  258. - git clone --depth 1 https://github.com/raspberrypi/tools.git rpi-tools && export RPI_PREFIX=$(pwd)/rpi-tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf && git clone --depth 1 https://github.com/urho3d/rpi-sysroot.git && export RPI_SYSROOT=$(pwd)/rpi-sysroot && for f in $RPI_PREFIX-{gcc,g++}; do touch -d "2015-01-01 00:00:00 +0800" $f; done
  259. - export TRAVIS_COMMIT=$TRAVIS_COMMIT~
  260. - export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
  261. - export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
  262. - if [[ $RELEASE_TAG ]] || (! [[ $TRAVIS_BRANCH =~ [^-]+-[^-]+-CI ]] && echo $COMMIT_MESSAGE |grep -cq '\[ci package\]'); then export PACKAGE_UPLOAD=1; fi
  263. - export PATH=$(whereis -b ccache |grep -o '\S*lib\S*'):${RPI_PREFIX%/*}:$PATH
  264. - rake ci_setup_cache
  265. script: rake ci && if [ $PACKAGE_UPLOAD ]; then rake ci_package_upload; fi && rake ci_timer
  266. after_script: rake ci_teardown_cache
  267. ---
  268. branch: {name: ARM-CI, active: yes}
  269. language: cpp
  270. compiler: gcc
  271. cache: ccache
  272. sudo: false
  273. addons: {apt: {sources: &default_sources [george-edison55-precise-backports, kubuntu-backports], packages: &default_packages [cmake, doxygen, graphviz, g++-multilib, rpm]}}
  274. env:
  275. global:
  276. - secure: SLJCjkjDsTMbCIV9Wecz5JATnhk0fuzlnLMeZdvvFDv+8NL8cXyutkU0VfyRSLf3HSD1Js79a6fRMROyVGWj/w/BRrjqGnZzsB6+ZeJNnadiVIF5Gh+w90We5ccvSp2G4DyYgwkNnkKlJK7zNEWGu/K+bHL1EOCA+EIVrFMyA44=
  277. - secure: ecj/PwpbHkH9AYFsc2TMeRuNm5E3xMM8A0x4AcGhzpwDuZWdFx3R1T4G9u45Z5aUyTJWGqOeX1JPaEVVFZuYnNBKRy0kmiUrM9EE0j7WsT57K48tP1ysn2ynyvHgbYkKOfYR0t8XAMWTBbulT9DVVk3DS69//2WgiXGDVUEJTyI=
  278. - numjobs=4
  279. - ARM=1
  280. - USE_CCACHE=1
  281. - CCACHE_SLOPPINESS=pch_defines,time_macros
  282. - CCACHE_COMPRESS=1
  283. - CCACHE_MAXSIZE=100M
  284. matrix:
  285. # ODROID-X2
  286. - SYSROOT=armhf-sysroot URHO3D_LIB_TYPE=STATIC ARM_ABI_FLAGS='-mcpu=cortex-a9 -mfpu=neon-fp16'
  287. - SYSROOT=armhf-sysroot URHO3D_LIB_TYPE=SHARED ARM_ABI_FLAGS='-mcpu=cortex-a9 -mfpu=neon-fp16'
  288. matrix:
  289. fast_finish: true
  290. include:
  291. # ODROID-C2
  292. - addons: &newer_gcc {apt: {sources: [*default_sources, ubuntu-toolchain-r-test], packages: [*default_packages, g++-4.9]}}
  293. env: SYSROOT=arm64-sysroot URHO3D_LIB_TYPE=STATIC ARM_ABI_FLAGS='-mcpu=cortex-a53'
  294. - addons: {<<: *newer_gcc}
  295. env: SYSROOT=arm64-sysroot URHO3D_LIB_TYPE=SHARED ARM_ABI_FLAGS='-mcpu=cortex-a53'
  296. before_script:
  297. - rake ci_timer
  298. - if [[ $SYSROOT =~ arm64 ]]; then wget https://releases.linaro.org/components/toolchain/binaries/latest-5/aarch64-linux-gnu/gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu.tar.xz -O arm-tools.tar.xz && tar xf arm-tools.tar.xz && rm arm-tools.tar.xz && mv gcc-linaro* gcc-linaro && export ARM_PREFIX=$(pwd)/gcc-linaro/bin/aarch64-linux-gnu PATH=$HOME:$PATH CXX=g++-4.9 CC=gcc-4.9 && for compiler in gcc g++; do ln -s $(which ccache) $HOME/$compiler-4.9; done; fi
  299. - if [[ $SYSROOT =~ armhf ]]; then wget https://releases.linaro.org/components/toolchain/binaries/latest-5/arm-linux-gnueabihf/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf.tar.xz -O arm-tools.tar.xz && tar xf arm-tools.tar.xz && rm arm-tools.tar.xz && mv gcc-linaro* gcc-linaro && export ARM_PREFIX=$(pwd)/gcc-linaro/bin/arm-linux-gnueabihf; fi
  300. - for f in $ARM_PREFIX-{gcc,g++}; do touch -d "2015-01-01 00:00:00 +0800" $f; done
  301. - git clone --depth 1 https://github.com/urho3d/$SYSROOT.git && export ARM_SYSROOT=$(pwd)/$SYSROOT
  302. - export TRAVIS_COMMIT=$TRAVIS_COMMIT~
  303. - export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
  304. - export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
  305. - if [[ $RELEASE_TAG ]] || (! [[ $TRAVIS_BRANCH =~ [^-]+-[^-]+-CI ]] && echo $COMMIT_MESSAGE |grep -cq '\[ci package\]'); then export PACKAGE_UPLOAD=1; fi
  306. - export PATH=$(whereis -b ccache |grep -o '\S*lib\S*'):${ARM_PREFIX%/*}:$PATH
  307. - rake ci_setup_cache
  308. script: rake ci && if [[ $PACKAGE_UPLOAD ]]; then rake ci_package_upload && if [[ "$SYSROOT" == "arm64-sysroot" ]]; then rake ci_package_upload URHO3D_USE_LIB64_RPM=1; fi; fi && rake ci_timer
  309. after_script: rake ci_teardown_cache
  310. ---
  311. branch: {name: OSX-CI, active: yes, mandatory: yes}
  312. language: objective-c
  313. cache: {directories: $HOME/.ccache}
  314. osx_image: xcode7.1
  315. env:
  316. global:
  317. - secure: SLJCjkjDsTMbCIV9Wecz5JATnhk0fuzlnLMeZdvvFDv+8NL8cXyutkU0VfyRSLf3HSD1Js79a6fRMROyVGWj/w/BRrjqGnZzsB6+ZeJNnadiVIF5Gh+w90We5ccvSp2G4DyYgwkNnkKlJK7zNEWGu/K+bHL1EOCA+EIVrFMyA44=
  318. - secure: ecj/PwpbHkH9AYFsc2TMeRuNm5E3xMM8A0x4AcGhzpwDuZWdFx3R1T4G9u45Z5aUyTJWGqOeX1JPaEVVFZuYnNBKRy0kmiUrM9EE0j7WsT57K48tP1ysn2ynyvHgbYkKOfYR0t8XAMWTBbulT9DVVk3DS69//2WgiXGDVUEJTyI=
  319. - numjobs=3
  320. - OSX=1
  321. - USE_CCACHE=1
  322. - CCACHE_SLOPPINESS=pch_defines,time_macros
  323. - CCACHE_COMPRESS=1
  324. - CCACHE_MAXSIZE=300M
  325. matrix:
  326. - MAKEFILE=1 URHO3D_LIB_TYPE=SHARED URHO3D_DEPLOYMENT_TARGET=generic
  327. - XCODE=1 URHO3D_LIB_TYPE=STATIC CMAKE_OSX_DEPLOYMENT_TARGET=10.11 SF_DEFAULT=mac:OSX-64bit-STATIC.tar.gz
  328. - XCODE=1 URHO3D_LIB_TYPE=SHARED CMAKE_OSX_DEPLOYMENT_TARGET=10.11
  329. - XCODE=1 IOS=1 URHO3D_LIB_TYPE=STATIC IPHONEOS_DEPLOYMENT_TARGET=9.1 sdk=iphonesimulator
  330. matrix:
  331. fast_finish: true
  332. before_script:
  333. - rake ci_timer
  334. - export TRAVIS_COMMIT=$TRAVIS_COMMIT~
  335. - export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
  336. - export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
  337. - if [ $XCODE ] && ([ $RELEASE_TAG ] || (! [[ $TRAVIS_BRANCH =~ [^-]+-[^-]+-CI ]] && echo $COMMIT_MESSAGE |grep -cq '\[ci package\]')); then export PACKAGE_UPLOAD=1; fi
  338. - travis_retry brew update >/dev/null
  339. - which cmake >/dev/null 2>&1 || cmake=cmake
  340. - if [ $PACKAGE_UPLOAD ]; then doxygen='doxygen graphviz'; fi
  341. - travis_retry brew install ccache $cmake $doxygen
  342. - whitelist='brew-cask ccache cmake doxygen graphviz libpng libyaml md5deep openssl pkg-config readline'
  343. - for f in $(brew list); do [[ $whitelist =~ $f ]] || brew uninstall --force $f; done
  344. - for f in $(brew cask list |grep -v Uninstalling); do [[ $whitelist =~ $f ]] || brew cask uninstall --force $f; done
  345. - brew cleanup
  346. - export PATH=$(brew info ccache |grep -o '\S*lib\S*'):$PATH
  347. - if [ $XCODE ]; then sudo cp -p $(which ccache) $(dirname $(xcodebuild -find-executable clang)) && for compiler in clang clang++; do path=$(xcodebuild -find-executable $compiler); sudo mv $path{,.orig} && sudo ln -sf $(dirname $path)/clang.orig /usr/bin/$compiler && sudo ln -sf ccache $path; done && if [ $IOS ]; then redundant=AppleTV,Watch; elif [ $TVOS ]; then redundant=iPhone,Watch; else redundant=iPhone,AppleTV,Watch; fi && eval sudo rm -rf /Applications/Xcode.app/Contents/Developer/Platforms/{$redundant}{OS,Simulator}.platform; if echo $COMMIT_MESSAGE |egrep -cq '\[(ccache clear|xcode 64bit only)\]' || [[ $(ccache -s |grep 'files in cache' |rev |cut -d' ' -f1 |rev) == '0' ]]; then export XCODE_64BIT_ONLY=1; fi; fi
  348. - rake ci_setup_cache
  349. script: rake ci && if [ $PACKAGE_UPLOAD ]; then rake ci_package_upload; fi && rake ci_timer
  350. after_script: rake ci_teardown_cache
  351. # Below samples are excluded from Xcode/OSX build due to build time constraint
  352. data:
  353. excluded_sample:
  354. '#2': [42_PBRMaterials]
  355. '#3': [42_PBRMaterials]
  356. ---
  357. branch: {name: Web-CI, active: yes}
  358. language: cpp
  359. compiler: gcc
  360. cache: ccache
  361. sudo: false
  362. addons: {apt: {sources: [george-edison55-precise-backports, kubuntu-backports, ubuntu-toolchain-r-test], packages: [cmake, doxygen, graphviz, g++-4.9]}}
  363. env:
  364. global:
  365. - secure: SLJCjkjDsTMbCIV9Wecz5JATnhk0fuzlnLMeZdvvFDv+8NL8cXyutkU0VfyRSLf3HSD1Js79a6fRMROyVGWj/w/BRrjqGnZzsB6+ZeJNnadiVIF5Gh+w90We5ccvSp2G4DyYgwkNnkKlJK7zNEWGu/K+bHL1EOCA+EIVrFMyA44=
  366. - secure: ecj/PwpbHkH9AYFsc2TMeRuNm5E3xMM8A0x4AcGhzpwDuZWdFx3R1T4G9u45Z5aUyTJWGqOeX1JPaEVVFZuYnNBKRy0kmiUrM9EE0j7WsT57K48tP1ysn2ynyvHgbYkKOfYR0t8XAMWTBbulT9DVVk3DS69//2WgiXGDVUEJTyI=
  367. - numjobs=2
  368. - WEB=1
  369. - EMSCRIPTEN_SHARE_DATA=1
  370. - USE_CCACHE=1
  371. - CCACHE_SLOPPINESS=pch_defines,time_macros
  372. - CCACHE_COMPRESS=1
  373. - CCACHE_MAXSIZE=100M
  374. matrix:
  375. - URHO3D_LIB_TYPE=STATIC
  376. - URHO3D_LIB_TYPE=SHARED
  377. matrix:
  378. fast_finish: true
  379. before_script:
  380. - rake ci_timer
  381. - export TRAVIS_COMMIT=$TRAVIS_COMMIT~
  382. - export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
  383. - export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
  384. - if [ $RELEASE_TAG ] || (! [[ $TRAVIS_BRANCH =~ [^-]+-[^-]+-CI ]] && echo $COMMIT_MESSAGE |grep -cq '\[ci package\]'); then export PACKAGE_UPLOAD=1; fi
  385. - export DISPLAY=:99.0; bash -e /etc/init.d/xvfb start
  386. - git clone --depth 1 https://github.com/urho3d/emscripten-sdk.git && emscripten-sdk/emsdk activate --build=Release sdk-master-64bit && source emscripten-sdk/emsdk_env.sh
  387. - export PATH=$(whereis -b ccache |grep -o '\S*lib\S*'):$PATH; for f in $EMSCRIPTEN/{emcc,em++}; do touch -d "2015-09-01 00:00:00 +0800" $f; done
  388. - rake ci_setup_cache
  389. script: rake ci && if [ $PACKAGE_UPLOAD ]; then rake ci_package_upload && if [ "$URHO3D_LIB_TYPE" == "SHARED" ]; then rake ci_emscripten_samples_update; fi; fi && rake ci_timer
  390. after_script: rake ci_teardown_cache
  391. ...
  392. # vi: set ts=2 sw=2 expandtab: