https://github.com/brian-team/brian2
Raw File
Tip revision: b61baf834b5aafd31dd58ad60de7cae2be79ec2f authored by Marcel Stimberg on 08 November 2017, 09:09:59 UTC
***** Release Brian2 2.1.2 *****
Tip revision: b61baf8
.travis.yml
language: c  # We are not using the Python infrastructure
sudo: false  # Make sure we are using the container-based infrastructure

env:
  global:
    secure: "UiGZoh0Ac4StHCHlJ9+nRm3r5bvcJunTzX7xeg8KGBE/oL/TMTKmOTw7DbJ/zMG3RfecU1U3+GiTtPHluXRkFqiLNijKP0aO22rGcTHAHBNerIg+CZxpubbAP6+qvL1xlJzpb3R5CghDGRvFzV9Oc/vUs5PxnF9tUDQfSA0/Ksg="

# Install packages for cross-compilation to 32 Bit
addons:
  apt:
    packages:
    - gcc-multilib
    - g++-multilib
    - lib32z1

matrix:
  include:
      # test that the documentation can be built from the tarball -- we
      # automatically build it from github master all the time, but downstream
      # packaging will use the tarball as the basis
    - python: "2.7"
      env: PYTHON="2.7" DOCS_ONLY=yes ARCHITECTURE="x86_64"
      os: linux
    # Standard tests
    - python: "2.7"
      env: PYTHON="2.7" STANDALONE=yes CYTHON=no MINIMAL_VERSIONS=no REPORT_COVERAGE=no CONDA_BUILD='no' ARCHITECTURE="x86_64"
      os: osx
    - python: "3.6"
      env: PYTHON="3.6" STANDALONE=yes CYTHON=no MINIMAL_VERSIONS=no REPORT_COVERAGE=no CONDA_BUILD='no' ARCHITECTURE="x86_64"
      os: osx
    - python: "2.7"
      env: PYTHON="2.7" STANDALONE=no CYTHON=yes MINIMAL_VERSIONS=no  REPORT_COVERAGE=yes CONDA_PY="27" CONDA_BUILD='yes' SPLIT_RUN=1 ARCHITECTURE="x86_64"
      os: linux
    - python: "2.7"
      env: PYTHON="2.7" STANDALONE=no CYTHON=yes MINIMAL_VERSIONS=no  REPORT_COVERAGE=yes CONDA_PY="27" CONDA_BUILD='no' SPLIT_RUN=2 ARCHITECTURE="x86_64"
      os: linux
    - python: "2.7"
      env: PYTHON="2.7" STANDALONE=no CYTHON=yes MINIMAL_VERSIONS=no  REPORT_COVERAGE=no CONDA_PY="27" CONDA_BUILD='yes' SPLIT_RUN=1 ARCHITECTURE="x86_64"
      os: osx
    - python: "2.7"
      env: PYTHON="2.7" STANDALONE=no CYTHON=yes MINIMAL_VERSIONS=no  REPORT_COVERAGE=no CONDA_PY="27" CONDA_BUILD='no' SPLIT_RUN=2 ARCHITECTURE="x86_64"
      os: osx
#    - python: "2.7"
#      env: PYTHON="2.7" STANDALONE=no CYTHON=yes MINIMAL_VERSIONS=no  REPORT_COVERAGE=no  CONDA_PY="27" CONDA_BUILD='no' SPLIT_RUN=1 ARCHITECTURE="x86"
#      os: linux
#    - python: "2.7"
#      env: PYTHON="2.7" STANDALONE=no CYTHON=yes MINIMAL_VERSIONS=no  REPORT_COVERAGE=no  CONDA_PY="27" CONDA_BUILD='yes' SPLIT_RUN=2 ARCHITECTURE="x86"
#      os: linux
    - python: "2.7"
      env: PYTHON="2.7" STANDALONE=no CYTHON=yes MINIMAL_VERSIONS=yes REPORT_COVERAGE=no  SPLIT_RUN=1 ARCHITECTURE="x86_64"
      os: linux
    - python: "2.7"
      env: PYTHON="2.7" STANDALONE=no CYTHON=yes MINIMAL_VERSIONS=yes REPORT_COVERAGE=no  SPLIT_RUN=2 ARCHITECTURE="x86_64"
      os: linux
    - python: "3.5"
      env: PYTHON="3.5" STANDALONE=no CYTHON=yes MINIMAL_VERSIONS=no  REPORT_COVERAGE=no  CONDA_PY="35" CONDA_BUILD='yes' ARCHITECTURE="x86_64"
      os: linux
    - python: "3.5"
      env: PYTHON="3.5" STANDALONE=no CYTHON=yes MINIMAL_VERSIONS=no  REPORT_COVERAGE=no  CONDA_PY="35" CONDA_BUILD='yes' ARCHITECTURE="x86_64"
      os: osx
