-
Notifications
You must be signed in to change notification settings - Fork 21
/
.travis.yml
123 lines (102 loc) · 3.71 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
dist: xenial
language: generic
os:
- linux
- osx
env:
- MYUSEMC=true MYPYTHON_VERSION=2.7
- MYUSEMC=true MYPYTHON_VERSION=3.5
- MYUSEMC=true MYPYTHON_VERSION=3.6
- MYUSEMC=true MYPYTHON_VERSION=3.7
- MYUSEMC=false
git:
depth: 999999
branches:
except:
- /^v[0-9]/
before_install:
- MYNAME=diffpy.srfit
- MYCOMMIT="$(git rev-parse HEAD)"
- umask 022
- git fetch origin --tags
- MYPYTHON=python; MYPIP=pip
- NOSYS=true; NOAPT=true; NOBREW=true; NOMC=true
- if ${MYUSEMC}; then
NOMC=false;
elif [[ ${TRAVIS_OS_NAME} == linux ]]; then
NOAPT=false; NOSYS=false;
MYPIPFLAGS="--user";
elif [[ ${TRAVIS_OS_NAME} == osx ]]; then
NOBREW=false; NOSYS=false;
MYPYTHON=python3;
MYPIP=pip3;
MYPIPFLAGS="--user";
fi
- MYMCREPO=https://repo.anaconda.com/miniconda
- case ${TRAVIS_OS_NAME} in
linux)
MYMCBUNDLE=Miniconda3-latest-Linux-x86_64.sh ;;
osx)
MYMCBUNDLE=Miniconda3-latest-MacOSX-x86_64.sh ;;
*)
echo "Unsupported operating system." >&2;
exit 2 ;;
esac
- MYRUNDIR=${PWD}/build/rundir
- mkdir -p ~/pkgs
- mkdir -p ${MYRUNDIR}
- cp .coveragerc ${MYRUNDIR}/
- $NOMC || pushd ~/pkgs
- $NOMC || wget --timestamping ${MYMCREPO}/${MYMCBUNDLE}
- $NOMC || test -x ~/mc/bin/conda || bash ${MYMCBUNDLE} -b -f -p ~/mc
- $NOMC || popd
- $NOMC || source ~/mc/bin/activate base
- $NOMC || conda update --yes conda
- $NOMC || conda install --yes conda-build conda-verify jinja2
- $NOMC || conda create --name=testenv --yes python=${MYPYTHON_VERSION} coverage
- $NOMC || conda config --add channels diffpy
- $NOAPT || test "${TRAVIS_OS_NAME}" = "linux" || exit $?
- $NOAPT || PATH="$(echo "$PATH" | sed 's,:/opt/pyenv/[^:]*,,g')"
- $NOAPT || test "$(which python)" = "/usr/bin/python" || (
which python; exit 1)
- $NOAPT || sudo apt-get update -qq
- $NOAPT || sudo apt-get install -y
python-dev python-setuptools python-numpy
build-essential
- $NOBREW || test "${TRAVIS_OS_NAME}" = "osx" || exit $?
- $NOBREW || brew update
- $NOBREW || brew upgrade python
- $NOBREW || brew install gcc || brew link --overwrite gcc
- $NOSYS || devutils/makesdist
- $NOSYS || MYTARBUNDLE="$(ls -t "${PWD}"/dist/*.tar.gz | head -1)"
install:
- $NOMC || conda build --python=${MYPYTHON_VERSION} conda-recipe
- $NOMC || conda render --python=${MYPYTHON_VERSION} --output conda-recipe |
sed 's,.*/,,; s/[.]tar[.]bz2$//; s/-/=/g' > /tmp/mypackage.txt
- $NOMC || source activate testenv
- $NOMC || conda install --yes --use-local --file=/tmp/mypackage.txt
- $NOMC || conda install --yes
diffpy.structure pyobjcryst "diffpy.srreal>=1.3.0"
# TODO - always install srfit-sasview when ready for Python 3.
- if $MYUSEMC && [[ "$MYPYTHON_VERSION" == 2.7 ]]; then
conda install --yes srfit-sasview;
fi
- $NOSYS || $MYPIP install $MYPIPFLAGS coverage
- $NOSYS || $MYPIP install $MYPIPFLAGS pycifrw
- $NOSYS || $MYPIP install $MYPIPFLAGS diffpy.structure
- $NOSYS || $MYPIP install $MYPIPFLAGS "${MYTARBUNDLE}"
- cd ${MYRUNDIR}
- MYGIT_REV=$($MYPYTHON -c "import ${MYNAME}.version as v; print(v.__git_commit__)")
- if [[ "${MYCOMMIT}" != "${MYGIT_REV}" ]]; then
echo "Version mismatch ${MYCOMMIT} vs ${MYGIT_REV}.";
exit 1;
fi
before_script:
- $NOBREW || USER_BASE="$(python3 -c 'import site; print(site.USER_BASE)')"
- $NOBREW || PATH="${USER_BASE}/bin:${PATH}"
script:
- coverage run --source ${MYNAME} -m ${MYNAME}.tests.run
after_success:
# do not post coverage reports when testing with system Python.
- $NOMC || $MYPIP install $MYPIPFLAGS codecov
- $NOMC || codecov