Commit c2e16dd8 by Dane Springmeyer

merge with master

parents bf0df506 3fcc5f2f
......@@ -10,12 +10,21 @@ env:
- NODE_VERSION="0.8"
- NODE_VERSION="0.10"
- NODE_VERSION="0.11"
- NODE_WEBKIT="0.8.6"
- NODE_WEBKIT="0.10.0"
- NODE_WEBKIT="0.8.6" TARGET_ARCH="ia32"
- NODE_WEBKIT="0.8.6" TARGET_ARCH="x64"
- NODE_WEBKIT="0.10.1" TARGET_ARCH="ia32"
- NODE_WEBKIT="0.10.1" TARGET_ARCH="x64"
global:
- secure: QhuP5E/kYL1j1KDkHGJtk6DSJr1RH4DR/JrC62Viuf5Du8jE+i0kPWfF2MxtuEmKo35orhpu8t8mzKygWfuO63WPuuIE9qd/+V/y99Lqcj0tEN6wJ5RnywktbTJWg23zphjhmYq3Xj8DLVEikCZBwHtlbygkO9Q60cn1PK+bnPg=
- secure: HxCS2dQAWI0KmCFnFNNZoucG4FeAW+itG7+Hp0dNtwmxZzGOZYFO2bZcGvTAMNfVN++oqLxTebYQI1oB5yUl5mPJjrjthaGS6Zq3S6rfJcXiv+icYgEXlR6ejQ97dsHw1Jeg8nedCQlI4kHfvG6pgBLhq9hnugxH1Cjhdt14E9U=
matrix:
allow_failures:
- env: NODE_WEBKIT="0.8.6" TARGET_ARCH="x64"
os: osx
- env: NODE_WEBKIT="0.10.0" TARGET_ARCH="x64"
os: osx
before_install:
# check if tag exists and matches package.json
- scripts/validate_tag.sh
......
......@@ -8,7 +8,6 @@ fi
set +u
source ../.nvm/nvm.sh
nvm install 0.10
nvm use 0.10
set -u
node --version
npm --version
......@@ -17,30 +16,47 @@ npm install nw-gyp
OLD_PATH="$PATH"
GYP_ARGS="--runtime=node-webkit --target=$NODE_WEBKIT"
GYP_ARGS="--runtime=node-webkit --target=${NODE_WEBKIT} --target_arch=${TARGET_ARCH}"
if [[ $(uname -s) == 'Darwin' ]]; then
GYP_ARGS="${GYP_ARGS} --target_arch=ia32"
if [[ '${TARGET_ARCH}' == 'x64' ]]; then
# do not build on Mac OS X x64 until node-webkit 0.10.1 is released
false
fi
fi
if [[ $(uname -s) == 'Darwin' ]]; then
export NW_DOWNLOAD=node-webkit-v${NODE_WEBKIT}-osx-ia32
export NW_DOWNLOAD=node-webkit-v${NODE_WEBKIT}-osx-${TARGET_ARCH}
wget http://dl.node-webkit.org/v${NODE_WEBKIT}/${NW_DOWNLOAD}.zip
unzip -q ${NW_DOWNLOAD}.zip
export PATH=$(pwd)/node-webkit.app/Contents/MacOS/:${PATH}
# v0.10.0-rc1 unzips with extra folder
export PATH=$(pwd)/${NW_DOWNLOAD}/node-webkit.app/Contents/MacOS/:${PATH}
npm install --build-from-source ${GYP_ARGS}
else
export NW_DOWNLOAD=node-webkit-v${NODE_WEBKIT}-linux-x64
sudo apt-get install build-essential
# Linux
export NW_DOWNLOAD=node-webkit-v${NODE_WEBKIT}-linux-${TARGET_ARCH}
# for testing node-webkit, launch a virtual display
export DISPLAY=:99.0
# NOTE: travis already has xvfb installed
# http://docs.travis-ci.com/user/gui-and-headless-browsers/#Using-xvfb-to-Run-Tests-That-Require-GUI-%28e.g.-a-Web-browser%29
sh -e /etc/init.d/xvfb start +extension RANDR
wget http://dl.node-webkit.org/v${NODE_WEBKIT}/${NW_DOWNLOAD}.tar.gz
tar xf ${NW_DOWNLOAD}.tar.gz
export PATH=$(pwd)/${NW_DOWNLOAD}:${PATH}
if [[ "${TARGET_ARCH}" == 'ia32' ]]; then
# need to update to avoid 404 for linux-libc-dev_3.2.0-64.97_amd64.deb
sudo apt-get update
# prepare packages for 32-bit builds on Linux
sudo apt-get -y install gcc-multilib g++-multilib libx11-6:i386 libxtst6:i386 libcap2:i386 libglib2.0-0:i386 libgtk2.0-0:i386 libatk1.0-0:i386 libgdk-pixbuf2.0-0:i386 libcairo2:i386 libfreetype6:i386 libfontconfig1:i386 libxcomposite1:i386 libasound2:i386 libxdamage1:i386 libxext6:i386 libxfixes3:i386 libnss3:i386 libnspr4:i386 libgconf-2-4:i386 libexpat1:i386 libdbus-1-3:i386 libudev0:i386
# also use ldd to find out if some necessary apt-get is missing
ldd $(pwd)/${NW_DOWNLOAD}/nw
CC=gcc-4.6 CXX=g++-4.6 npm install --build-from-source ${GYP_ARGS}
else
npm install --build-from-source ${GYP_ARGS}
fi
fi
npm install --build-from-source ${GYP_ARGS}
# test the package
node-pre-gyp package testpackage ${GYP_ARGS}
......@@ -61,42 +77,3 @@ fi
# restore PATH
export PATH="$OLD_PATH"
rm -rf ${NW_DOWNLOAD}
# TODO linux 32 bit
: '
# rebuild node-sqlite3 for 32 bit node-webkit target (if NODE_WEBKIT is not empty)
node-pre-gyp rebuild ${GYP_ARGS}
# on Linux 32 bit: install 32 bit stuff necessary for node-webkit 32 bit
sudo apt-get -y install libx11-6:i386
sudo apt-get -y install libxtst6:i386
sudo apt-get -y install libcap2:i386
sudo apt-get -y install libglib2.0-0:i386
sudo apt-get -y install libgtk2.0-0:i386
sudo apt-get -y install libatk1.0-0:i386
sudo apt-get -y install libgdk-pixbuf2.0-0:i386
sudo apt-get -y install libcairo2:i386
sudo apt-get -y install libfreetype6:i386
sudo apt-get -y install libfontconfig1:i386
sudo apt-get -y install libxcomposite1:i386
sudo apt-get -y install libasound2:i386
sudo apt-get -y install libxdamage1:i386
sudo apt-get -y install libxext6:i386
sudo apt-get -y install libxfixes3:i386
sudo apt-get -y install libnss3:i386
sudo apt-get -y install libnspr4:i386
sudo apt-get -y install libgconf-2-4:i386
sudo apt-get -y install libexpat1:i386
sudo apt-get -y install libdbus-1-3:i386
sudo apt-get -y install libudev0:i386
# on Linux 32 bit: download and unpack node-webkit, add it to PATH
wget http://dl.node-webkit.org/v${NODE_WEBKIT}/node-webkit-v${NODE_WEBKIT}-linux-ia32.tar.gz
tar xf node-webkit-v${NODE_WEBKIT}-linux-ia32.tar.gz
OLD_PATH="$PATH";
export PATH=$(pwd)/node-webkit-v${NODE_WEBKIT}-linux-ia32:$PATH
# on Linux 32 bit: ldd nw
ldd $(pwd)/node-webkit-v${NODE_WEBKIT}-linux-ia32/nw
# attempt node-pre-gyp package testpackage (if NODE_WEBKIT is not empty)
node-pre-gyp package testpackage publish ${GYP_ARGS}
# on Linux 32 bit: erase used node-webkit, restore PATH
export PATH="$OLD_PATH"; rm -rf node-webkit-v${NODE_WEBKIT}-linux-ia32
'
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment