language: python dist: xenial cache: false jobs: fast_finish: true include: - stage: baseline python: 3.6 env: - TOXENV=py36-dj20-postgres-xdist-coverage # Test in verbose mode. - PYTEST_ADDOPTS=-vv services: - postgresql - python: 3.6 env: TOXENV=py36-dj111-mysql_innodb-coverage services: - mysql - python: 2.7 env: TOXENV=py27-dj111-sqlite-xdist-coverage - python: 3.6 env: TOXENV=checkqa,docs - stage: test python: 3.7 env: TOXENV=py37-dj21-sqlite-coverage - python: 3.7 env: TOXENV=py37-dj22-sqlite-xdist-coverage - python: 3.8 env: TOXENV=py38-dj30-sqlite-xdist-coverage - python: 3.8 env: TOXENV=py38-dj31-sqlite-xdist-coverage # Explicitly test (older) pytest 4.1. - python: 3.7 env: TOXENV=py37-dj21-sqlite-pytest41-coverage - python: 3.6 env: TOXENV=py36-djmaster-sqlite-coverage # Explicitly test (older) pytest 5.3. - python: 3.5 env: TOXENV=py35-dj110-postgres-pytest53-coverage services: - postgresql - python: 3.4 env: TOXENV=py34-dj19-sqlite_file-coverage - python: 2.7 env: TOXENV=py27-dj111-mysql_myisam-coverage services: - mysql - python: 2.7 env: TOXENV=py27-dj18-postgres-coverage services: - postgresql # pypy/pypy3: not included with coverage reports (much slower then). - python: pypy env: TOXENV=pypy-dj111-sqlite_file - python: pypy3 env: TOXENV=pypy3-dj110-sqlite - stage: test_release python: 3.6 env: TOXENV=py36-dj20-postgres services: - postgresql - stage: release script: skip install: skip after_success: true deploy: provider: pypi user: blueyed password: secure: "FY7qbX/N0XRcH8hVk00SsQWvNIkuxKvY7Br4ghRnHvleHG3YulJ7WbJnik+9eoBGeMfJeNyzBfVjpeo1ZIq9IZBiyTdNfG/sZFsC5LOoG/CPxPH3nD9JktI2HoBMnlSbGg/MMHjY+wXuOY647U/3qNedcnQmGztYt6QWi5DRxu8=" on: tags: true distributions: "sdist bdist_wheel" # NOTE: does not show up in "allowed failures" section, but is allowed to # fail (for the "test" stage). allow_failures: - env: TOXENV=py36-djmaster-sqlite-coverage stages: - name: baseline if: tag IS NOT present - name: test if: tag IS NOT present - name: test_release if: tag IS present - name: release if: tag IS present install: - pip install tox==3.9.0 script: - tox after_success: - | set -ex if [[ "${TOXENV%-coverage}" != "$TOXENV" ]]; then bash <(curl -s https://codecov.io/bash) -Z -X gcov -X xcode -X gcovout fi set +ex