.travis.yml 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  1. #
  2. # Copyright (c) 2008-2015 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. cache: ccache
  25. sudo: false
  26. addons: {apt: {sources: &default_sources george-edison55-precise-backports, packages: &default_packages [doxygen, graphviz]}}
  27. env:
  28. global:
  29. - secure: DE9IUM+pIV757GU0ccfDJhA752442pKu3DyBthrzHW9+GbsqbfuJOx045CYNN5vOWutFPC0A51B9WxhLNpXXqD3mfU8MhP1gkF7SskrHvcAPrCyfdqZf1Q8XDP5phm2KbHhhwxQMYmmicd6yj8DPNy2wRoSgPSDp/ZUDk51XZDU=
  30. - secure: AfoHc5tpnYoI2TVGUeE9Xdru+15pd5N4YzO7EWvwmMnrHtNO3retrmKOGpnIyfbP2BeWRTW/z+BI4G0RrfvubjHu2us4wRh6Jq8+UZohBBkM+ldTnyqYHX97q+6ScWBWZGg7dpthd1x/7fmds8dSRzustHUhI7RzPbWEMQH1DGI=
  31. - NUMJOBS=4
  32. - USE_CCACHE=1
  33. - CCACHE_SLOPPINESS=pch_defines,time_macros
  34. - CCACHE_COMPRESS=1
  35. matrix:
  36. fast_finish: true
  37. include:
  38. - &Linux-64bit
  39. addons: {apt: {sources: *default_sources, packages: &linux_packages [*default_packages, libasound2-dev, rpm]}}
  40. compiler: gcc-64bit-static
  41. env: LINUX=1 URHO3D_LIB_TYPE=STATIC
  42. - &Linux-64bit-shared
  43. <<: *Linux-64bit
  44. compiler: gcc-64bit-shared
  45. env: LINUX=1 URHO3D_LIB_TYPE=SHARED
  46. - <<: *Linux-64bit
  47. compiler: clang-64bit-static
  48. - <<: *Linux-64bit-shared
  49. compiler: clang-64bit-shared
  50. - &Linux-32bit
  51. compiler: gcc-32bit-static
  52. 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"]}}
  53. env: LINUX=1 URHO3D_LIB_TYPE=STATIC URHO3D_64BIT=0
  54. - &Linux-32bit-shared
  55. <<: *Linux-32bit
  56. compiler: gcc-32bit-shared
  57. env: LINUX=1 URHO3D_LIB_TYPE=SHARED URHO3D_64BIT=0
  58. - <<: *Linux-32bit
  59. compiler: clang-32bit-static
  60. - <<: *Linux-32bit-shared
  61. compiler: clang-32bit-shared
  62. - &MinGW-64bit
  63. compiler: x86_64-w64-mingw32-gcc-static
  64. addons: {apt: {sources: *default_sources, packages: [*default_packages, gcc-mingw-w64-x86-64, g++-mingw-w64-x86-64, binutils-mingw-w64-x86-64]}}
  65. env: WINDOWS=1 URHO3D_LIB_TYPE=STATIC
  66. - <<: *MinGW-64bit
  67. compiler: x86_64-w64-mingw32-gcc-shared
  68. env: WINDOWS=1 URHO3D_LIB_TYPE=SHARED
  69. - <<: *MinGW-64bit
  70. compiler: x86_64-w64-mingw32-gcc-d3d9-static
  71. env: WINDOWS=1 URHO3D_LIB_TYPE=STATIC URHO3D_OPENGL=0
  72. - <<: *MinGW-64bit
  73. compiler: x86_64-w64-mingw32-gcc-d3d9-shared
  74. env: WINDOWS=1 URHO3D_LIB_TYPE=SHARED URHO3D_OPENGL=0
  75. # 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
  76. # <<: *MinGW-64bit
  77. # compiler: x86_64-w64-mingw32-gcc-d3d11-static
  78. # env: WINDOWS=1 URHO3D_LIB_TYPE=STATIC URHO3D_D3D11=1
  79. # <<: *MinGW-64bit
  80. # compiler: x86_64-w64-mingw32-gcc-d3d11-shared
  81. # env: WINDOWS=1 URHO3D_LIB_TYPE=SHARED URHO3D_D3D11=1
  82. - &MinGW-32bit
  83. compiler: i686-w64-mingw32-gcc-static
  84. addons: {apt: {sources: *default_sources, packages: [*default_packages, gcc-mingw-w64-i686, g++-mingw-w64-i686, binutils-mingw-w64-i686]}}
  85. env: WINDOWS=1 URHO3D_LIB_TYPE=STATIC URHO3D_64BIT=0
  86. - <<: *MinGW-32bit
  87. compiler: i686-w64-mingw32-gcc-shared
  88. env: WINDOWS=1 URHO3D_LIB_TYPE=SHARED URHO3D_64BIT=0
  89. - <<: *MinGW-32bit
  90. compiler: i686-w64-mingw32-gcc-d3d9-static
  91. env: WINDOWS=1 URHO3D_LIB_TYPE=STATIC URHO3D_64BIT=0 URHO3D_OPENGL=0
  92. - <<: *MinGW-32bit
  93. compiler: i686-w64-mingw32-gcc-d3d9-shared
  94. env: WINDOWS=1 URHO3D_LIB_TYPE=SHARED URHO3D_64BIT=0 URHO3D_OPENGL=0
  95. # <<: *MinGW-32bit
  96. # compiler: i686-w64-mingw32-gcc-d3d11-static
  97. # env: WINDOWS=1 URHO3D_LIB_TYPE=STATIC URHO3D_64BIT=0 URHO3D_D3D11=1
  98. # <<: *MinGW-32bit
  99. # compiler: i686-w64-mingw32-gcc-d3d11-shared
  100. # env: WINDOWS=1 URHO3D_LIB_TYPE=SHARED URHO3D_64BIT=0 URHO3D_D3D11=1
  101. before_script:
  102. - export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
  103. - export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
  104. - 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
  105. - 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
  106. - if [ $WINDOWS ]; then if [ "$URHO3D_64BIT" == "0" ]; then export ARCH=i686; else export ARCH=x86_64; fi && export MINGW_PREFIX=/usr/bin/${ARCH}-w64-mingw32; fi
  107. # 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.
  108. # Temporarily workaround the problem by downloading the missing header from Ubuntu 14.04 LTS source package.
  109. - if [ $URHO3D_OPENGL ]; then mkdir -p ../Build/{,generated/{UsingBuildTree,UsingSDK}/}include/Urho3D/ThirdParty && wget -P ../Build/include/Urho3D/ThirdParty http://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
  110. - export PATH=$(whereis -b ccache |grep -o '\S*lib\S*'):$PATH
  111. # For some reason clang compiler toolchain installation in Travis CI VM does not have symlink in the ccache symlinks directory, so workaround it
  112. - if [ "$CC" == "clang" ]; then ln -s $(which ccache) $HOME/clang && ln -s $(which ccache) $HOME/clang++ && export PATH=$HOME:$PATH; fi
  113. - rake ci_setup_cache
  114. script:
  115. - rake ci
  116. - if [ $SITE_UPDATE ]; then rake ci_site_update; fi
  117. - 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
  118. after_script:
  119. - rake ci_teardown_cache
  120. - if [ ${TRAVIS_JOB_NUMBER##*.} == 1 ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then rake ci_create_mirrors; fi
  121. notifications: {email: {on_success: never, on_failure: change}}
  122. ---
  123. branch: {name: Coverity-Scan, active: no, description: For Travis CI - switch CI build to enable Coverity Scan addon.}
  124. language: cpp
  125. compiler: gcc
  126. cache: ccache
  127. sudo: false
  128. addons:
  129. apt:
  130. packages: libasound2-dev
  131. coverity_scan:
  132. project:
  133. name: urho3d/Urho3D
  134. 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.
  135. notification_email: [email protected]
  136. build_command_prepend: rake cmake URHO3D_LUAJIT=1 URHO3D_LUAJIT_AMALG=1 URHO3D_SAMPLES=1 URHO3D_TOOLS=1 URHO3D_EXTRAS=1 URHO3D_LIB_TYPE=SHARED
  137. build_command: rake make numjobs=4
  138. branch_pattern: .*Coverity-Scan$
  139. env:
  140. global:
  141. - secure: DE9IUM+pIV757GU0ccfDJhA752442pKu3DyBthrzHW9+GbsqbfuJOx045CYNN5vOWutFPC0A51B9WxhLNpXXqD3mfU8MhP1gkF7SskrHvcAPrCyfdqZf1Q8XDP5phm2KbHhhwxQMYmmicd6yj8DPNy2wRoSgPSDp/ZUDk51XZDU=
  142. - secure: itgWNvH4Zj0hQpkUctVxMwJwVX3hIluVuvUbzO2XG7dxQaMMfcLGwVKgq8X1HOf4dJCUv5WL0jcSMWXbdc8tvqQJwBb5R2Z2JJYpTTAgtmLy7TNn6zgetZtGrYEJuTlxSItbS/NF4iPDO25ih7j5Ma0ffXRpBnlURQaytfYfFaQ=
  143. - LINUX=1
  144. - USE_CCACHE=1
  145. - CCACHE_SLOPPINESS=pch_defines,time_macros
  146. - CCACHE_COMPRESS=1
  147. before_script:
  148. - export TRAVIS_COMMIT=$TRAVIS_COMMIT~
  149. - export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
  150. - export PATH=$(whereis -b ccache |grep -o '\S*lib\S*'):$PATH
  151. - rake ci_setup_cache
  152. script: true
  153. after_script: rake ci_teardown_cache
  154. ---
  155. branch: {name: Android-CI, active: yes, description: For Travis CI - switch CI build to use Android build environment.}
  156. language: android
  157. cache: { directories: $HOME/.ccache }
  158. sudo: false
  159. addons: {apt: {sources: &default_sources george-edison55-precise-backports, packages: &default_packages [doxygen, graphviz, libasound2-dev, g++-multilib]}}
  160. env:
  161. global:
  162. - secure: DE9IUM+pIV757GU0ccfDJhA752442pKu3DyBthrzHW9+GbsqbfuJOx045CYNN5vOWutFPC0A51B9WxhLNpXXqD3mfU8MhP1gkF7SskrHvcAPrCyfdqZf1Q8XDP5phm2KbHhhwxQMYmmicd6yj8DPNy2wRoSgPSDp/ZUDk51XZDU=
  163. - secure: AfoHc5tpnYoI2TVGUeE9Xdru+15pd5N4YzO7EWvwmMnrHtNO3retrmKOGpnIyfbP2BeWRTW/z+BI4G0RrfvubjHu2us4wRh6Jq8+UZohBBkM+ldTnyqYHX97q+6ScWBWZGg7dpthd1x/7fmds8dSRzustHUhI7RzPbWEMQH1DGI=
  164. - NUMJOBS=4
  165. - ANDROID=1
  166. - ANDROID_TMP=~/tmp
  167. - PACKAGE_JOB_END=9
  168. - CCACHE_SLOPPINESS=pch_defines,time_macros
  169. - CCACHE_COMPRESS=1
  170. matrix:
  171. fast_finish: true
  172. include:
  173. # x86 and x86_64 emulation currently requires hardware acceleration which Travis-CI cannot provide, so skip AVD for now
  174. # env: API=21 ABI=x86_64 URHO3D_LIB_TYPE=SHARED INSTALL=sys-img-x86_64-android-21,tools AVD=test_21_x86_64
  175. # env: API=21 ABI=x86 URHO3D_LIB_TYPE=SHARED INSTALL=sys-img-x86-android-21,tools AVD=test_21_x86
  176. # Travis CI does not create one cache per job at the moment, so workaround it to have still high cache hit/miss ratio
  177. # We use jdk key as the cache storage differentiator! Our library is compiled using NDK so it should not be affected by JDK version
  178. # We have to ensure those jobs with AVD test are run using the correct JDK version, i.e. Oracle JDK 7 which is the default
  179. # We can only cache 5 jobs due to limited supply of valid JDK versions when using Travis CI native ccache support
  180. # The other 5 jobs are cached using our own cache store (originally designed for Travis CI legacy build infra)
  181. - &cache1
  182. jdk: oraclejdk8
  183. env: API=21 ABI=x86_64 URHO3D_LIB_TYPE=STATIC INSTALL=sys-img-x86_64-android-21 USE_CCACHE=1
  184. - &alternative-cache
  185. cache: false
  186. env: API=21 ABI=x86_64 URHO3D_LIB_TYPE=SHARED INSTALL=sys-img-x86_64-android-21 USE_CCACHE=2
  187. - &cache2
  188. jdk: openjdk7
  189. env: API=21 ABI=x86 URHO3D_LIB_TYPE=STATIC INSTALL=sys-img-x86-android-21 USE_CCACHE=1
  190. - <<: *alternative-cache
  191. env: API=21 ABI=x86 URHO3D_LIB_TYPE=SHARED INSTALL=sys-img-x86-android-21 USE_CCACHE=2
  192. - &cache3
  193. jdk: openjdk6
  194. env: API=21 ABI=arm64-v8a URHO3D_LIB_TYPE=STATIC NO_SDK_SYSIMG=1 USE_CCACHE=1
  195. - <<: *alternative-cache
  196. env: API=21 ABI=arm64-v8a URHO3D_LIB_TYPE=SHARED NO_SDK_SYSIMG=1 USE_CCACHE=2
  197. - <<: *alternative-cache
  198. env: API=21 ABI=armeabi-v7a URHO3D_LIB_TYPE=STATIC USE_CCACHE=2
  199. - &cache4
  200. jdk: oraclejdk7
  201. env: API=21 ABI=armeabi-v7a URHO3D_LIB_TYPE=SHARED INSTALL=tools AVD=test_21_armeabi-v7a USE_CCACHE=1
  202. - <<: *alternative-cache
  203. env: API=19 ABI=armeabi-v7a URHO3D_LIB_TYPE=STATIC USE_CCACHE=2
  204. - &cache5
  205. env: API=19 ABI=armeabi-v7a URHO3D_LIB_TYPE=SHARED AVD=test_19_armeabi-v7a USE_CCACHE=1
  206. before_script:
  207. - 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
  208. - export TRAVIS_COMMIT=$TRAVIS_COMMIT~
  209. - export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
  210. - export COMMIT_MESSAGE=$(git log --format=%B -n1 $TRAVIS_COMMIT)
  211. - if [ ${TRAVIS_JOB_NUMBER##*.} -lt $PACKAGE_JOB_END ] && ([ $RELEASE_TAG ] || (! [[ $TRAVIS_BRANCH =~ [^-]+-[^-]+-CI ]] && echo $COMMIT_MESSAGE |grep -cq '\[ci package\]')); then export PACKAGE_UPLOAD=1; fi
  212. - if [ "$ABI" == "x86_64" ]; then export C_PATH=$(pwd)/android-ndk/toolchains/x86_64-4.9/prebuilt/linux-x86_64/bin C_PREFIX=x86_64-linux-android; fi
  213. - if [ "$ABI" == "x86" ]; then export C_PATH=$(pwd)/android-ndk/toolchains/x86-4.9/prebuilt/linux-x86_64/bin C_PREFIX=i686-linux-android; fi
  214. - if [ "$ABI" == "arm64-v8a" ]; then export C_PATH=$(pwd)/android-ndk/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin C_PREFIX=aarch64-linux-android; fi
  215. - if [ "$ABI" == "armeabi-v7a" ]; then export C_PATH=$(pwd)/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin C_PREFIX=arm-linux-androideabi; fi
  216. - export PATH=$(whereis -b ccache |grep -o '\S*lib\S*'):$C_PATH:$PATH; for f in $C_PATH/$C_PREFIX-{gcc,g++}; do touch -d "2015-01-01 00:00:00 +0800" $f; done
  217. - rake ci_setup_cache
  218. script:
  219. - rake ci
  220. - if [ $PACKAGE_UPLOAD ]; then rake ci_package_upload; fi
  221. after_script: rake ci_teardown_cache
  222. ---
  223. branch: {name: RPI-CI, active: yes, description: For Travis CI - switch CI build to use Raspberry-Pi build environment.}
  224. language: cpp
  225. cache: ccache
  226. sudo: false
  227. addons: {apt: {sources: &default_sources george-edison55-precise-backports, packages: &default_packages [doxygen, graphviz, libasound2-dev, g++-multilib, rpm]}}
  228. env:
  229. global:
  230. - secure: DE9IUM+pIV757GU0ccfDJhA752442pKu3DyBthrzHW9+GbsqbfuJOx045CYNN5vOWutFPC0A51B9WxhLNpXXqD3mfU8MhP1gkF7SskrHvcAPrCyfdqZf1Q8XDP5phm2KbHhhwxQMYmmicd6yj8DPNy2wRoSgPSDp/ZUDk51XZDU=
  231. - secure: AfoHc5tpnYoI2TVGUeE9Xdru+15pd5N4YzO7EWvwmMnrHtNO3retrmKOGpnIyfbP2BeWRTW/z+BI4G0RrfvubjHu2us4wRh6Jq8+UZohBBkM+ldTnyqYHX97q+6ScWBWZGg7dpthd1x/7fmds8dSRzustHUhI7RzPbWEMQH1DGI=
  232. - NUMJOBS=4
  233. - RPI=1
  234. - USE_CCACHE=1
  235. - CCACHE_SLOPPINESS=pch_defines,time_macros
  236. - CCACHE_COMPRESS=1
  237. matrix:
  238. fast_finish: true
  239. include:
  240. - compiler: gcc-armeabi-v6-static
  241. env: URHO3D_LIB_TYPE=STATIC
  242. - compiler: gcc-armeabi-v6-shared
  243. env: URHO3D_LIB_TYPE=SHARED
  244. - compiler: gcc-armeabi-v7a-static
  245. env: URHO3D_LIB_TYPE=STATIC RPI_ABI=armeabi-v7a
  246. - compiler: gcc-armeabi-v7a-shared
  247. env: URHO3D_LIB_TYPE=SHARED RPI_ABI=armeabi-v7a
  248. before_script:
  249. - 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 --branch strip 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
  250. - export TRAVIS_COMMIT=$TRAVIS_COMMIT~
  251. - export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
  252. - export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
  253. - if [ $RELEASE_TAG ] || (! [[ $TRAVIS_BRANCH =~ [^-]+-[^-]+-CI ]] && echo $COMMIT_MESSAGE |grep -cq '\[ci package\]'); then export PACKAGE_UPLOAD=1; fi
  254. - export PATH=$(whereis -b ccache |grep -o '\S*lib\S*'):${RPI_PREFIX%/*}:$PATH
  255. - rake ci_setup_cache
  256. script:
  257. - rake ci
  258. - if [ $PACKAGE_UPLOAD ]; then rake ci_package_upload; fi
  259. after_script: rake ci_teardown_cache
  260. ---
  261. branch: {name: OSX-CI, active: yes, description: For Travis CI - switch CI build to use OS X build environment.}
  262. language: objective-c
  263. env:
  264. global:
  265. - secure: DE9IUM+pIV757GU0ccfDJhA752442pKu3DyBthrzHW9+GbsqbfuJOx045CYNN5vOWutFPC0A51B9WxhLNpXXqD3mfU8MhP1gkF7SskrHvcAPrCyfdqZf1Q8XDP5phm2KbHhhwxQMYmmicd6yj8DPNy2wRoSgPSDp/ZUDk51XZDU=
  266. - secure: AfoHc5tpnYoI2TVGUeE9Xdru+15pd5N4YzO7EWvwmMnrHtNO3retrmKOGpnIyfbP2BeWRTW/z+BI4G0RrfvubjHu2us4wRh6Jq8+UZohBBkM+ldTnyqYHX97q+6ScWBWZGg7dpthd1x/7fmds8dSRzustHUhI7RzPbWEMQH1DGI=
  267. - NUMJOBS=3
  268. - OSX=1
  269. - USE_CCACHE=2
  270. - CCACHE_SLOPPINESS=pch_defines,time_macros
  271. - CCACHE_COMPRESS=1
  272. matrix:
  273. - MAKEFILE=1 URHO3D_LIB_TYPE=STATIC
  274. - MAKEFILE=1 URHO3D_LIB_TYPE=SHARED
  275. - MAKEFILE=1 URHO3D_LIB_TYPE=STATIC URHO3D_64BIT=0
  276. - MAKEFILE=1 URHO3D_LIB_TYPE=SHARED URHO3D_64BIT=0
  277. - XCODE=1 URHO3D_LIB_TYPE=STATIC DEPLOYMENT_TARGET=10.8
  278. - XCODE=1 URHO3D_LIB_TYPE=SHARED DEPLOYMENT_TARGET=10.8
  279. - XCODE=1 URHO3D_LIB_TYPE=STATIC DEPLOYMENT_TARGET=10.8 URHO3D_64BIT=0
  280. - XCODE=1 URHO3D_LIB_TYPE=SHARED DEPLOYMENT_TARGET=10.8 URHO3D_64BIT=0
  281. - XCODE=1 IOS=1 URHO3D_LIB_TYPE=STATIC DEPLOYMENT_TARGET=7.0 URHO3D_64BIT=0
  282. - XCODE=1 IOS=1 URHO3D_LIB_TYPE=STATIC DEPLOYMENT_TARGET=7.0
  283. matrix:
  284. fast_finish: true
  285. before_script:
  286. - if [ $IOS ]; then export CI_START_TIME=$(date +%s); fi
  287. - export TRAVIS_COMMIT=$TRAVIS_COMMIT~
  288. - export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
  289. - export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
  290. - if [ $XCODE ] && ([ $RELEASE_TAG ] || (! [[ $TRAVIS_BRANCH =~ [^-]+-[^-]+-CI ]] && echo $COMMIT_MESSAGE |grep -cq '\[ci package\]')); then export PACKAGE_UPLOAD=1; fi
  291. - if [ $XCODE ]; then rvm gemset use global && travis_retry gem install xcpretty; fi
  292. - travis_retry brew update >/dev/null && travis_retry brew install ccache
  293. - if [ $PACKAGE_UPLOAD ]; then travis_retry brew install doxygen graphviz; fi
  294. - export PATH=$(brew info ccache |grep -o '\S*lib\S*'):$PATH
  295. - if [ $XCODE ]; then cp -p $(which ccache) $(dirname $(xcodebuild -find-executable clang)) && for compiler in clang clang++; do path=$(xcodebuild -find-executable $compiler); mv $path{,.orig} && sudo ln -sf $(dirname $path)/clang.orig /usr/bin/$compiler && ln -s ccache $path; done; fi
  296. - rake ci_setup_cache
  297. script:
  298. - rake ci
  299. - if [ $PACKAGE_UPLOAD ]; then rake ci_package_upload; fi
  300. after_script: rake ci_teardown_cache
  301. ---
  302. branch: {name: Emscripten-CI, active: yes, description: For Travis CI - switch CI build to use Emscripten build environment.}
  303. language: objective-c
  304. env:
  305. global:
  306. - secure: DE9IUM+pIV757GU0ccfDJhA752442pKu3DyBthrzHW9+GbsqbfuJOx045CYNN5vOWutFPC0A51B9WxhLNpXXqD3mfU8MhP1gkF7SskrHvcAPrCyfdqZf1Q8XDP5phm2KbHhhwxQMYmmicd6yj8DPNy2wRoSgPSDp/ZUDk51XZDU=
  307. - secure: AfoHc5tpnYoI2TVGUeE9Xdru+15pd5N4YzO7EWvwmMnrHtNO3retrmKOGpnIyfbP2BeWRTW/z+BI4G0RrfvubjHu2us4wRh6Jq8+UZohBBkM+ldTnyqYHX97q+6ScWBWZGg7dpthd1x/7fmds8dSRzustHUhI7RzPbWEMQH1DGI=
  308. - NUMJOBS=3
  309. - EMSCRIPTEN=1
  310. - EMSCRIPTEN_SHARE_DATA=1
  311. - EMSCRIPTEN_EMRUN_BROWSER=chrome
  312. - USE_CCACHE=2
  313. - CCACHE_SLOPPINESS=pch_defines,time_macros
  314. - CCACHE_COMPRESS=1
  315. # TODO: Remove CCACHE_CPP2 env var when Emscripten version has reached beyond 1.31.3
  316. - CCACHE_CPP2=1
  317. matrix:
  318. - URHO3D_LIB_TYPE=STATIC
  319. matrix:
  320. fast_finish: true
  321. before_script:
  322. - export CI_START_TIME=$(date +%s)
  323. - export TRAVIS_COMMIT=$TRAVIS_COMMIT~
  324. - export TAG=$(git describe --exact-match $TRAVIS_COMMIT 2>/dev/null); if [[ $TAG =~ [[:digit:]]+\.[[:digit:]]+ ]]; then export RELEASE_TAG=$TAG; fi
  325. - export COMMIT_MESSAGE=$(git log --format=%B -n 1 $TRAVIS_COMMIT)
  326. - if [ $RELEASE_TAG ] || (! [[ $TRAVIS_BRANCH =~ [^-]+-[^-]+-CI ]] && echo $COMMIT_MESSAGE |grep -cq '\[ci package\]'); then export PACKAGE_UPLOAD=1; fi
  327. - pushd /usr/bin && sudo ln -sf python python2 && popd
  328. - ulimit -Sn 512
  329. - travis_retry brew update >/dev/null && travis_retry brew install ccache
  330. - if [ $PACKAGE_UPLOAD ]; then travis_retry brew install doxygen graphviz; fi
  331. - wget https://s3.amazonaws.com/mozilla-games/emscripten/releases/emsdk-portable.tar.gz && tar xfz emsdk-portable.tar.gz && rm emsdk-portable.tar.gz && cd emsdk_portable && ./emsdk update >/dev/null && sed -i.bak 's/-xvf/-xf/g' emsdk && ./emsdk install latest >/dev/null && ./emsdk activate latest >/dev/null && source ./emsdk_env.sh && export EMSCRIPTEN_ROOT_PATH=$EMSCRIPTEN && export EMSCRIPTEN=1
  332. - export PATH=$(brew info ccache |grep -o '\S*lib\S*'):$EMSCRIPTEN_ROOT_PATH:$PATH
  333. - rake ci_setup_cache
  334. script:
  335. - rake ci
  336. - if [ $PACKAGE_UPLOAD ]; then rake ci_package_upload && rake ci_emscripten_samples_update; fi
  337. after_script: rake ci_teardown_cache
  338. # Below samples are excluded from Emscripten CI build due to build time constraint
  339. data:
  340. excluded_sample:
  341. - 01_HelloWorld
  342. - 02_HelloGUI
  343. - 03_Sprites
  344. - 04_StaticScene
  345. - 05_AnimatingScene
  346. - 26_ConsoleInput
  347. - 29_SoundSynthesis
  348. - 30_LightAnimation
  349. - 31_MaterialAnimation
  350. - 34_DynamicGeometry
  351. - 35_SignedDistanceFieldText
  352. - 37_UIDrag
  353. - 38_SceneAndUILoad
  354. ...
  355. # vi: set ts=2 sw=2 expandtab: