.travis.yml 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. # Build matrix / environment variable are explained on:
  2. # https://docs.travis-ci.com/user/customizing-the-build/
  3. # This file can be validated on:
  4. # http://lint.travis-ci.org/
  5. language: cpp
  6. # Define the matrix explicitly, manually expanding the combinations of (os, compiler, env).
  7. # It is more tedious, but grants us far more flexibility.
  8. matrix:
  9. include:
  10. - os: linux
  11. before_install: chmod -R +x ./ci/*platformio.sh
  12. install: ./ci/install-platformio.sh
  13. script: ./ci/build-platformio.sh
  14. - os: linux
  15. dist: xenial
  16. compiler: gcc
  17. install: ./ci/install-linux.sh && ./ci/log-config.sh
  18. script: ./ci/build-linux-bazel.sh
  19. - os: linux
  20. dist: xenial
  21. compiler: clang
  22. install: ./ci/install-linux.sh && ./ci/log-config.sh
  23. script: ./ci/build-linux-bazel.sh
  24. - os: linux
  25. compiler: gcc
  26. env: BUILD_TYPE=Debug VERBOSE=1 CXX_FLAGS=-std=c++11
  27. - os: linux
  28. compiler: clang
  29. env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 -Wgnu-zero-variadic-macro-arguments
  30. - os: linux
  31. compiler: clang
  32. env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 NO_EXCEPTION=ON NO_RTTI=ON COMPILER_IS_GNUCXX=ON
  33. - os: osx
  34. compiler: gcc
  35. env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 HOMEBREW_LOGS=~/homebrew-logs HOMEBREW_TEMP=~/homebrew-temp
  36. - os: osx
  37. compiler: clang
  38. env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 HOMEBREW_LOGS=~/homebrew-logs HOMEBREW_TEMP=~/homebrew-temp
  39. # These are the install and build (script) phases for the most common entries in the matrix. They could be included
  40. # in each entry in the matrix, but that is just repetitive.
  41. install:
  42. - ./ci/install-${TRAVIS_OS_NAME}.sh
  43. - . ./ci/env-${TRAVIS_OS_NAME}.sh
  44. - ./ci/log-config.sh
  45. script: ./ci/travis.sh
  46. # This section installs the necessary dependencies.
  47. addons:
  48. apt:
  49. # List of whitelisted in travis packages for ubuntu-precise can be found here:
  50. # https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-precise
  51. # List of whitelisted in travis apt-sources:
  52. # https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json
  53. sources:
  54. - ubuntu-toolchain-r-test
  55. - llvm-toolchain-precise-3.9
  56. packages:
  57. - g++-4.9
  58. - clang-3.9
  59. update: true
  60. homebrew:
  61. packages:
  62. - ccache
  63. - gcc@4.9
  64. - llvm@4
  65. update: true
  66. notifications:
  67. email: false