language: python sudo: false fast_finish: true python: - 2.7 - 3.4 - 3.5 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/ 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" 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 - 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 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 after_success: - coveralls branches: only: - master