.travis.yml 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. #------------------------------------------------------------------------------
  2. # TravisCI configuration file for cpp-ethereum.
  3. #
  4. # The documentation for cpp-ethereum is hosted at http://cpp-ethereum.org
  5. #
  6. # ------------------------------------------------------------------------------
  7. # This file is part of cpp-ethereum.
  8. #
  9. # cpp-ethereum is free software: you can redistribute it and/or modify
  10. # it under the terms of the GNU General Public License as published by
  11. # the Free Software Foundation, either version 3 of the License, or
  12. # (at your option) any later version.
  13. #
  14. # cpp-ethereum is distributed in the hope that it will be useful,
  15. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  17. # GNU General Public License for more details.
  18. #
  19. # You should have received a copy of the GNU General Public License
  20. # along with cpp-ethereum. If not, see <http://www.gnu.org/licenses/>
  21. #
  22. # (c) 2016 cpp-ethereum contributors.
  23. #------------------------------------------------------------------------------
  24. language: cpp
  25. branches:
  26. # We need to whitelist the branches which we want to have "push" automation.
  27. # Pull request automation is not constrained to this set of branches.
  28. only:
  29. - develop
  30. - release
  31. env:
  32. global:
  33. - TRAVIS_BUILD_TYPE=RelWithDebInfo
  34. - TRAVIS_TESTS=On
  35. matrix:
  36. include:
  37. # Ubuntu 14.04 LTS "Trusty Tahr"
  38. # https://en.wikipedia.org/wiki/List_of_Ubuntu_releases#Ubuntu_14.04_LTS_.28Trusty_Tahr.29
  39. #
  40. # TravisCI doesn't directly support any new Ubuntu releases. These is
  41. # some Docker support, which we should probably investigate, at least for
  42. # Ubuntu 16.04 LTS "Xenial Xerus"
  43. # See https://en.wikipedia.org/wiki/List_of_Ubuntu_releases#Ubuntu_16.04_LTS_.28Xenial_Xerus.29.
  44. # See https://github.com/ethereum/cpp-ethereum/issues/3269
  45. - os: linux
  46. dist: trusty
  47. sudo: required
  48. env:
  49. - ZIP_SUFFIX=ubuntu-trusty
  50. # OS X Mavericks (10.9)
  51. # https://en.wikipedia.org/wiki/OS_X_Mavericks
  52. # - disabled because it takes too long with non-binary homebrew
  53. #- os: osx
  54. # osx_image: beta-xcode6.2
  55. # env:
  56. # - ZIP_SUFFIX=osx-mavericks
  57. # OS X Yosemite (10.10)
  58. # https://en.wikipedia.org/wiki/OS_X_Yosemite
  59. # - disabled because it takes too long with non-binary homebrew
  60. #- os: osx
  61. # osx_image: xcode7.1
  62. # env:
  63. # - TRAVIS_TESTS=Off
  64. # - ZIP_SUFFIX=osx-yosemite
  65. # OS X El Capitan (10.11)
  66. # https://en.wikipedia.org/wiki/OS_X_El_Capitan
  67. #
  68. # TODO - This is currently disabled because it is consistently
  69. # running into the 48min timeout. We need to make this process
  70. # quicker.
  71. #
  72. # See https://github.com/ethereum/cpp-ethereum/issues/3267
  73. #
  74. #- os: osx
  75. # osx_image: xcode7.3
  76. # env:
  77. # - TRAVIS_TESTS=Off
  78. # - ZIP_SUFFIX=osx-elcapitan
  79. # macOS Sierra (10.12)
  80. # https://en.wikipedia.org/wiki/MacOS_Sierra
  81. #
  82. # TODO - Tests are currently disabled because they are consistently
  83. # running into the 48min timeout. We need to make this process
  84. # quicker.
  85. #
  86. # See https://github.com/ethereum/cpp-ethereum/issues/3268
  87. - os: osx
  88. osx_image: xcode8
  89. env:
  90. - TRAVIS_TESTS=Off
  91. - ZIP_SUFFIX=macos-sierra
  92. git:
  93. depth: 2
  94. cache:
  95. ccache: true
  96. directories:
  97. - ~/.ethash
  98. install:
  99. - ./scripts/install_deps.sh
  100. before_script:
  101. - if type ccache; then ccache -M 2G; ccache -s; fi
  102. - ./scripts/build.sh $TRAVIS_BUILD_TYPE $TRAVIS_TESTS
  103. - if type ccache; then ccache -s; fi
  104. script:
  105. - cd $TRAVIS_BUILD_DIR/build && ../scripts/tests.sh $TRAVIS_TESTS
  106. deploy:
  107. # This is the deploy target for the native build (Linux and macOS)
  108. # which generates ZIPs per commit. We are in agreement that
  109. # generating ZIPs per commit for the develop branch is probably
  110. # just noise, so we only run this deployment target on 'release'.
  111. #
  112. # Unlike the Appveyor GitHub Releases target, the support in TravisCI
  113. # seemingly doesn't provide a means for passing a description, tag, etc.
  114. # In practice, we are letting the Appveyor CI do all that stuff, and
  115. # then this deployment flow just seems to find that most recent tag,
  116. # and just add our Linux and macOS ZIPs into the same tag, which is
  117. # what we want to happen. But is very accidental and brittle-looking.
  118. #
  119. # The 'skip_cleanup' stops the workspace being cleaned out prior to
  120. # generation of the artifacts. Strange that we should explicitly
  121. # need to do that, but we do.
  122. #
  123. # Tokens in TravisCI can be generated a few different ways. Bob had
  124. # success using the 'travis' gem, and then using that gem to
  125. # create/edit this .travis.yml file, and then cut-and-pasting the
  126. # good bits back out of what it generated. The gem changes all the
  127. # whitespace and deletes comments, so cannot be used as-is. But
  128. # it does generate an appropriate auth token.
  129. #
  130. # See https://docs.travis-ci.com/user/deployment/releases
  131. # See https://blog.travis-ci.com/2013-01-28-token-token-token/
  132. # See https://github.com/ethereum/webthree-umbrella/issues/658
  133. #
  134. - provider: releases
  135. api_key:
  136. secure: HHcAWFjVNwf8b83KVQnEa172Eo7aur+scVCq4BzgPDXnF+v4GDXT7PAaXyWBwIyrFoIJduPCojsiIBP8QZwtjaKgnywnREjaLc0syTCLSeUHcp/+jPRdickvfgHJWG06sU7ZST8/HnGmoOqV/BUlGhHiqma1oJfGEJ6aaG4oza77ZYAxLPxwq9NOuTHVGJwlphcfeevcU3F0C/mxDEEMEz66lDolp4DCP5L4muHlrOCZ+HSjRwz5/anVNVWNO/nM1I0wmI2TRAS0RPzwClVD8iiGJHhZ/WdgenG4nosBG9UQjd/56LLKI25bIJijz/tpe89pCRUJtMYtcXR5C7w8Is05a1GMedBAiT7Bu35qHbpxJeqcw26DJL4U3+IeHfymXpK/E3RAj16bj+mtxxYSEzaae7obCm1rDA1LnPTI94kAea2ZNOUucDK5FaROX/uBXk422xrQTdJpEpg4TLa7GmQGdtyJC0OnzaOTXWg87lbVMq1PndDLE3STqXT5J/wj/WfUtXlN38x9aX7wwrmyCXY3WJ1zzShAgRO9YjRRosMBkahGDj5l75w9KX8yW3C5txcxjPVGSxQIl+bv9FPrBJmU1WOOPYQlHm92JQJus8BXXQCuhg3mEsZQfmGpgrS82NUB15V1nZB3xCXniKcKnQirzbRXLg8wjlPbT9DKGbc=
  137. file: $TRAVIS_BUILD_DIR/cpp-ethereum-$ZIP_SUFFIX.zip
  138. skip_cleanup: true
  139. on:
  140. repo: ethereum/cpp-ethereum
  141. branch: release