Skip to content

Commit

Permalink
BLD: adapted travis to catalyst
Browse files Browse the repository at this point in the history
  • Loading branch information
lacabra committed Jul 11, 2018
1 parent a738648 commit 76d01f2
Showing 1 changed file with 43 additions and 52 deletions.
95 changes: 43 additions & 52 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,82 +1,73 @@
language: python
sudo: false
fast_finish: true
python:
- 2.7
- 3.4
- 3.5

matrix:
include:
- python: 2.7
env: NUMPY_VERSION=1.13.1 SCIPY_VERSION=0.19.1
- python: 3.6
env: NUMPY_VERSION=1.14 SCIPY_VERSION=1.0.0

cache:
directories:
- $HOME/.cache/pip
- $HOME/miniconda
timeout: 1000 # defaults to 3 min, set in seconds

env:
global:
# 1. Generated a token for travis at https://anaconda.org/quantopian/settings/access with scope api:write.
# Can also be done via anaconda CLI with
# $ TOKEN=$(anaconda auth --create --name my_travis_token)
# 2. Generated secure env var below with travis gem via
# $ travis encrypt ANACONDA_TOKEN=$TOKEN
# See https://github.com/travis-ci/travis.rb#installation.
# If authenticating travis gem with github, a github token with the following scopes
# is sufficient: ["read:org", "user:email", "repo_deployment", "repo:status", "write:repo_hook"]
# See https://docs.travis-ci.com/api#external-apis.
- secure: "W2tTHoZYLuEjoIMI/K3adv7QW7yx4iVOIkVOn73jUkv3IlyZZ+BraL0hBw5Dh/iBA9PnO1qOKeRFLDDfDza/1S+2QxZMBmJ8HAkcZehbtTPdCgn/+CYSlauUlJ2izxgnXFw49qJDllQWtwsK2PEuvHrir6wbdElkXKvIJoD7jQ4="
- CONDA_ROOT_PYTHON_VERSION: "2.7"
matrix:
- NUMPY_VERSION=1.11.1 SCIPY_VERSION=0.17.1
cache:
directories:
- $HOME/.cache/.pip/
- MINICONDA_DIR="$HOME/miniconda${TRAVIS_PYTHON_VERSION:0:1}"

before_install:
- if [ ${CONDA_ROOT_PYTHON_VERSION:0:1} == "2" ]; then wget https://repo.continuum.io/miniconda/Miniconda-3.7.0-Linux-x86_64.sh -O miniconda.sh; else wget https://repo.continuum.io/miniconda/Miniconda3-3.7.0-Linux-x86_64.sh -O miniconda.sh; fi
- chmod +x miniconda.sh
- ./miniconda.sh -b -p $HOME/miniconda
- export PATH="$HOME/miniconda/bin:$PATH"
- curl -L http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz --output ta-lib-0.4.0-src.tar.gz
- tar zxf ta-lib-0.4.0-src.tar.gz
- cd ta-lib && ./configure --prefix=/usr && make && sudo make install && cd ..
- |
if [ -d "$MINICONDA_DIR" ] && [ -e "$MINICONDA_DIR/bin/conda" ]; then
echo "Miniconda install already present from cache: $MINICONDA_DIR"
export PATH="$MINICONDA_DIR/bin:$PATH"
else
rm -rf "$MINICONDA_DIR"
if [ ${TRAVIS_PYTHON_VERSION:0:1} == "2" ]; 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 "$MINICONDA_DIR"
fi
- export PATH="$MINICONDA_DIR/bin:$PATH"
- conda update --yes conda

install:
- conda info -a
- conda install conda=4.1.11 conda-build=1.21.11 anaconda-client=1.5.1 --yes

- TALIB_VERSION=$(cat ./etc/requirements_talib.txt | sed "s/TA-Lib==\(.*\)/\1/")
- IFS='.' read -r -a NPY_VERSION_ARR <<< "$NUMPY_VERSION"
- CONDA_NPY=${NPY_VERSION_ARR[0]}${NPY_VERSION_ARR[1]}
- CONDA_PY=$TRAVIS_PYTHON_VERSION

- if [[ "$TRAVIS_SECURE_ENV_VARS" = "true" && "$TRAVIS_BRANCH" = "master" && "$TRAVIS_PULL_REQUEST" = "false" ]]; then DO_UPLOAD="true"; else DO_UPLOAD="false"; fi
- |
for recipe in $(ls -d conda/*/ | xargs -I {} basename {}); do
if [[ "$recipe" = "catalyst" ]]; then continue; fi
conda build conda/$recipe --python=$CONDA_PY --numpy=$CONDA_NPY --skip-existing -c quantopian -c quantopian/label/ci
RECIPE_OUTPUT=$(conda build conda/$recipe --python=$CONDA_PY --numpy=$CONDA_NPY --output)
if [[ -f "$RECIPE_OUTPUT" && "$DO_UPLOAD" = "true" ]]; then anaconda -t $ANACONDA_TOKEN upload "$RECIPE_OUTPUT" -u quantopian --label ci; fi
done
- conda create -n testenv --use-local --yes -c quantopian pip python=$TRAVIS_PYTHON_VERSION numpy=$NUMPY_VERSION scipy=$SCIPY_VERSION libgfortran=3.0 ta-lib=$TALIB_VERSION
- source activate testenv
if [ ! -d "$MINICONDA_DIR/envs/testenv$TRAVIS_PYTHON_VERSION" ]; then
conda create -n testenv$TRAVIS_PYTHON_VERSION --use-local --yes pip python=$TRAVIS_PYTHON_VERSION numpy=$NUMPY_VERSION scipy=$SCIPY_VERSION libgfortran=3.0 certifi=2018.1.18
fi
- source activate testenv$TRAVIS_PYTHON_VERSION

- CACHE_DIR="$HOME/.cache/.pip/pip_np""$CONDA_NPY"
- CACHE_DIR="$HOME/.cache/pip/pip_np""$CONDA_NPY"
- pip install --upgrade pip coverage coveralls --cache-dir=$CACHE_DIR
- pip install -r etc/requirements.txt --cache-dir=$CACHE_DIR
- pip install -r etc/requirements_dev.txt --cache-dir=$CACHE_DIR
- pip install -r etc/requirements_blaze.txt --cache-dir=$CACHE_DIR # this uses git requirements right now
- pip install -r etc/requirements_talib.txt --cache-dir=$CACHE_DIR
- pip install -e .[all] --cache-dir=$CACHE_DIR
- pip install -e . --cache-dir=$CACHE_DIR

before_script:
- pip freeze | sort

script:
- flake8 catalyst tests
- nosetests --with-coverage
# deactive env to get access to anaconda command
- source deactivate

# unshallow the clone so the conda build can clone it.
- git fetch --unshallow
- exec 3>&1; ZP_OUT=$(conda build conda/catalyst --python=$CONDA_PY --numpy=$CONDA_NPY -c quantopian -c quantopian/label/ci | tee >(cat - >&3))
- ZP_OUTPUT=$(echo "$ZP_OUT" | grep "anaconda upload" | awk '{print $NF}')
- if [[ "$DO_UPLOAD" = "true" ]]; then anaconda -t $ANACONDA_TOKEN upload $ZP_OUTPUT -u quantopian --label ci; fi
# reactivate env (necessary for coveralls)
- source activate testenv
- cd tests && nosetests

after_success:
- coveralls

branches:
only:
- master
notifications:
email:
on_success: always
on_failure: always

0 comments on commit 76d01f2

Please sign in to comment.