.travis.yml 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. language: objective-c
  2. env:
  3. global:
  4. - secure: "gve1nkeKkwFEG1VAT3i+JwYyAdF0gKXwKx0uxbkBTsmm2M+0MDusohQdFLoEIkSIFktXBIDefoa7iGpLKRfG2VsZLpwJgnvnD0HqbnuR+k+W+bu7BHt4CAaR6GTllsDCjyq9zNyhUThzSnf2WNIpOEF5kHspZlbGfawURuUJH/U="
  5. - secure: "jqVpmWxxBVXu2X8+XJMpKH0cooc2EKz9xKL2znBfYdNafJORSXcFAVbjCX5mZmVDcgIMwDtm2+gIG4P73hzJ2e3S+y2Z9ROJGyXHa3AxUTvXHQsxqzH8coHHqB8vTvfr0t2O5aKfpvpICpSea39r0hzNoMv6Ie5SwBdqj1YY9K0="
  6. matrix:
  7. - NODE_VERSION="v10"
  8. - NODE_VERSION="v9"
  9. - NODE_VERSION="v8"
  10. - NODE_VERSION="v7"
  11. - NODE_VERSION="v6"
  12. - NODE_VERSION="v5"
  13. - NODE_VERSION="v4"
  14. - NODE_VERSION="v0.10"
  15. before_install:
  16. - echo $TRAVIS_OS_NAME
  17. # commit
  18. # ------------------------
  19. # The commit message is used to determine the whether to manually
  20. # invoke a binary publish
  21. - COMMIT_MESSAGE=$(git show -s --format=%B $TRAVIS_COMMIT | tr -d '\n')
  22. # node
  23. # ------------------------
  24. - export PATH=./node_modules/.bin/:$PATH
  25. - rm -rf ~/.nvm && git clone --depth 1 https://github.com/creationix/nvm.git ~/.nvm
  26. - source ~/.nvm/nvm.sh
  27. - nvm install $NODE_VERSION
  28. - nvm use $NODE_VERSION
  29. - npm install -g npm@3
  30. - node --version
  31. - npm --version
  32. - nvm --version
  33. # publish dependencies
  34. # ------------------------
  35. - npm install node-gyp -g
  36. - npm install aws-sdk
  37. install:
  38. # in the first instance we build from source to create the initial binary
  39. # which can then be used to create a package
  40. - npm install --build-from-source
  41. - npm test
  42. before_script:
  43. # Detemine if a publish is required.
  44. #
  45. # a) we are building a tag
  46. # b) we put [publish binary] in the commit message
  47. - PUBLISH_BINARY=false
  48. - if [[ $TRAVIS_BRANCH == `git describe --tags --always HEAD` ]]; then PUBLISH_BINARY=true; fi; # a
  49. - if test "${COMMIT_MESSAGE#*'[publish binary]'}" != "$COMMIT_MESSAGE"; then PUBLISH_BINARY=true; fi; # b
  50. # package & publish
  51. # ------------------------
  52. - if [[ $PUBLISH_BINARY == true ]]; then npm run node-pre-gyp package publish; fi;
  53. # clean-up
  54. # ------------------------
  55. - npm run node-pre-gyp clean
  56. - node-gyp clean
  57. script:
  58. # validate
  59. # ------------------------
  60. # Post publishing a release verify that installing will pull down latest
  61. # binary from remote host
  62. - INSTALL_RESULT=0
  63. - if [[ $PUBLISH_BINARY == true ]]; then INSTALL_RESULT=$(npm install --fallback-to-build=false > /dev/null)$? || true; fi;
  64. - npm run node-pre-gyp clean
  65. # failure?
  66. # ------------------------
  67. # if install returned non zero (errored) then we first unpublish and then
  68. # call false so travis will bail at this line.
  69. - if [[ $INSTALL_RESULT != 0 ]]; then npm run node-pre-gyp unpublish; fi;
  70. - if [[ $INSTALL_RESULT != 0 ]]; then echo "returned $INSTALL_RESULT";false; fi;
  71. after_success:
  72. # display all published binaries
  73. - npm run node-pre-gyp info