language: python
sudo: false
cache: pip


python:
  - 2.7
  - 3.4
  - 3.5
  - 3.6
  - 3.6-dev
  - pypy3.5

env:
  - PYTHONHASHSEED=random
    TEST_REQUIRE="gevent greenlet geventhttpclient fastimport"

matrix:
  include:
    - python: pypy
      env: TEST_REQUIRE=fastimport
    - python: 3.7
      env: TEST_REQUIRE=fastimport
      dist: xenial
      sudo: true
    # flakes checker fails on python 3.8-dev:
    #- python: 3.8-dev
    #  env: TEST_REQUIRE=fastimport
    #  dist: xenial
    #  sudo: true

install:
  - travis_retry pip install -U pip coverage codecov flake8 $TEST_REQUIRE

script:
  # Test without c extensions
  - python -m coverage run -p -m unittest dulwich.tests.test_suite

  # Test with c extensions
  - python setup.py build_ext -i
  - python -m coverage run -p -m unittest dulwich.tests.test_suite

  # Style
  - make style

after_success:
  - python -m coverage combine
  - codecov
