-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy path.travis.yml
128 lines (111 loc) · 4.04 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
sudo: required
language: generic
os:
- linux
- osx
env:
- MYUSEMC=true MYPYTHON_VERSION=2.7
- MYUSEMC=true MYPYTHON_VERSION=3.4
- MYUSEMC=true MYPYTHON_VERSION=3.5
- MYUSEMC=true MYPYTHON_VERSION=3.6
- MYUSEMC=false
git:
depth: 999999
branches:
except:
- /^v[0-9]/
before_install:
- MYNAME=pyobjcryst
- umask 022
- git fetch origin --tags
- MYPYTHON=python; MYPIP=pip
- NOAPT=true; NOBREW=true; NOMC=true
- if ${MYUSEMC}; then
NOMC=false;
elif [[ ${TRAVIS_OS_NAME} == linux ]]; then
NOAPT=false;
MYPIPFLAGS="--user";
elif [[ ${TRAVIS_OS_NAME} == osx ]]; then
NOBREW=false;
MYPYTHON=python3;
MYPIP=pip3;
MYPIPFLAGS="--user";
fi
- MYMCREPO=https://repo.continuum.io/miniconda
- case ${TRAVIS_OS_NAME} in
linux)
MYMCBUNDLE=Miniconda2-latest-Linux-x86_64.sh ;;
osx)
MYMCBUNDLE=Miniconda2-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 root
- $NOMC || conda update --yes conda
- $NOMC || conda install --yes conda-build jinja2 scons numpy
# Make scons available globally.
- $NOMC || mkdir -p ~/bin
- $NOMC || cp ~/mc/bin/scons ~/bin/
- $NOMC || conda create --name=testenv --yes python=${MYPYTHON_VERSION} coverage
- $NOMC || conda config --add channels diffpy
# FIXME - keep just the "diffpy" channel for public release.
- $NOMC || conda config --add channels diffpy/channel/dev
- $NOAPT || test "${TRAVIS_OS_NAME}" = "linux" || exit $?
- $NOAPT || sudo apt-get update -qq
- $NOAPT || sudo apt-get install -y
python-setuptools python-numpy scons
build-essential python-dev libboost-all-dev
python-pip
- $NOAPT || devutils/makesdist
- $NOAPT || MYTARBUNDLE="$(ls -t "${PWD}"/dist/*.tar.gz | head -1)"
- $NOAPT || pushd ~/pkgs
- $NOAPT || git clone https://github.com/diffpy/libObjCryst.git
- $NOAPT || popd
- $NOBREW || test "${TRAVIS_OS_NAME}" = "osx" || exit $?
- $NOBREW || brew update
- $NOBREW || brew install scons
- $NOBREW || brew install python3
- $NOBREW || brew install boost-python --with-python3
- $NOBREW || brew tap homebrew/python
- $NOBREW || brew install numpy --without-python --with-python3
- $NOBREW || devutils/makesdist
- $NOBREW || MYTARBUNDLE="$(ls -t "${PWD}"/dist/*.tar.gz | head -1)"
- $NOBREW || pushd ~/pkgs
- $NOBREW || git clone https://github.com/diffpy/libObjCryst.git
- $NOBREW || popd
install:
- $NOMC || conda build --python=${MYPYTHON_VERSION} --dirty conda-recipe
- $NOMC || MYCONDATESTENV="$(ls -td ~/mc/conda-bld/${MYNAME}_*/_t_env* | head -1)"
- $NOMC || source activate ${MYCONDATESTENV:?"conda test environment not found"}
- $NOMC || conda list --export ${MYNAME} > /tmp/mypackage.txt
- $NOMC || source activate testenv
- $NOMC || conda install --yes --use-local --file=/tmp/mypackage.txt
- $NOAPT || $MYPIP install $MYPIPFLAGS coverage
- $NOAPT || sudo scons -C ~/pkgs/libObjCryst install
- $NOAPT || $MYPIP install $MYPIPFLAGS --user "${MYTARBUNDLE}"
- $NOBREW || $MYPIP install $MYPIPFLAGS coverage
- $NOBREW || scons -C ~/pkgs/libObjCryst install
- $NOBREW || $MYPIP install $MYPIPFLAGS "${MYTARBUNDLE}"
- cd ${MYRUNDIR}
- MYGIT_REV=$($MYPYTHON -c "import ${MYNAME}.version as v; print(v.__gitsha__)")
- if [[ "${TRAVIS_COMMIT}" != "${MYGIT_REV}" ]]; then
echo "Version mismatch ${TRAVIS_COMMIT} 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:
- $MYPIP install $MYPIPFLAGS codecov
- codecov