-
Notifications
You must be signed in to change notification settings - Fork 18
/
.travis.yml
124 lines (103 loc) · 3.64 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
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=pyobjcryst
- 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 numpy
- $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-setuptools python-numpy scons
build-essential python-dev libboost-all-dev
python-pip
- $NOBREW || test "${TRAVIS_OS_NAME}" = "osx" || exit $?
- $NOBREW || brew update
- $NOBREW || brew unlink python@2
- $NOBREW || brew upgrade python
- $NOBREW || brew install gcc || brew link --overwrite gcc
- $NOBREW || brew install boost-python3
- $NOBREW || brew install scons
- $NOBREW || $MYPIP install numpy
- $NOSYS || devutils/makesdist
- $NOSYS || MYTARBUNDLE="$(ls -t "${PWD}"/dist/*.tar.gz | head -1)"
- $NOSYS || pushd ~/pkgs
- $NOSYS || git clone https://github.com/diffpy/libobjcryst.git
- $NOSYS || popd
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
- MYSUDO=
- $NOAPT || MYSUDO=sudo
- $NOSYS || $MYPIP install $MYPIPFLAGS coverage
- $NOSYS || $MYSUDO scons -C ~/pkgs/libobjcryst install
- $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:
- $MYPIP install $MYPIPFLAGS codecov
- codecov