language: python matrix: include: - python: 2.7 - python: 3.5 - python: 3.6 - python: 3.7 dist: xenial sudo: true - python: 3.7 dist: xenial env: TEST_OFFICIAL=true - python: pypy2.7-5.10.0 dist: xenial - python: pypy3.5-5.10.1 dist: xenial allow_failures: - python: pypy2.7-5.10.0 - python: pypy3.5-5.10.1 - env: TEST_OFFICIAL=true dist: trusty sudo: false branches: only: - master - /^[vV]\d+$/ cache: directories: - $HOME/.cache/pip - $HOME/.pre-commit before_cache: - rm -f $HOME/.cache/pip/log/debug.log - rm -f $HOME/.pre-commit/pre-commit.log install: - pip install -U codecov pytest-cov - echo $TRAVIS_PYTHON_VERSION - if [[ $TRAVIS_PYTHON_VERSION == '3.7'* ]]; then pip install -U git+https://github.com/yaml/pyyaml.git; fi - pip install -U -r requirements.txt - pip install -U -r requirements-dev.txt - if [[ $TRAVIS_PYTHON_VERSION != 'pypy'* ]]; then pip install ujson; fi script: - if [[ $TEST_OFFICIAL != 'true' ]]; then pytest -v -m nocoverage; fi - if [[ $TEST_OFFICIAL != 'true' ]]; then pytest -v -m "not nocoverage" --cov; fi - if [[ $TEST_OFFICIAL == 'true' ]]; then pytest -v tests/test_official.py; fi after_success: - coverage combine - codecov -F Travis