| language: objective-c |
| |
| env: |
| global: |
| - secure: "gve1nkeKkwFEG1VAT3i+JwYyAdF0gKXwKx0uxbkBTsmm2M+0MDusohQdFLoEIkSIFktXBIDefoa7iGpLKRfG2VsZLpwJgnvnD0HqbnuR+k+W+bu7BHt4CAaR6GTllsDCjyq9zNyhUThzSnf2WNIpOEF5kHspZlbGfawURuUJH/U=" |
| - secure: "jqVpmWxxBVXu2X8+XJMpKH0cooc2EKz9xKL2znBfYdNafJORSXcFAVbjCX5mZmVDcgIMwDtm2+gIG4P73hzJ2e3S+y2Z9ROJGyXHa3AxUTvXHQsxqzH8coHHqB8vTvfr0t2O5aKfpvpICpSea39r0hzNoMv6Ie5SwBdqj1YY9K0=" |
| matrix: |
| - NODE_VERSION="v12" |
| - NODE_VERSION="v11" |
| - NODE_VERSION="v10" |
| - NODE_VERSION="v9" |
| - NODE_VERSION="v8" |
| - NODE_VERSION="v7" |
| - NODE_VERSION="v6" |
| |
| before_install: |
| |
| - echo $TRAVIS_OS_NAME |
| |
| # commit |
| # ------------------------ |
| # The commit message is used to determine the whether to manually |
| # invoke a binary publish |
| |
| - COMMIT_MESSAGE=$(git show -s --format=%B $TRAVIS_COMMIT | tr -d '\n') |
| |
| # node |
| # ------------------------ |
| |
| - export PATH=./node_modules/.bin/:$PATH |
| - rm -rf ~/.nvm && git clone --depth 1 https://github.com/creationix/nvm.git ~/.nvm |
| - source ~/.nvm/nvm.sh |
| - nvm install $NODE_VERSION |
| - nvm use $NODE_VERSION |
| - npm install -g npm@3 |
| - node --version |
| - npm --version |
| - nvm --version |
| |
| # publish dependencies |
| # ------------------------ |
| |
| - npm install node-gyp -g |
| - npm install aws-sdk |
| |
| install: |
| |
| # in the first instance we build from source to create the initial binary |
| # which can then be used to create a package |
| |
| - npm install --build-from-source |
| - npm test |
| |
| before_script: |
| |
| # Detemine if a publish is required. |
| # |
| # a) we are building a tag |
| # b) we put [publish binary] in the commit message |
| |
| - PUBLISH_BINARY=false |
| |
| - if [[ $TRAVIS_BRANCH == `git describe --tags --always HEAD` ]]; then PUBLISH_BINARY=true; fi; # a |
| - if test "${COMMIT_MESSAGE#*'[publish binary]'}" != "$COMMIT_MESSAGE"; then PUBLISH_BINARY=true; fi; # b |
| |
| # package & publish |
| # ------------------------ |
| |
| - if [[ $PUBLISH_BINARY == true ]]; then npm run node-pre-gyp package publish; fi; |
| |
| # clean-up |
| # ------------------------ |
| |
| - npm run node-pre-gyp clean |
| - node-gyp clean |
| |
| script: |
| |
| # validate |
| # ------------------------ |
| # Post publishing a release verify that installing will pull down latest |
| # binary from remote host |
| |
| - INSTALL_RESULT=0 |
| - if [[ $PUBLISH_BINARY == true ]]; then INSTALL_RESULT=$(npm install --fallback-to-build=false > /dev/null)$? || true; fi; |
| |
| - npm run node-pre-gyp clean |
| |
| # failure? |
| # ------------------------ |
| # if install returned non zero (errored) then we first unpublish and then |
| # call false so travis will bail at this line. |
| |
| - if [[ $INSTALL_RESULT != 0 ]]; then npm run node-pre-gyp unpublish; fi; |
| - if [[ $INSTALL_RESULT != 0 ]]; then echo "returned $INSTALL_RESULT";false; fi; |
| |
| after_success: |
| |
| # display all published binaries |
| |
| - npm run node-pre-gyp info |