#    - python: "3.5"
#      env: PYTHON="3.5" STANDALONE=no CYTHON=yes MINIMAL_VERSIONS=no  REPORT_COVERAGE=no  CONDA_PY="35" CONDA_BUILD='yes' ARCHITECTURE="x86"
#      os: linux
    - python: "3.6"
      env: PYTHON="3.6" STANDALONE=no CYTHON=yes MINIMAL_VERSIONS=no  REPORT_COVERAGE=no  CONDA_PY="36" CONDA_BUILD='yes' ARCHITECTURE="x86_64"
      os: linux
    - python: "3.6"
      env: PYTHON="3.6" STANDALONE=no CYTHON=yes MINIMAL_VERSIONS=no  REPORT_COVERAGE=no  CONDA_PY="36" CONDA_BUILD='yes' ARCHITECTURE="x86_64"
      os: osx
    # test standalone
    - python: "2.7"
      env: PYTHON="2.7" STANDALONE=yes CYTHON=no MINIMAL_VERSIONS=no REPORT_COVERAGE=yes CONDA_BUILD='no' ARCHITECTURE="x86_64"
      os: linux
#    - python: "2.7"
#      env: PYTHON="2.7" STANDALONE=yes CYTHON=no MINIMAL_VERSIONS=no REPORT_COVERAGE=no CONDA_BUILD='no' ARCHITECTURE="x86"
#      os: linux
    - python: "3.6"
      env: PYTHON="3.6" STANDALONE=yes CYTHON=no MINIMAL_VERSIONS=no REPORT_COVERAGE=no CONDA_BUILD='no' ARCHITECTURE="x86_64"
      os: linux
    # test without installed cython
    - python: "2.7"
      env: PYTHON="2.7" STANDALONE=no CYTHON=no MINIMAL_VERSIONS=no REPORT_COVERAGE=yes ARCHITECTURE="x86_64"
      os: linux
    - python: "3.5"
      env: PYTHON="3.5" STANDALONE=no CYTHON=no MINIMAL_VERSIONS=no REPORT_COVERAGE=no ARCHITECTURE="x86_64"
      os: linux
    - python: "3.6"
      env: PYTHON="3.6" STANDALONE=no CYTHON=no MINIMAL_VERSIONS=no REPORT_COVERAGE=no ARCHITECTURE="x86_64"
      os: linux

# Use miniconda to install binary versions of numpy etc. from continuum
# analytic's repository. Follows an approach described by Dan Blanchard:
# https://gist.github.com/dan-blanchard/7045057
before_install:
- if [ ${PYTHON:0:1} == "2" ]; then
    if [ "$TRAVIS_OS_NAME" == "linux" ]; then
    travis_retry wget http://repo.continuum.io/miniconda/Miniconda2-latest-Linux-$ARCHITECTURE.sh -O miniconda.sh;
    else
    travis_retry wget http://repo.continuum.io/miniconda/Miniconda2-latest-MacOSX-$ARCHITECTURE.sh -O miniconda.sh;
    fi;
    else
    if [ "$TRAVIS_OS_NAME" == "linux" ]; then
    travis_retry wget http://repo.continuum.io/miniconda/Miniconda3-latest-Linux-$ARCHITECTURE.sh -O miniconda.sh;
    else
    travis_retry wget http://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-$ARCHITECTURE.sh -O miniconda.sh;
    fi;
  fi
- chmod +x miniconda.sh
# When we are installing the 32 Bit conda on a 64 Bit system, the miniconda
# installer will ask for a "yes" despite the -b flag, so we pipe in a yes
- yes | ./miniconda.sh -b -p ~/miniconda
- export PATH=~/miniconda/bin:$PATH

