forked from biopython/biopython
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
176 lines (169 loc) · 5.08 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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
# Special configuration file to run tests on Travis-CI via GitHub notifications
# See https://travis-ci.org/biopython/biopython/builds for results
#
# Using TravisCI's configuration alone became too complicated once we wanted
# to cover more than just running the unit tests on different versions of
# Python, so this now does all the complicated test configuration via TOX
# See file .travis-tox.ini
#
# Environment variables setup here:
# - TOXENV = environment used in Tox (conventionally uses py35 etc)
#
# TravisCI build stages used here:
# - basics - quick things like style and packaging
# - test - the actual functional tests which are slow
dist: xenial
services:
- mysql
- postgresql
language: python
cache: pip
matrix:
include:
- stage: basics
python: 2.7
env: TOXENV=style
services:
addons:
apt:
packages:
before_install: echo "Going to run basic checks"
- stage: basics
python: 3.7
env: TOXENV=style
services:
addons:
apt:
packages:
before_install: echo "Going to run basic checks"
- stage: basics
python: 3.7
env: TOXENV=sdist,bdist_wheel
services:
addons:
apt:
packages:
before_install: echo "Going to run basic checks"
- stage: test
python: 3.7
env: TOXENV=api
services:
addons:
apt:
packages:
before_install: echo "Going to build API docs"
deploy:
provider: script
script: .github/deploy_docs.sh
skip_cleanup: true
on:
branch: master
- stage: test
python: 2.7
env: TOXENV=py27-cover
- stage: test
python: 3.5
env: TOXENV=py35-cover
- stage: test
python: 3.6
env: TOXENV=py36-cover
- stage: test
python: 3.7
env: TOXENV=py37-cover
- stage: test
# TODO: Change this once a stable Python 3.8 is on TravisCI:
python: 3.8-dev
env: TOXENV=py38-cover
- stage: test
python: pypy
env: TOXENV=pypy-nocov
- stage: test
python: pypy3
env: TOXENV=pypy3-nocov
sudo: false
addons:
apt:
packages:
- bwa
- clustalo
- clustalw
- emboss
- mafft
- muscle
- paml
- phyml
- probcons
- samtools
- wise
- t-coffee
- ncbi-blast+
# We setup $HOME/bin and add it to the $PATH for extra binaries we're using.
#
# There is a phyml Ubuntu package, but currently too old.
#
# There is no GenePop Ubuntu pacakge, although it is in BioConda.
#
# We also need DSSP for testing but it is not available in the repositories.
# Try to download the binary for Linux and place it in $HOME/bin
#
# This before_install list is only used for the test stage.
before_install:
- pushd $HOME
- mkdir -p bin
- export PATH=$HOME/bin:$PATH
- echo "Installing PhyML"
- curl -L -O http://www.atgc-montpellier.fr/download/binaries/phyml/PhyML-3.1.zip
- unzip PhyML-3.1.zip
- mv PhyML-3.1/PhyML-3.1_linux64 bin/phyml
#- echo "Installing dssp"
#- curl -L -O ftp://ftp.cmbi.ru.nl/pub/software/dssp/dssp-2.0.4-linux-amd64
#- mv dssp-2.0.4-linux-amd64 bin/dssp
#- chmod a+x bin/dssp
- echo "Installing Genepop"
- curl -L -O https://anaconda.org/bioconda/genepop/4.5.1/download/linux-64/genepop-4.5.1-0.tar.bz2
# This will create ./bin/Genepop and a harmless ./info/ folder.
- tar -jxvf genepop-4.5.1-0.tar.bz2
# Setup environment for t-coffee
- mkdir -p $HOME/tcoffee_temp
- export HOME_4_TCOFFEE=$HOME/tcoffee_temp
# There are TravisCI provided versions of PyPy and PyPy3, but currently too old.
# We therefore deactivate that, and download and unzip portable PyPy binaries.
- |
if [[ $TRAVIS_PYTHON_VERSION == 'pypy' ]]; then
deactivate
wget https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-6.0.0-linux_x86_64-portable.tar.bz2
tar -jxvf pypy-6.0.0-linux_x86_64-portable.tar.bz2
echo 'Setting up aliases...'
cd pypy-6.0.0-linux_x86_64-portable/bin/
export PATH=$PWD:$PATH
ln -s pypy python
echo 'Setting up pip...'
./pypy -m ensurepip
fi
- |
if [[ $TRAVIS_PYTHON_VERSION == 'pypy3' ]]; then
deactivate
wget https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.5-6.0.0-linux_x86_64-portable.tar.bz2
tar -jxvf pypy3.5-6.0.0-linux_x86_64-portable.tar.bz2
echo 'Setting up aliases...'
cd pypy3.5-6.0.0-linux_x86_64-portable/bin/
export PATH=$PWD:$PATH
ln -s pypy3 python
echo 'Setting up pip...'
./pypy3 -m ensurepip
ln -s pip3 pip
fi
- popd
- cp Tests/biosql.ini.sample Tests/biosql.ini
- psql -c "create database biosql_test;" -U postgres
- psql -c "create user biosql_user with encrypted password 'biosql_pass';" -U postgres
- psql -c "grant all privileges on database biosql_test to biosql_user;" -U postgres
# This is minimal and used under all stages
install:
- pip install --upgrade pip setuptools
- pip install tox
- tox -c .travis-tox.ini -e $TOXENV --notest
script:
- travis_wait 30 tox -c .travis-tox.ini -e $TOXENV
notifications:
email: false