You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
2.8 KiB
102 lines
2.8 KiB
language: objective-c |
|
|
|
env: |
|
global: |
|
- secure: "gve1nkeKkwFEG1VAT3i+JwYyAdF0gKXwKx0uxbkBTsmm2M+0MDusohQdFLoEIkSIFktXBIDefoa7iGpLKRfG2VsZLpwJgnvnD0HqbnuR+k+W+bu7BHt4CAaR6GTllsDCjyq9zNyhUThzSnf2WNIpOEF5kHspZlbGfawURuUJH/U=" |
|
- secure: "jqVpmWxxBVXu2X8+XJMpKH0cooc2EKz9xKL2znBfYdNafJORSXcFAVbjCX5mZmVDcgIMwDtm2+gIG4P73hzJ2e3S+y2Z9ROJGyXHa3AxUTvXHQsxqzH8coHHqB8vTvfr0t2O5aKfpvpICpSea39r0hzNoMv6Ie5SwBdqj1YY9K0=" |
|
matrix: |
|
- NODE_VERSION="v10" |
|
- NODE_VERSION="v9" |
|
- NODE_VERSION="v8" |
|
- NODE_VERSION="v7" |
|
- NODE_VERSION="v6" |
|
- NODE_VERSION="v5" |
|
- NODE_VERSION="v4" |
|
- NODE_VERSION="v0.10" |
|
|
|
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
|
|
|