/
.travis.yml
157 lines (140 loc) · 5.97 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
153
154
155
156
157
# We deliberately don't use travis's language=python option because
# we install miniconda and use conda to get python. Additionally,
# Travis's auto-install of python doesn't work on osx images (see
# https://github.com/travis-ci/travis-ci/issues/4729).
language: generic
sudo: false
os:
- linux
cache:
timeout: 300
directories:
- $HOME/miniconda
before_cache:
- rm -rf $HOME/miniconda/pkgs
- rm -rf $HOME/miniconda/conda-bld
- rm -rf $HOME/miniconda/envs/*/conda-bld
notifications:
email:
on_failure: change # [always|never|change] default: always
env:
global:
- PYENV_VERSION=3.6
- PKG_TEST_PYTHON="--test-python=py36 --test-python=py27"
- CHANS_DEV="-c pyviz/label/dev -c conda-forge"
- CHANS="-c pyviz"
- MPLBACKEND="Agg"
stages:
- test
- name: conda_dev_package
if: tag =~ ^v(\d+|\.)*[a-z]\d*$
- name: pip_dev_package
if: tag =~ ^v(\d+|\.)*[a-z]\d*$
- name: conda_package
if: tag =~ ^v(\d+|\.)*[^a-z]\d*$
- name: pip_package
if: tag =~ ^v(\d+|\.)*[^a-z]\d*$
jobs:
include:
########## Test Stage ##########
- &default
stage: test
env: DESC="Python 3 tests"
before_install:
- pip install pyctdev && doit miniconda_install && pip uninstall -y doit pyctdev
- export PATH="$HOME/miniconda/bin:$PATH" && hash -r
- conda config --set always_yes True
- conda install -c pyviz "pyctdev>=0.5" && doit ecosystem_setup
install:
- doit env_create $CHANS_DEV --python=$PYENV_VERSION
- source activate test-environment
- doit develop_install $CHANS_DEV -o all
- doit env_capture
- bokeh sampledata
script:
- doit test_all_recommended
after_script:
- chmod +x concat_html.py; ./concat_html.py ../test_data ../test_html
- cd ../../; mv doc/Tutorials/.coverage ./.coverage.notebooks
- coverage combine --append
- if [ "$TRAVIS_BRANCH" == 'master' ]; then
cd doc/test_data;
zip -r test_data.zip *;
aws s3 cp --region eu-west-1 ./test_data.zip "s3://preview.holoviews.org/$TRAVIS_BUILD_NUMBER/test_data_py${TRAVIS_PYTHON_VERSION:0:1}.zip";
cd -;
fi
- aws s3 cp --recursive --region eu-west-1 ./doc/test_html "s3://travis.holoviews.org/build_$TRAVIS_BUILD_NUMBER"
- curl -s -X GET "https://kq5y73i0xe.execute-api.eu-west-1.amazonaws.com/dev/travis-holoviews-index"
- echo insecure >> ~/.curlrc
- if [ "$TRAVIS_PULL_REQUEST" != 'false' ]; then
curl -X POST -d "$TRAVIS_BUILD_NUMBER" "https://kq5y73i0xe.execute-api.eu-west-1.amazonaws.com/dev/pr-status";
fi
after_success: coveralls
after_failure: sleep 10
- <<: *default
env: DESC="Python 2.7 tests" PYENV_VERSION=2.7
- ®ression_test
<<: *default
env: DESC="Python 3.6 regression tests"
before_script:
- if [ "$TRAVIS_PULL_REQUEST" == 'false' ]; then
echo "Attempting to find any associated pull request";
CURRENT_BUILD=$(curl -s -X GET "https://api.travis-ci.org/repos/ioam/holoviews/builds?number=$TRAVIS_BUILD_NUMBER");
NEXT_BUILD=$(curl -s -X GET "https://api.travis-ci.org/repos/ioam/holoviews/builds?number=$((TRAVIS_BUILD_NUMBER + 1))");
MSG1=$(echo $CURRENT_BUILD | jq '.[].message' );
MSG2=$(echo $NEXT_BUILD | jq '.[].message' );
if [ "$MSG1" == "$MSG2" ] ; then
BUILD_ID=$(echo $NEXT_BUILD | jq .[].id);
TRAVIS_PULL_REQUEST=$(curl -s -X GET "https://api.travis-ci.org/repos/ioam/holoviews/builds/$BUILD_ID" | jq .compare_url | cut -d '/' -f7 | cut -d \" -f1);
echo "Associated pull request found - PR $TRAVIS_PULL_REQUEST";
fi
fi
- REF_DATA_BRANCH=${TRAVIS_PULL_REQUEST//false/reference_data}
- git clone https://github.com/ioam/holoviews-data.git -b reference_data ./doc/reference_data
- pushd ./doc/reference_data
- echo "Attempting to checkout $REF_DATA_BRANCH branch"
- if [ $(git branch -a --list *origin/$REF_DATA_BRANCH | wc -l) -eq 1 ] ; then
git checkout origin/$REF_DATA_BRANCH;
else
echo "Using the master branch reference data";
fi
- popd
- export HOLOVIEWSRC=`pwd`'/holoviews.rc'
- echo 'import holoviews as hv;hv.config(style_17=True);hv.config.warn_options_call=True' > holoviews.rc
script:
- QT_QPA_PLATFORM='offscreen' BOKEH_DEV=True doit test_examples
- <<: *regression_test
env: DESC="Python 2.7 regression tests" PYENV_VERSION=2.7
########## END-USER PACKAGES ##########
### CONDA ####
- <<: *default
stage: conda_dev_package
env: DESC="" TRAVIS_NOCACHE=$TRAVIS_JOB_ID
install:
- doit package_build $CHANS_DEV $PKG_TEST_PYTHON --test-group=unit
script:
- doit package_upload --token=$CONDA_UPLOAD_TOKEN --label=dev
- <<: *default
stage: conda_package
env: DESC="" TRAVIS_NOCACHE=$TRAVIS_JOB_ID
install:
- doit package_build $CHANS $PKG_TEST_PYTHON --test-group=unit
script:
- doit package_upload --token=$CONDA_UPLOAD_TOKEN --label=dev --label=main
### PyPI ###
- <<: *default
stage: pip_dev_package
env: PYPI="https://test.pypi.org/legacy/" TRAVIS_NOCACHE=$TRAVIS_JOB_ID
install:
- doit develop_install $CHANS_DEV -o tests && pip uninstall -y hvplot
- doit pip_on_conda
- doit ecosystem=pip package_build --test-python=py36 --test-group=unit
script: doit ecosystem=pip package_upload -u $TPPU -p $TPPP -r ${PYPI}
- <<: *default
stage: pip_package
env: PYPI="https://upload.pypi.org/legacy/" TRAVIS_NOCACHE=$TRAVIS_JOB_ID
install:
- doit develop_install $CHANS_DEV -o tests && pip uninstall -y hvplot
- doit pip_on_conda
- doit ecosystem=pip package_build --test-python=py36 --test-group=unit
script: doit ecosystem=pip package_upload -u $PPU -p $PPP -r ${PYPI}