libzim
Version:
Bindings to zimlib (read/write OpenZIM files)
230 lines (217 loc) • 8.64 kB
YAML
# Much of this is borrowed from node-sqlite3 and node-icu-bidi.
sudo: false
language: cpp
git:
depth: 10
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- gcc-5-multilib
- g++-5-multilib
- liblzma-dev
## 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:
# - /^[0-9]+[.][0-9]+[.][0-9]+/
matrix:
include:
# Linux amd64
- os: linux
env: NODE_VERSION="node" PUBLISHABLE=false # latest
- os: linux
compiler: clang
env: NODE_VERSION="6.2.2" # node abi 48
- os: linux
compiler: clang
env: NODE_VERSION="5.11.1" # node abi 47
- os: linux
env: NODE_VERSION="4.4.5" # node abi 46
- os: linux
compiler: clang
env: NODE_VERSION="4.0.0" PUBLISHABLE=false
- os: linux
env: NODE_VERSION="iojs-3.3.1" # node abi 45
- os: linux
compiler: clang
env: NODE_VERSION="iojs-3.1.0" PUBLISHABLE=false
- os: linux
compiler: clang
env: NODE_VERSION="iojs-2.4.0" PUBLISHABLE=false
- os: linux
env: NODE_VERSION="iojs-2.4.0" # node abi 44
- os: linux
compiler: clang
env: NODE_VERSION="iojs-1.8.4" PUBLISHABLE=false
- os: linux
env: NODE_VERSION="iojs-1.8.4" # node abi 43
- os: linux
env: NODE_VERSION="0.12.7" # node abi 14
- os: linux
env: NODE_VERSION="0.10.40" # node abi 11
- os: linux
env: NODE_VERSION="0.8.28" # node abi 1
# Linux x86 builds
- os: linux
env: NODE_VERSION="6.2.2" BUILD_X86=true # node abi 48
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test' ]
packages: [ 'gcc-5-multilib', 'g++-5-multilib', 'liblzma-dev:i386', 'liblzma5:i386', 'libc6-dev:i386' ]
- os: linux
env: NODE_VERSION="5.11.1" BUILD_X86=true # node abi 47
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test' ]
packages: [ 'gcc-5-multilib', 'g++-5-multilib', 'liblzma-dev:i386', 'liblzma5:i386', 'libc6-dev:i386' ]
- os: linux
env: NODE_VERSION="4.4.5" BUILD_X86=true # node abi 46
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test' ]
packages: [ 'gcc-5-multilib', 'g++-5-multilib', 'liblzma-dev:i386', 'liblzma5:i386', 'libc6-dev:i386' ]
- os: linux
env: NODE_VERSION="iojs-3.3.1" BUILD_X86=true # node abi 45
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test' ]
packages: [ 'gcc-5-multilib', 'g++-5-multilib', 'liblzma-dev:i386', 'liblzma5:i386', 'libc6-dev:i386' ]
- os: linux
env: NODE_VERSION="iojs-2.4.0" BUILD_X86=true # node abi 44
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test' ]
packages: [ 'gcc-5-multilib', 'g++-5-multilib', 'liblzma-dev:i386', 'liblzma5:i386', 'libc6-dev:i386' ]
- os: linux
env: NODE_VERSION="iojs-1.8.4" BUILD_X86=true # node abi 43
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test' ]
packages: [ 'gcc-5-multilib', 'g++-5-multilib', 'liblzma-dev:i386', 'liblzma5:i386', 'libc6-dev:i386' ]
- os: linux
env: NODE_VERSION="0.12.7" BUILD_X86=true # node abi 14
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test' ]
packages: [ 'gcc-5-multilib', 'g++-5-multilib', 'liblzma-dev:i386', 'liblzma5:i386', 'libc6-dev:i386' ]
- os: linux
env: NODE_VERSION="0.10.40" BUILD_X86=true # node abi 11
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test' ]
packages: [ 'gcc-5-multilib', 'g++-5-multilib', 'liblzma-dev:i386', 'liblzma5:i386', 'libc6-dev:i386' ]
- os: linux
env: NODE_VERSION="0.8.28" BUILD_X86=true # node abi 1
addons:
apt:
sources: [ 'ubuntu-toolchain-r-test' ]
packages: [ 'gcc-5-multilib', 'g++-5-multilib', 'liblzma-dev:i386', 'liblzma5:i386', 'libc6-dev:i386' ]
#
# DISABLE EXTERNAL LIBZIM BUILD
# We need a newer version of libzim to be packaged upstream.
#
# # test building against external libzim
# - os: linux
# env: NODE_VERSION="4.4.5" EXTERNAL_LIBZIM=true PUBLISHABLE=false
# addons:
# apt:
# sources: [ 'ubuntu-toolchain-r-test' ]
# packages: [ 'gcc-5-multilib', 'g++-5-multilib', 'liblzma-dev', 'libzim-dev' ]
# OS X
- os: osx
compiler: clang
env: NODE_VERSION="6.2.2" # node abi 48
- os: osx
compiler: clang
env: NODE_VERSION="5.11.1" # node abi 47
- os: osx
compiler: clang
env: NODE_VERSION="4.4.5" # node abi 46
- os: osx
compiler: clang
env: NODE_VERSION="iojs-3.3.1" # node abi 45
- os: osx
compiler: clang
env: NODE_VERSION="iojs-2.4.0" # node abi 44
- os: osx
compiler: clang
env: NODE_VERSION="iojs-1.8.4" # node abi 43
- os: osx
compiler: clang
env: NODE_VERSION="0.12.7" # node abi 14
- os: osx
compiler: clang
env: NODE_VERSION="0.10.40" # node abi 11
- os: osx
compiler: clang
env: NODE_VERSION="0.8.28" # node abi 1
env:
global:
- LLVM_VERSION=3.8.0
- secure: "KhufD8drdOFt9snkCY4kHLYLpksRXgqyIkcwJhUZ+G61phx8r59h3Z30FFQcDYu3claCb3uqER4ufTSiRxfgQ5ZRQhqYasxDycWXyuOeKKQ/7mVvq7k/qgDbItDEc0UFh4oZhIviNeZujEBbvSr2Bb3WSznD1GGLPSWYShvFJTNPjmy5e1xC9l2ExTVqB9A3cwd1kLqTw1SrCegSGMirCp1tL10aJ3WkM4gV28jYgt7YdLCLndAmlm2LcEtn57cdouTTinQPurpMSLFlQ5cmVzgZfmjkKgJ4ncABKY9aZ5PJ4s1VfrV8tAzgForSXR5Ww+3L7N8zDjuHfrVbJnT3lYChlf1K0YsHLGLyEdEV/NDDG1gtz92aHsc/PGoI5hvdbkm+3MqNV8flizfzb94Hr0T1KsaAO8pgY2hxX2rC9tLWASNtUOSQE4g5IaEgerMGKC5dLSWvS4lLHIvUb9i7QJXw7LwvmWRJMPqVceLwe6oExTXtBGBMt046EPtfkHNNqhoz4bLKc60zmZ+4gVnJ2/DqpMGDFM18mRhgAsvHamibu6CZXdrFRRA3A7TmkAAlOM8wuSFG2svARX1yZ/0M/KwjeMtxtDdrdLrJiqPfma6A55QiC84n8x+ET3jkZj8WFuqCP/4jBBnMfwFGHwWqvIAIMsvxJWBOesMdHdM0W1M="
cache:
ccache: true
directories:
- $HOME/llvm-$LLVM_VERSION
before_install:
- export PUBLISHABLE=${PUBLISHABLE:-true}
- if test "$TRAVIS_OS_NAME $CC" = "osx clang" ; then
brew update;
brew install xz libmagic;
export CXX="clang++ -I/usr/local/include" ;
export CC="clang -I/usr/local/include" ;
fi
- if test "$TRAVIS_OS_NAME $CC" = "linux clang" ; then
if [ -z "$(ls -A $HOME/llvm-$LLVM_VERSION)" ]; then
wget -O $HOME/llvm-$LLVM_VERSION.tar.xz http://llvm.org/releases/$LLVM_VERSION/clang+llvm-$LLVM_VERSION-x86_64-linux-gnu-ubuntu-14.04.tar.xz;
mkdir $HOME/llvm-$LLVM_VERSION;
xzcat $HOME/llvm-$LLVM_VERSION.tar.xz | tar -xvf - --strip 1 -C $HOME/llvm-$LLVM_VERSION;
fi;
export LLVM_CONFIG="$HOME/llvm-$LLVM_VERSION/bin/llvm-config";
export PATH=$HOME/llvm-$LLVM_VERSION/bin:$PATH;
llvm-config --version;
clang --version;
export CXX="clang++" ;
export CC="clang" ;
fi
- if test "$TRAVIS_OS_NAME $CC" = "linux gcc" ; then
export CXX="g++-5" ;
export CC="gcc-5" ;
fi
# check if tag exists and matches package.json
- scripts/validate_tag.sh
- echo $NODE_VERSION
- 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
- if test "$NODE_VERSION" = "0.8.28" ; then npm install -g npm@1.4.28 ; fi
#- npm config set spin=false
#- npm config set loglevel=http
- node --version
- npm --version
install:
# put node-pre-gyp on path
- export PATH=./node_modules/.bin/:$PATH
before_script:
# get commit message
- export COMMIT_MESSAGE=$(git show -s --format=%B $TRAVIS_COMMIT | tr -d '\n')
script:
- node --version
- npm --version
# XXX disable external builds: libzim-dev needs to be whitelisted:
# https://github.com/travis-ci/apt-package-whitelist/issues/3176
- unset EXTERNAL_LIBZIM
# XXX end hack.
- if test -n "$BUILD_X86"; then source scripts/publish_x86.sh ; echo PATH=$PATH ; fi
- if test -z "$EXTERNAL_LIBZIM" ; then npm install --build-from-source ; else npm install --build-from-source --libzim=external ; fi
- node-pre-gyp package testpackage
- npm test
- export PUBLISH=false
# Normal case: tagged builds trigger 32-bit and 64-bit x86 builds
- if scripts/validate_tag.sh --check ; then PUBLISH=true; fi
# Workaround to trigger a manual x86 build
- if test "$TRAVIS_BRANCH" == "x86" -a "${COMMIT_MESSAGE#*'[publish binary]'}" != "$COMMIT_MESSAGE"; then PUBLISH=true; fi
- if test "$PUBLISH,$PUBLISHABLE" = "true,true"; then npm test && npm install core-js@1.1.4 && npm install request@2.64.0 && npm run gh-publish ; fi