forked from serialport/node-serialport
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
138 lines (119 loc) · 3.83 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
---
language: cpp
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-4.8
- g++-4.8-multilib
- gcc-multilib
- libgtk2.0-0
- libxtst6
- libnotify4
- libgconf2-4
- libgtk2.0-0:i386
- libxtst6:i386
- libnotify4:i386
- libgconf2-4:i386
- libnss3:i386
- libasound2:i386
- libxss1:i386
- socat
# Build matrix
os:
- linux
- osx
env:
global:
- secure: "qEdwCY/ilHkqWkqasN5MgWCnzzop4lEYkbpxEiVMTZBY12p4uV6ysPQ+ZLZcx10Cg90RIQlsPeEANIhCzkWfnQi+ySmeiKY9JR2eSnb69wM7dBQ/uxv04eVChAlZSsDHwmTIIzIzZFsrWrcwwJaENGCJYKqZ9LKOiGFGQ8Is09A="
matrix:
- TRAVIS_NODE_VERSION="4"
- TRAVIS_NODE_VERSION="4" ARCH="x86"
- TRAVIS_NODE_VERSION="6"
- TRAVIS_NODE_VERSION="6" ARCH="x86"
- TRAVIS_NODE_VERSION="7"
- TRAVIS_NODE_VERSION="7" ARCH="x86"
- TRAVIS_ELECTRON_VERSION="1.4.12" ARCH="x64" TRAVIS_NODE_VERSION="6"
- TRAVIS_ELECTRON_VERSION="1.4.12" ARCH="ia32" TRAVIS_NODE_VERSION="6"
matrix:
exclude:
- os: osx
env: TRAVIS_NODE_VERSION="4" ARCH="x86"
- os: osx
env: TRAVIS_NODE_VERSION="6" ARCH="x86"
- os: osx
env: TRAVIS_NODE_VERSION="7" ARCH="x86"
- os: osx
env: TRAVIS_ELECTRON_VERSION="1.4.12" ARCH="ia32" TRAVIS_NODE_VERSION="6"
before_install:
# reinstall latest nvm
- rm -rf ~/.nvm && git clone https://github.com/creationix/nvm.git ~/.nvm && (cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`) && source ~/.nvm/nvm.sh
- nvm install $TRAVIS_NODE_VERSION
- PATH=$PATH:`pwd`/node_modules/.bin
- BASE_URL=$(node -p "'https://nodejs.org/dist/' + process.version")
- X86_FILE=$(node -p "'node-' + process.version + '-' + process.platform + '-x86'")
# download node if testing x86 architecture
- if [[ "$ARCH" == "x86" ]]; then wget $BASE_URL/$X86_FILE.tar.gz; tar -xf $X86_FILE.tar.gz; export PATH=$X86_FILE/bin:$PATH; fi
# print versions
- uname -a
- file `which node`
- node --version
- node -p 'process.platform + "@" + process.arch'
- npm --version
# use g++-4.8 on Linux
- if [[ $TRAVIS_OS_NAME == "linux" ]]; then export CXX=g++-4.8; fi
- $CXX --version
# figure out if we should publish
- PUBLISH_BINARY=false
# if we are building a tag then publish
- echo $TRAVIS_BRANCH
- echo `git describe --tags --always HEAD`
- if [[ $TRAVIS_BRANCH == `git describe --tags --always HEAD` ]]; then PUBLISH_BINARY=true; fi;
- echo "Publishing native platform Binary Package? ->" $PUBLISH_BINARY
# Cleanup the output of npm
- npm config set progress false
- npm config set spin false
# setup virtual serialports
# - >
# socat -d -d -unlink-close pty,raw,nonblock,echo=0,link=ttyV0 pty,raw,nonblock,echo=0,link=ttyV1 &
# ./bin/echo.js --port ttyV0 &
# export TEST_PORT=ttyV1
# export DISABLE_PORT_FEATURE=baudrate.25000,set.set,get.get
- >
if [[ ! -z $TRAVIS_ELECTRON_VERSION ]]; then
if [[ $TRAVIS_OS_NAME == "linux" ]]; then
export DISPLAY=:99.0
sh -e /etc/init.d/xvfb start
fi
export npm_config_target=$TRAVIS_ELECTRON_VERSION
export npm_config_arch=$ARCH
export npm_config_disturl=https://atom.io/download/atom-shell
export npm_config_runtime=electron
npm install --arch=$ARCH electron@$TRAVIS_ELECTRON_VERSION
npm install electron-mocha
echo "installed Electron $TRAVIS_ELECTRON_VERSION"
fi
install:
# ensure source install works
- npm install --build-from-source
script:
# linting no longer works on node 0.10
- npm run lint
- npm run docs:diff
- >
if [[ -z $TRAVIS_ELECTRON_VERSION ]]; then
node ./
npm test
else
electron test/electron
fi
# if publishing, do it
- if [[ $PUBLISH_BINARY == true ]]; then node-pre-gyp package; fi;
- if [[ $PUBLISH_BINARY == true ]]; then node-pre-gyp-github publish --release; fi;
# cleanup
- node-pre-gyp clean
# test binary exists
- if [[ $PUBLISH_BINARY == true ]]; then npm install --fallback-to-build=false; fi;
after_success:
- bash <(curl -s https://codecov.io/bash)