dist: xenial
sudo: true
language: python
python: "3.7"

jobs:
  include:

    - stage: code quality
      name: "pylint & mypy"
      install:
        - pip install astroid==2.0.4
        # newer astroid fails in pylint so we pre-install older version
        - pip install pylint mypy
        - pip install -e .
      script:
        - pylint --rcfile=setup.cfg torba
        - mypy --ignore-missing-imports torba
      after_success: skip

    - &tests
      stage: tests
      env: TESTTYPE=unit
      install:
        - pip install tox-travis
      script: tox
    - <<: *tests
      env: TESTTYPE=integration

after_success:
  - pip install coverage
  - coverage combine tests/
  - bash <(curl -s https://codecov.io/bash)

cache:
  directories:
    - $HOME/.cache/pip
    - $TRAVIS_BUILD_DIR/.tox