node-libtorrent-ng2
Version:
rb-libtorrent bindings for node.js (nan2-compatible fork with fixes)
117 lines (98 loc) • 4.35 kB
YAML
sudo: required
dist: trusty
language: cpp
# don't re-build for tags so that [publish binary] is not re-run
# https://github.com/travis-ci/travis-ci/issues/1532
branches:
except:
- /^\d*\.+\d*\.?\d*\.?/
compiler:
- gcc
os:
- linux
- osx
env:
global:
- secure: "UhzF/paWS3wrZEWCKKCmNl2hlFuLzlNqt0x7eJJtLg/AOBVwGnrgsGDgUCgY4meyxxJ1D0ZH+fzqoB4vp5ZGppE7HwaIyxyxzA23ZbWk6dyvTVK66UZPosYcUjwLKbr/hmS4KNpT/XmiHV1xdBHsGel2vxBcnZpRaa6Fpplz5fMXL+zYi9K3IfHLvnmAEpW4iz1dOypN0IWcPkI0fsqtliGUQXaBp8QfxQD8tlMpJik79No7cMI/GHYeP5SkeNWjSLJcL+KwZnLPufpmXONK8KkGfRPGGPVst6ABDbMTu9BSTTIgQKdxNW7TpcuQdJgjn3lpV8L95SBq31rcVmXocSvah4L1d4KtRIk1x7mC7L3OPXdWkucYdAB5Uzb3/dJb7TuH8LRN/H7ldXW/RbeIjjpvwYG8oCgtdNh4DfxY0BBnX4aH65blEe0cFRbCQch/DHYovY855fFsrmhzGTLsJlZZ/vBLjuOqSUrSS1aArOMm3G/RGc8VE1QRy1dhPtRCMEQD99080S63Th4mLllG7KDYzwisUGbx0lJTWaHJsRW7iObvtuAxAabktgOempJ1iDC3IvctrRqBNg1HmCdHb/yXE391T7QO6vvMAjl9nYamhEYAKMA9e7wCxaBl1YQiBmweuyt+F5C20tBP5nSXccUlLFmRXJ1eKx8xzI+JclE="
matrix:
# node
- RUNTIME="node" RVERSION="4.5.0" ARCH="x64"
- RUNTIME="node" RVERSION="4.5.0" ARCH="ia32"
- RUNTIME="node" RVERSION="5.12.0" ARCH="x64"
- RUNTIME="node" RVERSION="5.12.0" ARCH="ia32"
- RUNTIME="node" RVERSION="6.5.0" ARCH="x64"
- RUNTIME="node" RVERSION="6.5.0" ARCH="ia32"
# electron
- RUNTIME="electron" RVERSION="0.37.8" ARCH="x64"
- RUNTIME="electron" RVERSION="0.37.8" ARCH="ia32"
- RUNTIME="electron" RVERSION="1.2.3" ARCH="x64"
- RUNTIME="electron" RVERSION="1.2.3" ARCH="ia32"
matrix:
exclude:
- os: osx
env: RUNTIME="node" RVERSION="4.5.0" ARCH="ia32"
- os: osx
env: RUNTIME="node" RVERSION="5.12.0" ARCH="ia32"
- os: osx
env: RUNTIME="node" RVERSION="6.5.0" ARCH="ia32"
- os: osx
env: RUNTIME="electron" RVERSION="0.37.8" ARCH="ia32"
- os: osx
env: RUNTIME="electron" RVERSION="1.2.3" ARCH="ia32"
addons:
apt:
sources:
#- ubuntu-toolchain-r-test
- george-edison55-precise-backports
packages:
- gcc-multilib
- g++-multilib
#- gcc-4.8-multilib
#- g++-4.8-multilib
- cmake
- cmake-data
before_install:
# purge previous boost installation
#- rm -rf ~/.cmake-js
install:
# install node (use v6 if building for electron)
- export DEFAULT_NODE_VERSION="6"
- export NODE_VERSION=$RVERSION
- rm -rf ~/.nvm/ && git clone --depth 1 https://github.com/creationix/nvm.git ~/.nvm && source ~/.nvm/nvm.sh
- if [[ "$RUNTIME" == "electron" ]]; then export NODE_VERSION=$DEFAULT_NODE_VERSION; fi
- nvm install $NODE_VERSION
- nvm use $NODE_VERSION
- npm install npm -g
# update path
- PATH=$PATH:`pwd`/node_modules/.bin
# download node for x86
- BASE_URL=$(node -p "'https://nodejs.org/dist/' + process.version")
- X86_FILE=$(node -p "'node-' + process.version + '-' + process.platform + '-x86'")
- if [[ "$ARCH" == "ia32" ]]; then wget $BASE_URL/$X86_FILE.tar.gz; tar -xf $X86_FILE.tar.gz; export PATH=$X86_FILE/bin:$PATH; npm install npm -g; fi
# use g++-4.8 on linux
#- if [[ $TRAVIS_OS_NAME == "linux" ]]; then export CXX="g++-4.8"; CC="gcc-4.8"; fi
# print some info
- uname -a
- npm --version
- node --version
- node -p 'process.platform + "@" + process.arch'
- $CXX --version
# install recent cmake for osx
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then wget --no-check-certificate http://cmake.org/files/v3.4/cmake-3.4.3-Darwin-x86_64.tar.gz ;fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then tar -xzf cmake-3.4.3-Darwin-x86_64.tar.gz ;fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export PATH=$PWD/cmake-3.4.3-Darwin-x86_64/CMake.app/Contents/bin:$PATH ;fi
# figure out if we should publish
- PUBLISH_BINARY=false
- COMMIT_MESSAGE=$(git show -s --format=%B $TRAVIS_COMMIT | tr -d '\n')
- if [[ ${COMMIT_MESSAGE} =~ "[publish binary]" ]]; then PUBLISH_BINARY=true; fi
- echo "Publishing native platform Binary Package? ->" $PUBLISH_BINARY
# cleanup npm progress
- npm config set progress false
- npm config set spin false
script:
# build
- npm install --build-from-source
# if we're publishing, do it
- if [[ $PUBLISH_BINARY == true ]]; then node-pre-gyp --runtime=$RUNTIME --target=$RVERSION --target_arch=$ARCH package; fi;
- if [[ $PUBLISH_BINARY == true ]]; then node-pre-gyp-github publish --release; fi;
- if [[ $PUBLISH_BINARY == true ]]; then npm install --fallback-to-build=false; fi;