# vim ft=yaml
# Multiple lines can be made a single "virtual line" because of how Travis
# munges each line before executing it to print out the exit status.  It's okay
# for it to be on multiple physical lines, so long as you remember: - There
# can't be any leading "-"s - All newlines will be removed, so use ";"s

dist: bionic
language: python
cache: pip
python:
  - 2.7
  - 3.5
  - 3.6
  - 3.7
  - 3.8
env:
  REQUIRE_ASPELL=true

addons:
  apt:
    packages:
      - libaspell-dev
      - aspell-en

before_install:
    - source tools/travis_tools.sh
    - SRC_DIR=$PWD
    - cd ~
    - virtualenv --python=python venv
    - source venv/bin/activate
    - python --version  # just to check
    - pip install -U pip wheel # upgrade to latest pip find 3.5 wheels; wheel to avoid errors
    - retry pip install pytest pytest-cov pytest-dependency flake8 coverage codecov chardet setuptools docutils check-manifest
    - if [ ${TRAVIS_PYTHON_VERSION:0:1} == "2" ]; then retry pip install aspell-python-py2; fi
    - if [ ${TRAVIS_PYTHON_VERSION:0:1} == "3" ]; then retry pip install aspell-python-py3; fi
    - cd $SRC_DIR

install:
    - python setup.py install

script:
    - codespell --help
    - make check-dictionary
    - codespell --skip="codespell_lib/tests/test_basic.py,codespell_lib/data/*" codespell_lib/
    # this file has an error
    - "! codespell codespell_lib/tests/test_basic.py"
    - flake8
    - if [ "$TRAVIS_PYTHON_VERSION" != "2.7" ]; then
        python setup.py check --restructuredtext --strict;
      fi;
    - pytest codespell_lib
    - make check-manifest

after_success:
    - codecov
