language: python

os:
  - linux

dist: bionic

jobs:
  include:
    - python: "3.6"
      env: IMAGE_BACKEND=Pillow-SIMD
    - python: "3.6"

before_install:
  - sudo apt-get update
  - sudo apt-get install -y libpng-dev libjpeg-turbo8-dev
  - wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda.sh;
  - bash miniconda.sh -b -p $HOME/miniconda
  - export PATH="$HOME/miniconda/bin:$PATH"
  - hash -r
  - conda config --set always_yes yes --set changeps1 no
  # Useful for debugging any issues with conda
  - conda info -a

  - conda create -q -n test-environment python=$TRAVIS_PYTHON_VERSION cpuonly pytorch scipy -c pytorch-nightly
  - source activate test-environment
  - |
    if [[ "$IMAGE_BACKEND" == "Pillow-SIMD" ]]; then
      pip uninstall -y pillow && CC="cc -march=native" pip install --force-reinstall pillow-simd
    fi
  - pip install future
  - pip install pytest pytest-cov codecov
  - pip install typing
  - |
    if [[ $TRAVIS_PYTHON_VERSION == 3.6 ]]; then
      pip install -q --user typing-extensions==3.6.6
      pip install -q --user -i https://test.pypi.org/simple/ ort-nightly==1.4.0.dev202008122
    fi
  - conda install av -c conda-forge


install:
  # Using pip instead of setup.py ensures we install a non-compressed version of the package
  # (as opposed to an egg), which is necessary to collect coverage.
  # We still get the benefit of testing an installed version over the
  # test version to iron out installation file-inclusion bugs but can
  # also collect coverage.
  - pip install .
  # Move to home dir, otherwise we'll end up with the path to the
  # package in $PWD rather than the installed v
  - |
    cd $HOME
    export TV_INSTALL_PATH="$(python -c 'import os; import torchvision; print(os.path.dirname(os.path.abspath(torchvision.__file__)))')"
    echo "$TV_INSTALL_PATH"
    cd -

script:
  - pytest --cov-config .coveragerc --cov torchvision --cov $TV_INSTALL_PATH -k 'not TestVideoReader and not TestVideoTransforms and not TestIO' test --ignore=test/test_datasets_download.py
  - pytest test/test_hub.py

after_success:
  # Necessary to run coverage combine to rewrite paths from
  # /travis/env/path/site-packages/torchvision to actual path
  - coverage combine .coverage
  - coverage report
  - codecov
