forked from nucleic/enaml
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
142 lines (125 loc) · 3.64 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
sudo: false
language: generic
dist: xenial
services:
- xvfb
branches:
only:
- master
env:
global:
- CPPFLAGS=--coverage
matrix:
fast_finish: true
include:
- os: linux
dist: trusty
env:
- PYTHON=2.7
- QT_VERSION=4
- IPY_VERSION=3
- SPHINX=0
- os: linux
env:
- PYTHON=3.5
- QT_VERSION=5
- IPY_VERSION=5
- QSCINTILLA=0
- SPHINX=0
- os: linux
env:
- PYTHON=3.6
- QT_VERSION=5
- IPY_VERSION=6
- QSCINTILLA=0
- SPHINX=0
- os: linux
env:
- PYTHON=3.7
- QT_VERSION=5
- IPY_VERSION=6
- QSCINTILLA=1
- SPHINX=0
- os: linux
env:
- PYTHON=3.6
- QT_VERSION=5
- SPHINX=1
before_install:
# Install Miniconda
- travis_retry wget -q https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh
- chmod +x miniconda.sh
- ./miniconda.sh -b -p ~/anaconda
- export PATH=~/anaconda/bin:$PATH
# Setup environment
- travis_retry conda update --yes conda
- conda config --set always_yes yes
# Display those for debug purposes
- conda info -a
- conda create -n travisci python=$PYTHON pip
- source activate travisci
- CONDA_INSTALL="conda install -q"
- PIP_INSTALL="pip install"
# Install enaml dependencies and include special widgets dependencies
# We do not test vtk as it segfaults on Travis
- 'if [ $QSCINTILLA -eq 1 ]; then
$PIP_INSTALL pyqt5 ply matplotlib;
else
$CONDA_INSTALL pyqt=$QT_VERSION ply matplotlib;
fi;'
# Install qtpy from pip to get a recent version (>= 1.3) on python 3.4
- $PIP_INSTALL qtpy
- 'if [ $IPY_VERSION < 4 ]; then
$CONDA_INSTALL ipython=$IPY_VERSION ipython-qtconsole;
elif [ $QSCINTILLA -eq 1 ]; then
$PIP_INSTALL ipython qtconsole;
else
$CONDA_INSTALL ipython=$IPY_VERSION qtconsole;
fi'
# Install QScintilla for Qt5 if requested
# This will force qt to the last available version on PyPI and means that
# we will have two versions of qt at the same time but it seems to work fine
- 'if [ $QT_VERSION -gt 4 ] && [ $QSCINTILLA -eq 1 ]; then
$PIP_INSTALL Cython QScintilla;
fi'
# Install the dev version of the other nucleic projects
- $PIP_INSTALL https://github.com/nucleic/atom/tarball/master
- $PIP_INSTALL https://github.com/nucleic/kiwi/tarball/master
# Intall test tools (we require pytest > 3.3 to get the builtin logging
# features)
# Pytest-xvfb allows to run on CI (without a display with less magic)
- 'if [ $SPHINX -eq 0 ]; then
$PIP_INSTALL pytest pytest-cov pytest-qt pytest-xvfb;
fi'
- 'if [ $SPHINX -eq 1 ]; then
$PIP_INSTALL sphinx sphinx_rtd_theme;
cd $TRAVIS_BUILD_DIR;
cd tools/pygments;
python setup.py install;
fi'
# Avoid annoying focus problems when running tests
# See discussion in e.g. https://github.com/spyder-ide/spyder/pull/6132
- sudo apt-get -qq update
- sudo apt-get install -y matchbox-window-manager xterm libxkbcommon-x11-0
- matchbox-window-manager&
- sleep 5
install:
# Install ecpy (check that build script is not broken
- cd $TRAVIS_BUILD_DIR
- python setup.py develop
- cd ~
script:
# Run the enaml test suite
- cd $TRAVIS_BUILD_DIR
- 'if [ $SPHINX -eq 0 ]; then
pytest tests --cov enaml --cov-report xml;
fi'
- 'if [ $SPHINX -eq 1 ]; then
sphinx-build docs/source $TRAVIS_BUILD_DIR -W -b html;
fi'
-
after_success:
- cd $TRAVIS_BUILD_DIR
- 'if [ $SPHINX -eq 0 ]; then
bash <(curl -s https://codecov.io/bash);
fi'