forked from theochem/cardboardlint
-
Notifications
You must be signed in to change notification settings - Fork 1
/
.travis.yml
91 lines (81 loc) · 3.16 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
env:
matrix:
- MYCONDAPY=2.7
- MYCONDAPY=3.6
global:
- PYPKG=cardboardlint
- GITHUB_REPO_NAME=theochem/cardboardlint
# Do not use Travis Python to save some time.
language: generic
os:
- linux
- osx
osx_image: xcode6.4
dist: trusty
sudo: false
branches:
only:
- master
- /^[0-9]+\.[0-9]+(\.[0-9]+)?([ab][0-9]+)?$/
install:
# Get miniconda. Take the right version, so re-installing python is only needed for 3.5.
- if [[ "$MYCONDAPY" == "2.7" ]]; then
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
wget https://repo.continuum.io/miniconda/Miniconda2-latest-Linux-x86_64.sh -O miniconda.sh;
else
wget https://repo.continuum.io/miniconda/Miniconda2-latest-MacOSX-x86_64.sh -O miniconda.sh;
fi;
else
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh;
else
wget https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh -O miniconda.sh;
fi;
fi
- bash miniconda.sh -b -p $HOME/miniconda
- source $HOME/miniconda/bin/activate
- hash -r
# Configure conda and get a few essentials
- conda config --set always_yes yes --set changeps1 no
- conda config --add channels theochem
- conda update -q conda
# Get the right python version for building. This only does something for 3.5.
# Install extra package needed to make things work. Most things can be listed as
# dependencies on metal.yaml and setup.py, unless setup.py already imports them.
# Install conda tools for packaging and uploading
- conda install python=${MYCONDAPY} cppcheck doxygen conda-build anaconda-client
# Pip install python-based linters
- pip install pylint codecov coverage pycodestyle pydocstyle flake8
# Get the latest cpplint
- wget https://raw.githubusercontent.com/google/styleguide/gh-pages/cpplint/cpplint.py
- chmod +x cpplint.py
# Useful for debugging
- conda info -a
script:
# Install the package, in a way that facilitates coverage analysis on the installed script.
- python setup.py develop
# Run the cardboardlinter, to get the exit code for Travis CI. No arguments because we
# want everything to be clean.
- cardboardlinter
# Run tests out of source tree, to make sure that installed version is tested.
- (cd;
coverage erase;
nosetests $PYPKG -v --detailed-errors --with-coverage --cover-package=$PYPKG --cover-tests --cover-inclusive --cover-branches &&
coverage xml -i -o coverage_unittest.xml)
# Run the program on the example, without using the diff
- (cd tools/example;
coverage erase;
coverage run --include=*cardboardlint* --omit=*poor* $(which cardboardlinter);
coverage xml -i -o ~/coverage_examples_all.xml)
- (cd tools/example;
coverage erase;
coverage run --include=*cardboardlint* --omit=*poor* $(which cardboardlinter) --refspec HEAD^;
coverage xml -i -o ~/coverage_examples_refspec.xml)
# Build source package, should work too and needed for deployment to Github and
# PyPI.
- python setup.py sdist
after_success:
# Upload the coverage analysis
- codecov --file ~/coverage_unittest.xml --name unittest
- codecov --file ~/coverage_examples_all.xml --name examples_all
- codecov --file ~/coverage_examples_refspec.xml --name examples_refspec