@@ -5,45 +5,46 @@ dist: trusty
55jobs :
66 fast_finish : true
77 include :
8- # py37 is not available in trusty dist, and requires sudo=true with xenial.
8+ - stage : baseline
9+ python : 3.6
10+ env : TOXENV=py36-dj20-postgres-coverage
11+ - python : 3.6
12+ env : TOXENV=py36-dj111-sqlite-coverage
13+ - python : 2.7
14+ env : TOXENV=py27-dj111-mysql_innodb-coverage
15+ - python : 3.6
16+ env : TOXENV=checkqa,docs
17+
918 - stage : test
19+ # py37 is not available in trusty dist, and requires sudo=true with xenial.
1020 python : 3.7
11- env : TOXENV=py37-dj21-sqlite
21+ env : TOXENV=py37-dj21-sqlite-coverage
1222 dist : xenial
1323 sudo : true
1424
1525 - python : 3.6
16- env : TOXENV=py36-djmaster-sqlite
17- - python : 3.6
18- env : TOXENV=py36-dj20-postgres
19- - python : 3.6
20- env : TOXENV=py36-dj111-sqlite
26+ env : TOXENV=py36-djmaster-sqlite-coverage
2127
2228 - python : 3.5
23- env : TOXENV=py35-dj110-postgres
29+ env : TOXENV=py35-dj110-postgres-coverage
2430
2531 - python : 3.4
26- env : TOXENV=py34-dj19-sqlite_file
32+ env : TOXENV=py34-dj19-sqlite_file-coverage
2733
2834 - python : 2.7
29- env : TOXENV=py27-dj111-mysql_innodb
30- - python : 2.7
31- env : TOXENV=py27-dj111-mysql_myisam
35+ env : TOXENV=py27-dj111-mysql_myisam-coverage
3236 - python : 2.7
33- env : TOXENV=py27-dj18-postgres
37+ env : TOXENV=py27-dj18-postgres-coverage
3438
3539 # pypy/pypy3: not included with coverage reports (much slower then).
3640 - python : pypy
37- env : TOXENV=pypy-dj111-sqlite_file SKIP_COVERAGE=1
41+ env : TOXENV=pypy-dj111-sqlite_file
3842 - python : pypy3
39- env : TOXENV=pypy3-dj110-sqlite SKIP_COVERAGE=1
40-
41- - python : 3.6
42- env : TOXENV=checkqa,docs SKIP_COVERAGE=1
43+ env : TOXENV=pypy3-dj110-sqlite
4344
4445 - stage : test_release
4546 python : 3.6
46- env : TOXENV=py36-dj20-postgres SKIP_COVERAGE=1
47+ env : TOXENV=py36-dj20-postgres
4748
4849 - stage : release
4950 script : skip
6162 # NOTE: does not show up in "allowed failures" section, but is allowed to
6263 # fail (for the "test" stage).
6364 allow_failures :
64- - env : TOXENV=py36-djmaster-sqlite
65+ - env : TOXENV=py36-djmaster-sqlite-coverage
6566
6667stages :
68+ - name : baseline
69+ if : tag IS NOT present
6770 - name : test
6871 if : tag IS NOT present
6972 - name : test_release
@@ -73,31 +76,16 @@ stages:
7376
7477install :
7578 - pip install tox==3.3.0
76- - |
77- # Setup coverage tracking.
78- if [[ "$SKIP_COVERAGE" != "1" ]]; then
79- PYTEST_DJANGO_COVERAGE=1
80- export PYTEST_ADDOPTS='--cov=pytest_django --cov=tests --cov=pytest_django_test --cov-report=term-missing:skip-covered'
81- export _PYTESTDJANGO_TOX_EXTRA_DEPS='pytest-cov==2.5.1'
82- else
83- PYTEST_DJANGO_COVERAGE=0
84- fi
8579
8680script :
8781 - tox
8882
8983after_success :
9084 - |
9185 set -ex
92- if [[ "$PYTEST_DJANGO_COVERAGE" = 1 ]]; then
93- pip install codecov
94-
95- coverage --version
96- coverage combine
97- coverage xml
98-
99- codecov_flags=${TOXENV//./}
100- codecov_flags=${codecov_flags//-/ }
101- codecov --required -X search gcov pycov -f coverage.xml --flags $codecov_flags
86+ if [[ "${TOXENV%-coverage}" != "$TOXENV" ]]; then
87+ codecov_flags=${TOXENV%-coverage}
88+ codecov_flags=${codecov_flags//-/,}
89+ bash <(curl -s https://codecov.io/bash) -Z -X gcov -X xcode -X gcovout -F "$codecov_flags"
10290 fi
10391 set +x
0 commit comments