.travis.yml 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. # Travis-CI configuration file for SuperTux
  2. #
  3. # Configuration manual:
  4. # http://docs.travis-ci.com/user/build-configuration/
  5. #
  6. # Heavily borrowed from SuperTuxKart's travis.yml.
  7. #
  8. # SuperTuxKart's travis.yml file can be found here:
  9. # https://github.com/supertuxkart/stk-code/blob/master/.travis.yml
  10. # License: https://github.com/supertuxkart/stk-code/blob/master/COPYING
  11. #
  12. language: cpp
  13. dist: trusty
  14. sudo: required
  15. compiler:
  16. - gcc
  17. - clang
  18. matrix:
  19. fast_finish: true
  20. exclude:
  21. - compiler: gcc
  22. os: osx
  23. include:
  24. os:
  25. - linux
  26. - osx
  27. env:
  28. global:
  29. # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
  30. # via the "travis encrypt" command using the project repo's public key
  31. - secure: "eVEyzIVjDlB16EPkXmj74tyF9pgX34kpgvBUMXJJ+hduuPwaGC6vl8T164fNQUIua2Z2/PqxmTLJRR3n5Bbkdf859NdX+4JUzc3SoFEKlgcLMYnOQeuimUAiMKxe4vmC4sub5LZVFsp9ORzVYkXgiMBnxiD5GuYxvZPy1lCaH9E="
  32. # BINTRAY_KEY env var
  33. - secure: "E++FmjzZZrvkJpUHZajLUaO1wd0QHcyVidVx8qVeGUJm/khCPBJuhkSe6R2BphcBeeAuhVlsXo26SWCAn89r2KT2OHB/lwtK2CWhO5vOl5bI5o4nFc+m55e2gDIebSBrXQPITEQJpQx1zBL4FVw/A2xQRl+IcjF/EiIzG8Znslc="
  34. # DOWNLOAD_APIKEY env var
  35. - secure: "ZfRyz4HyLtCtHSrCzB+VwdRP3QLbhcXiqsUAhBYNBz6fU8B4l7UchcRrTVsSQJMJeQQ3V7baJsqi4vAcxtd2aV/UDb82aWy9+lwexecjS+fVNh6Ace8j69PVeywpVVonY2Mk/8LeEAvBkjB1OeRlE+gMC08QwOiHqkR2qVcwNYA="
  36. # TRANSIFEX_TOKEN env var
  37. - secure: "K76kd28Ub2wQ58XIk/ARrEPtgdlXqdkTKp2yUHAkxGQccRLe64yelFrBCh74AUJ4UUaYdRqq/s/ArPLh9tzfgSOjEwmUeY9EFMoicIAYAb/bt721utXBFast3p+cDbrlT1I9nOsyiAItX/uMad4Q0kDVDGXk13nDnxrPM5hxJOE="
  38. - GLBINDING_VERSION=2.1.3
  39. matrix:
  40. - BUILD_TYPE="Debug"
  41. - BUILD_TYPE="Release"
  42. - USE_GLBINDING=ON
  43. before_install:
  44. # Possibly should not generate packages for all builds?
  45. - export PACKAGE="ON";
  46. - if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$CC" = "gcc" ] && [ "$BUILD_TYPE" = "Release" ]; then
  47. export RELEASE="ON";
  48. fi;
  49. - if [ "$TRAVIS_OS_NAME" = "osx" ] && [ "$BUILD_TYPE" = "Release" ]; then
  50. export RELEASE="ON";
  51. fi;
  52. - if [ "$TRAVIS_OS_NAME" = "osx" ]; then
  53. brew update;
  54. brew upgrade cmake;
  55. brew install bash libogg libvorbis glew openal-soft sdl2 sdl2_image;
  56. fi
  57. # Try building with GLBinding
  58. # Note: glbindings ./configure needs to be run twice in order to generate a makefile
  59. - if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$USE_GLBINDING" = "ON" ]; then
  60. wget https://github.com/cginternals/glbinding/archive/v$GLBINDING_VERSION.tar.gz -O - | tar xz;
  61. cd glbinding-$GLBINDING_VERSION && ./configure --prefix=/usr && ./configure --prefix=/usr;
  62. cd build && make -j3 && sudo make install;
  63. cd ../..;
  64. fi
  65. - if [ "$TRAVIS_OS_NAME" = "osx" ] && [ "$USE_GLBINDING" = "ON" ]; then
  66. brew install glbinding;
  67. fi
  68. # Fetch the entire git history
  69. - git fetch --unshallow
  70. # Install transifex client:
  71. - if [ "$RELEASE" = "ON" ] && [ ! "$USE_GLBINDING" = "ON" ]; then
  72. sudo easy_install pip;
  73. sudo pip install --upgrade urllib3;
  74. sudo pip install transifex-client;
  75. fi
  76. script:
  77. # Update translation templates (only once per commit)
  78. - if [ "$RELEASE" = "ON" ] && [ ! "$USE_GLBINDING" = "ON" ]; then
  79. ./makepot.sh;
  80. tx init --token=${TRANSIFEX_TOKEN} --force --no-interactive;
  81. tx status;
  82. tx push -s;
  83. fi
  84. - mkdir "build-$BUILD_TYPE"
  85. - cd "build-$BUILD_TYPE"
  86. - cmake .. -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DWARNINGS=ON -DWERROR=ON -DGLBINDING_ENABLED=$USE_GLBINDING -DBUILD_TESTS=ON -DCMAKE_INSTALL_MESSAGE=NEVER -DCMAKE_INSTALL_PREFIX=/usr -DINSTALL_SUBDIR_BIN=bin -DINSTALL_SUBDIR_SHARE=share/supertux2
  87. - make -j3
  88. - make install DESTDIR="/tmp/supertux-$BUILD_TYPE"
  89. - ./test_supertux2
  90. after_success:
  91. - ../.travis/package.sh
  92. deploy:
  93. - provider: script
  94. script: ../.travis/deploy.sh
  95. skip_cleanup: true
  96. on:
  97. all_branches: true
  98. condition: $RELEASE = ON
  99. - provider: releases
  100. api_key:
  101. secure: oOoWGIvtMne9b413EGv3GSaV8PE/X1P3e85hIdTvRdxs5VTWHi9eeWpEknru8N8hQ+iIkvD2QpUvwL6Qgf7myP3OwXWEf7o6+Qxjfl49oJaROTeVUR7uzOYTmYYTCZG0b3jQKYu5JkVqJzwTNmT0GturHkW5pzsAy/rHUDuLfkI=
  102. file: "SuperTux*"
  103. file_glob: true
  104. skip_cleanup: true
  105. on:
  106. tags: true
  107. condition: $RELEASE = ON
  108. addons:
  109. apt:
  110. packages:
  111. - cmake
  112. - build-essential
  113. - libc++-dev
  114. - libogg-dev
  115. - libvorbis-dev
  116. - libglew-dev
  117. - libopenal-dev
  118. - libboost-all-dev
  119. - libsdl2-dev
  120. - libsdl2-image-dev
  121. - python3
  122. - rpm
  123. - sshpass
  124. coverity_scan:
  125. project:
  126. name: "SuperTux/supertux"
  127. description: "Build submitted via Travis CI"
  128. notification_email: supertux-commit@lists.lethargik.org
  129. build_command_prepend: "cmake . && make clean"
  130. build_command: "make -j 3"
  131. branch_pattern: coverity_scan
  132. notifications:
  133. email:
  134. - supertux-commit@lists.lethargik.org
  135. slack:
  136. secure: cH9u9+EfaPGIcmIcy06hxp5coMmBSKorgABXwE5M06hWbwL+4SIaAlOf9QhrOPi7TZKyyI5GXh687pWNtrgUzaBFhNrPOa/tIzr6kJryAkoFBRdn0sOsf/xYyDgTUfzS79HLYxdv7KDckmiPcgTxGGJOJ3797HBeKaEeufefzlU=