forked from bokeh/bokeh
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
152 lines (135 loc) · 5.73 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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
language: python
sudo:
false
env:
global:
- BOTO_CONFIG="/tmp/nowhere"
- MINICONDA_VERSION="latest"
- secure: nLrUq2h59KN3k3hnid+Ub4RHDcVkZyrVmuMLoM6NbwKA0bwpDltaoSg5cj2dzdXKBwvv+3VP38oXLhEGLhVi7kDmyX3ICcza6Usy8zgK3s1NBgl6hFjqaJ7RjCu9OP1I42ThMTLfCQMRrYul7s74sGdZa+HfMCZcl+3Co5IzraI=
- secure: oI7Up9HuHSBw8k9LBNC6pLEUJONj+5NeEGFpSLSVXvqPPmyXJZ4qRE/dZ/HxZp6xyBze5GLYmdXXAdhrZyNjmU1ZA0rbBLDWLXuAW8eJm5xAXZ0NRFlHMXMkwvbG9hPTOTFtxKNS4lG/Fo5AXwE4MgT5uzQS4I7HuuNkcZOoInY=
- secure: Nyfo1sKNXJPEbR0QF+S/Sbr1OnDl6kRfjKAXVupD83QeLJ2e6gj7R1TpucngUhDluqp2iJ/1DZDXnA9AP+xl8kordIXjEv2FYdijxKAUk3G5BVPm9n6GudsIKYNUpDOiZupZrcKoJtfpIiWOOOgn4uftI7X/ATazudUKeMNjOvQ=
- secure: nqoKfXZTHhJ0ieffqS+5mi5crivUeFeIgohqUaeTCnaOGI5XFMLR8rZPjhMHyFx5vNTp08pbg3Mg4i7iaQn+3dqu25HBwnfhar3TFXfOCQQLJBZstoWSGEDkJKDPwwqZrdFzw+EDxlA0tlLXvV8X0DlArYKhRcAOJF01cCJ7L1c=
- secure: ii7ssdfEDYtc4Ph24mVzyq7JVTkjrn/h36HZn1oZak+HuiYtVbcCjqomKj2n1kPuKJWajOwHGu7d7ymCvK4tQ37keiMRvku/Yz4HELT5IUU1hD+w7mKomc2taKKvddGnbR4I4oZe+SBfwfeQCq5/Ha+koadSQI05Aco/nLNZP3M=
- secure: MAaYB6RV2a9tZ61Olatv52Yi4EqEh+wMkX6y20Ja1yyY3I+2sFT1NZ8ZwPFCKkDdMeSna7z4ROKk3CDMK0JkbUJrqnZgo6Fy7w6GZPcZlzUPrgH04Or0v94upMh2i0lh8wcz88VuR0i+GxnqUsP18W5AJfO/FXmU4VgDAOJfKrQ=
matrix:
include:
# unit tests (python 2.7, 3.4, and 3.5)
- python: 2.7
env: GROUP=unit
- python: 3.4
env: GROUP=unit
- python: 3.5
env: GROUP=unit
- python: 3.6
env: GROUP=unit
# examples tests (python 2.7 and 3.4)
- python: 2.7
env: GROUP=examples
- python: 3.4
env: GROUP=examples EXTRA_CMD=--no-js
# linting, package and docs building (python 3.4)
- python: 3.4
env: GROUP=flake_docs
# integration tests (python 3.4)
- python: 3.4
env: GROUP=integration
addons:
sauce_connect: true
branches:
only:
- master
- "/^\\d+.\\d+.\\d+dev\\d+$/"
- "/^\\d+.\\d+.\\d+rc\\d+$/"
- "/^\\d+.\\d+.\\d+$/"
before_install:
- export PATH="$HOME/miniconda/bin:$PATH"
- export PATH="$HOME/build/bokeh/bokeh/bokehjs/node_modules/phantomjs-prebuilt/bin:$PATH"
- export TRAVIS_COMMIT_MSG="$(git log --format=%B --no-merges -n 1)"
- if [[ -z "${SAUCE_USERNAME}" ]] || [[ -z "${SAUCE_ACCESS_KEY}" ]]; then echo "External committer, not using saucelabs"; else export SAUCELABS=true; fi
install:
- scripts/travis_install
script:
# preamble
- python -m bokeh info
# unit tests
- if [[ -z "$TRAVIS_TAG" && "$GROUP" == unit ]]; then
py.test --rerun=3 -s -m js;
fi
- if [[ -z "$TRAVIS_TAG" && "$GROUP" == unit ]]; then
py.test --rerun=5 -m 'not (examples or js or integration or quality)' --cov=bokeh --cov-config=bokeh/.coveragerc;
fi
# examples tests
- if [[ -z "$TRAVIS_TAG" && "$GROUP" == examples ]]; then
if [[ $TRAVIS_COMMIT_MSG == *"[ci disable examples]"* ]]; then
echo "Examples run disabled by commit";
else
export IPYTHON_ALLOW_DRAFT_WEBSOCKETS_FOR_PHANTOMJS=1;
time py.test -s -v --tb line -m examples --diff-ref FETCH_HEAD --upload --report-path=examples.html $EXTRA_CMD;
fi;
fi
# linting, package and docs building
- if [[ -z "$TRAVIS_TAG" && "$GROUP" == flake_docs ]]; then
py.test -m quality;
fi
- if [[ -z "$TRAVIS_TAG" && "$GROUP" == flake_docs ]]; then
CONDA_PY="${TRAVIS_PYTHON_VERSION/./}" conda build --quiet --no-test conda.recipe;
LINUX64_DIR="$HOME/miniconda/conda-bld/linux-64";
echo "linux-64 build output contents:";
ls -l $LINUX64_DIR;
BUILD_FILE_COUNT="$(ls $LINUX64_DIR | wc -l)";
if [ $BUILD_FILE_COUNT != 3 ]; then
echo "linux-64 build has wrong number of files";
exit 1;
fi
fi
- if [[ -z "$TRAVIS_TAG" && "$GROUP" == flake_docs ]]; then
cd sphinx;
GOOGLE_API_KEY=${GOOGLE_API_KEY:-"junk"} make SPHINXOPTS=-v all;
fi
# integration tests
- if [[ -z "$TRAVIS_TAG" && "$GROUP" == integration ]]; then
if [ "$SAUCELABS" == "true" ]; then
py.test -m integration --driver SauceLabs --html=tests/pytest-report.html -n4 -r3 --upload;
fi;
fi
# Simple build log
- echo "********** SIMPLE BUILD LOG **********";
echo $TRAVIS_COMMIT_MSG;
echo $TRAVIS_PULL_REQUEST;
if [[ "$GROUP" == integration ]]; then
echo "https://s3.amazonaws.com/bokeh-travis/$TRAVIS_JOB_ID/tests/pytest-report.html";
fi;
if [[ "$GROUP" == examples ]]; then
echo "https://s3.amazonaws.com/bokeh-travis/$TRAVIS_JOB_ID/examples.html";
fi;
killall python;
ps -efw;
echo "********** END SIMPLE BUILD LOG **********";
after_success: |
if [[ ! -z "$TRAVIS_TAG" && "$TRAVIS_PYTHON_VERSION" == '3.4' && "$GROUP" == flake_docs ]]; then
# Install some additional dependencies
conda install anaconda-client --yes
conda install -c defaults -c conda-forge fabric3 --yes
# Decrypt some files and place them in the correct location
openssl aes-256-cbc -K $encrypted_c19429b59af5_key -iv $encrypted_c19429b59af5_iv -in secrets.tar.enc -out secrets.tar -d
tar xvf secrets.tar
cp known_hosts ~/.ssh/known_hosts
cp .npmrc ~/.npmrc
cp .pypirc ~/.pypirc
chmod 600 bokeh_key
eval `ssh-agent -s`
ssh-add bokeh_key
# Signal the correct build
if [[ "$TRAVIS_TAG" == *"dev"* ]] || [[ "$TRAVIS_TAG" == *"rc"* ]]; then
echo "Building a DEV or RC package: $TRAVIS_TAG"
else
echo "Building a FULL RELEASE package: $TRAVIS_TAG"
fi
python scripts/build_upload.py $TRAVIS_TAG
exit $?
else
echo "No tag present, not building a release package."
fi
notifications:
flowdock:
secure: ZisceYtV2b7LWNUz0wEtiR9TRk+i8x5m/N6+Htn4IFr+bBcBi79ESO0u6DWiJA5rHt+Yq7Yf49vl7UO9HZCF+8n5B1nKpfivJKngVuMYLnhYifNmwCD7vQ8aaF9DTfOqvm2hJrHwtieX8BUGs2KWd8igt3f8LCXVWVBBvkqc2L0=