# command to install dependencies
install:
  # - conda update --yes conda
  - echo "conda ==4.3.21" >> ~/miniconda/conda-meta/pinned  # Pin conda as workaround for conda/conda#6030
  # For faster tests, only build conda packages for the master branch or pull requests
  - if [[ $TRAVIS_PULL_REQUEST == 'false' ]] && [[ $TRAVIS_BRANCH != 'master' ]]; then
       CONDA_BUILD='no';
    fi
  - if [[ $CONDA_BUILD == 'yes' ]]; then
       conda install --yes --quiet anaconda-client conda-build jinja2 pip setuptools;
    fi
  - if [[ $MINIMAL_VERSIONS == 'yes' ]]; then
    travis_retry conda create -n travis_conda --yes --quiet pip python=$PYTHON numpy==1.9 scipy==0.14 nose "sphinx<1.6.3" ipython sympy==0.7.6 jinja2==2.7 pyparsing setuptools coverage;
    else
    travis_retry conda create -n travis_conda --yes --quiet pip python=$PYTHON numpy nose "sphinx<1.6.3" ipython "sympy!=1.1.0" pyparsing jinja2 setuptools coverage;
    fi
  - source activate travis_conda
  # On Python 2: Install an older version of scipy that still has weave
  - if [ ${PYTHON:0:1} == "2" ]; then
      travis_retry conda install --yes --quiet -c brian-team weave scipy;
      travis_retry conda install --yes --quiet bsddb;
    else
      travis_retry conda install --yes --quiet scipy;
    fi
  - travis_retry conda install --yes --quiet -c brian-team py-cpuinfo  # install cpuinfo from our own channel
  - travis_retry conda install --yes --quiet -c conda-forge "gsl>1.15"  # install gsl from conda-forge
  - if [[ $CYTHON == 'yes' ]]; then travis_retry conda install --yes cython; SETUP_ARGS=--with-cython; else SETUP_ARGS=''; fi
  - if [[ $REPORT_COVERAGE == 'yes' ]]; then travis_retry pip install -q coveralls; fi
  - python setup.py install $SETUP_ARGS --fail-on-error --single-version-externally-managed --record=record.txt
  - if [[ $DOCS_ONLY == 'yes' ]]; then
      python setup.py sdist;
    fi;

# command to run tests (make sure to not run it from the source directory)
script:
- if [[ $CONDA_BUILD == 'yes' ]]; then
    source deactivate;
    for NUMPY_VERSION in 1.12 1.13; do
      conda build --quiet -c conda-forge dev/conda-recipe --numpy $NUMPY_VERSION;
    done;
    source activate travis_conda;
  fi
# Don't run tests in parallel when reporting coverage
- if [[ $DOCS_ONLY == 'yes' ]]; then
    cd dist;
    tar xvzf *.tar.gz;
    cd Brian2*;
    mkdir docs;
    sphinx-build docs_sphinx docs;
  else
    export SRCDIR=$(pwd);
    SCRIPTFILE=$SRCDIR/dev/continuous-integration/run_test_suite.py;
    cd ~;
    if [[ $ARCHITECTURE == 'x86' ]]; then mkdir ~/.brian; cp $SRCDIR/dev/continuous-integration/preferences_for_32_bit ~/.brian/user_preferences; export CROSS_COMPILED=TRUE; fi;
    coverage run --rcfile=$SRCDIR/.coveragerc $SCRIPTFILE;
  fi

after_success:
# We only upload to binstar for commits merged into the master branch
- if [[ $CONDA_BUILD == 'yes' && $TRAVIS_PULL_REQUEST == 'false' && $TRAVIS_REPO_SLUG == 'brian-team/brian2' && $TRAVIS_BRANCH == 'master' ]]; then
    cd $SRCDIR;
    source deactivate;
    python dev/continuous-integration/move-conda-package.py dev/conda-recipe &&
    python dev/continuous-integration/conda-server-push.py;
    source activate travis_conda;
  fi;
  if [[ $REPORT_COVERAGE == 'yes' ]]; then
    cd ~;
    cp .coverage $SRCDIR;
    cd $SRCDIR;
    coveralls;
  fi

notifications:
  email: false

back to top