.travis.yml 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. cache:
  2. timeout: 1000
  3. directories:
  4. - $HOME/.opam
  5. - $HOME/neko
  6. - $HOME/apt-cache
  7. - $HOME/hxcache
  8. - $HOME/lua_env
  9. - $HOME/.luarocks
  10. before_cache:
  11. - if [ $TRAVIS_OS_NAME = 'linux' ]; then
  12. sudo apt-get autoclean;
  13. sudo rm -f $HOME/apt-cache/lock || true;
  14. fi
  15. # somehow these files are recreated everytime
  16. - rm -f $HOME/lua_env/lib/liblua51.a
  17. - rm -f $HOME/lua_env/lib/liblua52.a
  18. - rm -f $HOME/lua_env/lib/liblua53.a
  19. - rm -f $HOME/lua_env/lib/libluajit-5.1.a
  20. #- if [ $TRAVIS_OS_NAME = 'osx' ]; then brew cleanup; fi
  21. env:
  22. global:
  23. - OPAMYES=1
  24. # make variables
  25. - ADD_REVISION=1
  26. # nightly builds submit
  27. - secure: "UoGjYvQqt66GWmeLC4Pih1iue5AufVgW8XQOd2Bx839NN/2mQQ9bD1HuONJe+taWBJ+PHInkAjYROYYaiCQUA7B1SXs3oQD7Og6arVcR7kY7XOdAQ2t8ZkxJHTnuYGWW/2gNFBESv+3H17bkXG4rzaSn2LV5PJLOxSjw0ziBUMY="
  28. - secure: "ugpxt+zeYiAiMYKLK96f5TLSxbQAtmDWiumdwaLHl88fIUeefxJJPIF1Xm0AHeYEJE7sD8dLE1dMbRSzOpXFfTmJoQZv19Wjv+2N5B+DaabKjGj1nZG7q3blGa3nUYzWVfFNFiIpM9c5fvW8yiUFzacZE5itEY8+lZQeGsNh+WQ="
  29. sudo: required
  30. dist: trusty
  31. install_linux: &install_linux
  32. # Install dependencies
  33. - export APT_CACHE_DIR=~/apt-cache && mkdir -pv $APT_CACHE_DIR
  34. - sudo apt-get install --reinstall ca-certificates # workaround for "Cannot add PPA: 'ppa:haxe/ocaml'. Please check that the PPA name or format is correct."
  35. - sudo add-apt-repository ppa:haxe/ocaml -y
  36. - sudo apt-get update -y
  37. - sudo apt-get -o dir::cache::archives="$APT_CACHE_DIR" install -y
  38. ocaml
  39. ocaml-native-compilers
  40. ocaml-findlib
  41. libpcre3-dev
  42. zlib1g-dev
  43. libgtk2.0-dev
  44. ninja-build
  45. awscli
  46. $JOB_DEPENDENCIES
  47. # install neko
  48. - if [ ! $DEPLOY_NIGHTLIES ]; then
  49. sudo add-apt-repository ppa:haxe/snapshots -y;
  50. sudo apt-get -o dir::cache::archives="$APT_CACHE_DIR" install -y neko neko-dev;
  51. else
  52. if [ ! -d "$HOME/neko" ]; then
  53. mkdir $HOME/neko;
  54. pushd $HOME/neko;
  55. git clone https://github.com/HaxeFoundation/neko.git .;
  56. git submodule update --init --recursive;
  57. else
  58. pushd $HOME/neko;
  59. if [ ! -d "$HOME/neko/.git" ]; then
  60. git clone https://github.com/HaxeFoundation/neko.git .;
  61. git submodule update --init --recursive;
  62. else
  63. git fetch --all;
  64. git reset --hard origin/master;
  65. git submodule update --init --recursive;
  66. fi;
  67. fi;
  68. cmake . -DSTATIC_DEPS=all -G Ninja || (git clean -dfx && cmake . -DSTATIC_DEPS=all -G Ninja);
  69. ninja download_static_deps || ninja download_static_deps || ninja download_static_deps;
  70. ninja -j 4;
  71. sudo ninja install;
  72. popd;
  73. fi
  74. # Setup JDK
  75. - jdk_switcher use oraclejdk7
  76. - java -version
  77. # ocaml dependencies
  78. - wget https://raw.github.com/ocaml/opam/master/shell/opam_installer.sh -O - | sh -s /usr/local/bin system
  79. - opam update
  80. - opam pin add haxe . --no-action
  81. - opam install haxe --deps-only
  82. # Build haxe
  83. - make package_src -s
  84. - opam config exec -- make -s STATICLINK=1 libs
  85. - opam config exec -- make -s -j STATICLINK=1 haxe
  86. - opam config exec -- make -s haxelib
  87. - make package_bin -s
  88. - ls -l out
  89. - ldd -v ./haxe
  90. - ldd -v ./haxelib
  91. - export PATH="$PATH:$TRAVIS_BUILD_DIR"
  92. - export HAXE_STD_PATH="$TRAVIS_BUILD_DIR/std"
  93. install_osx: &install_osx
  94. # Install dependencies
  95. - travis_retry brew update --merge
  96. - brew uninstall --force brew-cask # https://github.com/caskroom/homebrew-cask/pull/15381
  97. - travis_retry brew tap Homebrew/bundle
  98. - travis_retry brew bundle --file=tests/Brewfile
  99. # install neko
  100. - if [ ! $DEPLOY_NIGHTLIES ]; then
  101. brew install neko --HEAD;
  102. else
  103. if [ ! -d "$HOME/neko" ]; then
  104. mkdir $HOME/neko;
  105. pushd $HOME/neko;
  106. git clone https://github.com/HaxeFoundation/neko.git .;
  107. git submodule update --init --recursive;
  108. else
  109. pushd $HOME/neko;
  110. if [ ! -d "$HOME/neko/.git" ]; then
  111. git clone https://github.com/HaxeFoundation/neko.git .;
  112. git submodule update --init --recursive;
  113. else
  114. git fetch --all;
  115. git reset --hard origin/master;
  116. git submodule update --init --recursive;
  117. fi;
  118. fi;
  119. cmake . -DSTATIC_DEPS=all -G Ninja || (git clean -dfx && cmake . -DSTATIC_DEPS=all -G Ninja);
  120. ninja download_static_deps || ninja download_static_deps || ninja download_static_deps;
  121. ninja -j 4;
  122. sudo ninja install;
  123. popd;
  124. fi
  125. # ocaml dependencies
  126. - opam init
  127. - eval `opam config env`
  128. - opam update
  129. - opam pin add haxe . --no-action
  130. - opam install haxe --deps-only
  131. # Build haxe
  132. - make -s STATICLINK=1 "LIB_PARAMS=/usr/local/opt/zlib/lib/libz.a /usr/local/lib/libpcre.a" libs
  133. - make -s -j STATICLINK=1 "LIB_PARAMS=/usr/local/opt/zlib/lib/libz.a /usr/local/lib/libpcre.a" haxe
  134. - make -s haxelib
  135. - make package_bin -s
  136. - ls -l out
  137. - otool -L ./haxe
  138. - otool -L ./haxelib
  139. - export PATH="$PATH:$TRAVIS_BUILD_DIR"
  140. - export HAXE_STD_PATH="$TRAVIS_BUILD_DIR/std"
  141. matrix:
  142. include:
  143. #########
  144. # linux #
  145. #########
  146. - os: linux
  147. env:
  148. - TEST=neko
  149. - DEPLOY_API_DOCS=1
  150. - DEPLOY_NIGHTLIES=1
  151. # haxeci_decrypt (Deploy source package to ppa:haxe/snapshots.)
  152. - secure: "Mw3p6bDZuqVQ6u7GrwLQfje5hhIOA4+mdqqLXYHP79UKdhgqb91Dn6IbG9vQ1VXVe64W4YZbQAMBMMRX5kEPDl6JvTVGSBhg00Mi69oO5qrCMcBI6f9FntG72YaVvLf+PA7co+vKrnJzaP2M9pe4SH9Ztbhy0YNxULp7NQ8FLsM="
  153. addons:
  154. ssh_known_hosts:
  155. - haxe.org
  156. - api.haxe.org
  157. before_install:
  158. - eval `ssh-agent -s` # for deployment to haxe.org
  159. install: *install_linux
  160. - os: linux
  161. env:
  162. - TEST=macro,js,php,flash9,as3,java,cs,python,lua
  163. - SAUCE=1
  164. addons:
  165. sauce_connect: true
  166. before_install:
  167. - "export DISPLAY=:99.0"
  168. - "sh -e /etc/init.d/xvfb start"
  169. - "export AUDIODEV=null"
  170. install: *install_linux
  171. - os: linux
  172. env:
  173. - TEST=cpp
  174. - HXCPP_COMPILE_THREADS=4
  175. - HXCPP_COMPILE_CACHE=~/hxcache
  176. - JOB_DEPENDENCIES="gcc-multilib g++-multilib"
  177. install: *install_linux
  178. #######
  179. # osx #
  180. #######
  181. - os: osx
  182. osx_image: xcode7.3 # to compile binaries that support older versions of Mac, and 10.11 is the min version that brew provides bottles
  183. env:
  184. - TEST=neko
  185. - DEPLOY_NIGHTLIES=1
  186. install: *install_osx
  187. - os: osx
  188. osx_image: xcode9.1 # to compile faster
  189. env:
  190. - TEST=macro,java,cs,lua,js,php,flash9,python
  191. install: *install_osx
  192. - os: osx
  193. osx_image: xcode9.1 # to compile faster
  194. env:
  195. - TEST=cpp
  196. - HXCPP_COMPILE_CACHE=~/hxcache
  197. - HXCPP_COMPILE_THREADS=4
  198. install: *install_osx
  199. script:
  200. - pushd tests
  201. - mkdir ~/haxelib && haxelib setup ~/haxelib
  202. - haxe -version
  203. - haxe RunCi.hxml
  204. - popd
  205. notifications:
  206. webhooks:
  207. urls:
  208. - https://webhooks.gitter.im/e/95a5fa471c27beee8e7c
  209. on_success: change # options: [always|never|change] default: always
  210. on_failure: always # options: [always|never|change] default: always
  211. on_start: false # default: false