os: linux language: python addons: apt: packages: - gdb - python-dbg - python3-dbg - libzmq-dev # needed by IPython/Tornado #- gcc-8 #- g++-8 cache: pip: true directories: - $HOME/.ccache env: global: - USE_CCACHE=1 - CCACHE_SLOPPINESS=pch_defines,time_macros - CCACHE_COMPRESS=1 - CCACHE_MAXSIZE=250M - PATH="/usr/lib/ccache:$HOME/miniconda/bin:$PATH" - BACKEND=c,cpp matrix: include: - python: 2.7 env: BACKEND=c - python: 2.7 env: BACKEND=cpp - python: 3.7 dist: xenial # Required for Python 3.7 sudo: required # travis-ci/travis-ci#9069 env: BACKEND=c - python: 3.7 dist: xenial # Required for Python 3.7 sudo: required # travis-ci/travis-ci#9069 env: BACKEND=cpp - python: 2.6 env: BACKEND=c - python: 2.6 env: BACKEND=cpp # Disabled: coverage analysis takes excessively long, several times longer than without. # - python: 3.7 # dist: xenial # Required for Python 3.7 # sudo: required # travis-ci/travis-ci#9069 # env: COVERAGE=1 - python: 3.7 dist: xenial # Required for Python 3.7 sudo: required # travis-ci/travis-ci#9069 env: TEST_CODE_STYLE=1 - python: 3.4 env: BACKEND=c - python: 3.4 env: BACKEND=cpp - python: 3.5 env: BACKEND=c - python: 3.5 env: BACKEND=cpp - python: 3.6 env: BACKEND=c - python: 3.6 env: BACKEND=cpp - python: 3.8 dist: xenial # Required for Python 3.7 sudo: required # travis-ci/travis-ci#9069 env: BACKEND=c - python: 3.8 dist: xenial # Required for Python 3.7 sudo: required # travis-ci/travis-ci#9069 env: BACKEND=cpp - python: 3.9 dist: xenial # Required for Python 3.7 sudo: required # travis-ci/travis-ci#9069 env: BACKEND=c - python: 3.9 dist: xenial # Required for Python 3.7 sudo: required # travis-ci/travis-ci#9069 env: BACKEND=cpp - os: osx osx_image: xcode6.4 env: PY=2 python: 2.7 language: c compiler: clang cache: false - os: osx osx_image: xcode10.3 env: PY=3 MACOSX_DEPLOYMENT_TARGET=10.9 python: 3.9 language: c compiler: clang cache: false - python: pypy env: BACKEND=c - python: pypy3 env: BACKEND=c - env: STACKLESS=true BACKEND=c PY=2 python: 2.7 - env: STACKLESS=true BACKEND=c PY=3 python: 3.6 allow_failures: - python: pypy - python: pypy3 branches: only: - master - release - 0.29.x before_install: - | if [ "$TRAVIS_OS_NAME" == "linux" ]; then # adding apt repos in travis is really fragile => retry a couple of times. for i in {1..10}; do travis_retry sudo apt-add-repository --yes 'ppa:ubuntu-toolchain-r/test' && break; sleep 2; done for i in {1..10}; do travis_retry sudo apt-get update && travis_retry sudo apt-get install --yes gcc-8 $(if [ -z "${BACKEND##*cpp*}" ]; then echo -n "g++-8"; fi ) && break; sleep 2; done sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60 $(if [ -z "${BACKEND##*cpp*}" ]; then echo " --slave /usr/bin/g++ g++ /usr/bin/g++-8"; fi) sudo update-alternatives --set gcc /usr/bin/gcc-8 export CC=gcc if [ -z "${BACKEND##*cpp*}" ]; then sudo update-alternatives --set g++ /usr/bin/g++-8; export CXX=g++; fi fi - | if [ "$TRAVIS_OS_NAME" == "osx" -o "$STACKLESS" == "true" ]; then echo "Installing Miniconda" if [ "$TRAVIS_OS_NAME" == "osx" ]; then CONDA_PLATFORM=MacOSX; else CONDA_PLATFORM=Linux; fi travis_retry wget -O miniconda.sh https://repo.continuum.io/miniconda/Miniconda$PY-latest-${CONDA_PLATFORM}-x86_64.sh || exit 1 bash miniconda.sh -b -p $HOME/miniconda && rm miniconda.sh || exit 1 conda --version || exit 1 #conda install --quiet --yes nomkl --file=test-requirements.txt --file=test-requirements-cpython.txt if [ "$TRAVIS_OS_NAME" == "osx" ]; then which clang && clang --version && export CC="clang -Wno-deprecated-declarations" || true which clang++ && clang++ --version && export CXX="clang++ -stdlib=libc++ -Wno-deprecated-declarations" || true fi fi - if [ -n "$CC" ]; then which $CC; $CC --version; fi - if [ -n "$CXX" ]; then which $CXX; $CXX --version; fi - if [ "$STACKLESS" == "true" ]; then conda config --add channels stackless; travis_retry conda install --quiet --yes stackless; fi install: - python -c 'import sys; print("Python %s" % (sys.version,))' - if [ -z "${TRAVIS_PYTHON_VERSION##2.7}" ]; then [ "$TRAVIS_OS_NAME" == "osx" -a "$PY" == "3" ] || pip install -r test-requirements-27.txt ; fi - if [ -n "${TRAVIS_PYTHON_VERSION##*-dev}" -a -n "${TRAVIS_PYTHON_VERSION##2.*}" ]; then pip install -r test-requirements.txt $( [ -z "${TRAVIS_PYTHON_VERSION##pypy*}" -o -z "${TRAVIS_PYTHON_VERSION##3.[47890]*}" ] || echo " -r test-requirements-cpython.txt" ) ; fi # - CFLAGS="-O2 -ggdb -Wall -Wextra $(python -c 'import sys; print("-fno-strict-aliasing" if sys.version_info[0] == 2 else "")')" python setup.py build before_script: ccache -s || true script: - PYTHON_DBG="python$( python -c 'import sys; print("%d.%d" % sys.version_info[:2])' )-dbg" - if [ "$TEST_CODE_STYLE" = "1" ]; then STYLE_ARGS="--no-unit --no-doctest --no-file --no-pyregr --no-examples"; else STYLE_ARGS=--no-code-style; if $PYTHON_DBG -V >&2; then CFLAGS="-O0 -ggdb" $PYTHON_DBG runtests.py -vv --no-code-style Debugger --backends=$BACKEND; fi; #if [ -z "${BACKEND##*cpp*}" -a -n "${TRAVIS_PYTHON_VERSION##*-dev}" ]; then pip install pythran; fi; if [ "$BACKEND" != "cpp" -a -n "${TRAVIS_PYTHON_VERSION##2*}" -a -n "${TRAVIS_PYTHON_VERSION##*-dev}" -a -n "${TRAVIS_PYTHON_VERSION##*3.4}" ]; then pip install mypy; fi; fi - if [ "$COVERAGE" != "1" ]; then CFLAGS="-O2 -ggdb -Wall -Wextra $(python -c 'import sys; print("-fno-strict-aliasing" if sys.version_info[0] == 2 else "")')" python setup.py build_ext -i; fi - CFLAGS="-O0 -ggdb -Wall -Wextra" python runtests.py -vv $STYLE_ARGS -x Debugger --backends=$BACKEND $(if [ "$COVERAGE" == "1" ]; then echo " --coverage"; fi) $(if [ -z "$TEST_CODE_STYLE" ]; then echo " -j7 "; fi) - ccache -s || true