forked from QuantumElephant/calcdb
-
Notifications
You must be signed in to change notification settings - Fork 1
/
.travis.yml
69 lines (61 loc) · 2.67 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
language: python
notifications:
email: false
python:
- "2.7"
# - "3.6"
env:
global:
- QAWORKDIR=$HOME/qaworkdir
- CACHED=$QAWORKDIR/cached
- PIP_WHEEL_DIR=$CACHED/wheels
- PIP_FIND_LINKS=file://$CACHED/wheels
- PIP_NO_CACHE_DIR=no
- CTDATA=$TRAVIS_BUILD_DIR/data
cache:
directories:
- $HOME/qaworkdir/cached
install:
# We do this conditionally because it saves us some downloading if the
# version is the same.
- if [[ "$TRAVIS_PYTHON_VERSION" == "2.7" ]]; then
wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh -O miniconda.sh;
else
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh;
fi
- bash miniconda.sh -b -p $HOME/miniconda
- export PATH="$HOME/miniconda/bin:$PATH"
- hash -r
- conda config --set always_yes yes --set changeps1 no
- conda update -q conda
# Useful for debugging any issues with conda
- conda info -a
- deps='numpy scipy pytables sphinx nose coverage'
- conda create -p $HOME/py --yes -c pyqc $deps "python=$TRAVIS_PYTHON_VERSION"
- conda install -p $HOME/py -c conda-forge pycodestyle pydocstyle pylint gitpython
- source activate $HOME/py
# git lfs
- wget https://github.com/git-lfs/git-lfs/releases/download/v2.0.2/git-lfs-linux-amd64-2.0.2.tar.gz -P $HOME
- tar -xzvf ~/git-lfs-linux-amd64-2.0.2.tar.gz --directory $HOME
- export PATH=$PATH:$HOME/git-lfs-2.0.2
- git-lfs pull
# pythonpath
- export PYTHONPATH=$TRAVIS_BUILD_DIR:$PYTHONPATH
# Get the master branch and complete feature branch for a comparative analysis.
- tools/qa/get_master.sh
# Handle detached-HEAD situations that seem to be common on Travis-CI.
- tools/qa/fix_detached_head.sh
script:
# Run all checks. The behavior of the test script also depends on the current branch:
# 1) If the current branch is the master branch, only the non-comparative tests are
# executed: building HORTON, building documentations, fast unit tests, slow unit tests
# and some code analysis tools.
# 2) If the current branch is a feauture branch (or a pull request), it first runs all
# checks on the feature branch: building HORTON, building documentation, fast unit
# tests + coverage, slow unit tests, all code analysis tools. Then it checks out the
# common ancestor of the master and feature branch. In that commit, it runs the
# following tests: building HORTON, fast unit tests + coverage, all code analysis tools
# whose output needs to compared to the results from the feature branch (the trapdoor
# tests). Finally, it compares the outputs of both branches to check for regressions.
- source activate $HOME/py
- tools/qa/test_all_twobranches.sh