if: tag IS present OR type = pull_request OR (branch = master AND type = push) # we only CI the master, tags and PRs stages: - test - name: deploy if: repo = "tox-dev/tox" AND tag IS present group: travis_latest language: python dist: xenial sudo: required cache: pip env: TOXENV=py PYTEST_XDIST_PROC_NR=0 jobs: include: - python: 2.7 # 2.7.14 pip 9.0.1 - python: 3.4 # 3.4.6 pip 9.0.1 dist: trusty - python: 3.5 # 3.5.5 pip 9.0.1 - python: 3.6 # 3.6.3 pip 9.0.1 - python: 3.7 # 3.7.0 pip 10.0.1 - python: 3.8-dev - python: pypy # 2.7.13 pip 9.0.1 dist: trusty - python: pypy3 # 3.5.3 pip 9.0.1 dist: trusty - os: osx language: generic - python: 3.7 env: TOXENV=docs - python: 3.7 env: TOXENV=fix-lint - python: 3.7 env: TOXENV=package-description - stage: deploy python: '3.7' env: install: pip install "pip >= 10.0.0" script: skip after_success: python -c 'print("All done! ✨✨")' deploy: provider: pypi user: toxdev distributions: sdist bdist_wheel skip_upload_docs: true password: secure: GpPLWTVHMAOpHh2Jq+cYo9hE6cwTxPJ6fMA+q+ERWHtUAqSC88kBqoZ4DQb0cyFIlN24Z9f5J2vm80Q7Qv2UWCGVKeNaWMWFqvZ+P5czGEn7ARoeTsTaiyKTCC2w/7iDsne7dPcSHT/y8V2fO/35kcwcrc0EGr4peb9GDJ4asTFpffiVzW9l5OjV2+jQn+ihWNA0ujSB3AR4TLexXGH+Gf6O5uEHK/kPJ63NEDbJVEdciWqLbDiU+OwWl5Xb5hFX1fjKQ9dP4zA7SolNsNB6pqs4rLl2aHqKYOt1RYGgjWSvANDXKP7S46Q5LFIPkmt4QbOeWxX63NUMZUmWadbjoAF65q1d9Dq41IemsLmElSqpdfPaLtLgLCbNlgHRLNVH+nJVqxjc3bvdxi28K8DZ9BB9KGmPkrbbj4NB0prsPouKiBkUS9NyoQuDt1EzJ3Rn2FzMOH41X5gIqzdsdxcy+3DV2Bb+eozNgg+51n27ESf7vwiYMW9GFENw/6AcPkxIPYakQu4joJ+327wVfK4t0gdy/m4qu2n0Lx6wOJUdSOcOAT5bPaRBQV92gXAaVUsROKMfrzwlVLuA+GXcnj8fft8aMXem30+N3r7y5FjbiAts345qnbjSWV3w9qEbNjM/Z9mt7z1OfsqCarJ2Mj5wKQyYfewddYMjdk7aPW5/9gQ= on: all_branches: true matrix: fast_finish: true allow_failures: - python: 3.8-dev - python: pypy - python: pypy3 - os: osx # Sadly Travis at the moment does not provide as job filter option git changeset, however we emulate it via bash # we have two type of tasks to run here # - test (TOXENV=py) => run only if source/packaging/CI files change # - linter and documentation -> always build # if this is a tag build we force full build before_install: - python -c 'import sys; print(sys.version)' - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then source .travis-osx; fi - export BUILD="setup.py pyproject.toml MANIFEST.in setup.cfg tox.ini .travis.yml appveyor.yml" - export SRC=$(git diff --name-only $TRAVIS_COMMIT_RANGE -- '*.py' $BUILD | grep -v conf.py | grep -v "tasks/.*.py") - '[[ "$TOXENV"!="py" || (-n "$SRC" && "$TOXENV"="py") ]] && export RUN="YES"' install: - '[ -n "$RUN" ] && pip install --pre -U tox' - '[ -n "$RUN" ] && tox --notest' script: - '[ -n "$RUN" ] && tox' after_success: - '[[ -n "$RUN" && "$TOXENV"="py" ]] && tox -e coverage,codecov'