@@ -5,45 +5,46 @@ dist: trusty
5
5
jobs :
6
6
fast_finish : true
7
7
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
+
9
18
- stage : test
19
+ # py37 is not available in trusty dist, and requires sudo=true with xenial.
10
20
python : 3.7
11
- env : TOXENV=py37-dj21-sqlite
21
+ env : TOXENV=py37-dj21-sqlite-coverage
12
22
dist : xenial
13
23
sudo : true
14
24
15
25
- 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
21
27
22
28
- python : 3.5
23
- env : TOXENV=py35-dj110-postgres
29
+ env : TOXENV=py35-dj110-postgres-coverage
24
30
25
31
- python : 3.4
26
- env : TOXENV=py34-dj19-sqlite_file
32
+ env : TOXENV=py34-dj19-sqlite_file-coverage
27
33
28
34
- 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
32
36
- python : 2.7
33
- env : TOXENV=py27-dj18-postgres
37
+ env : TOXENV=py27-dj18-postgres-coverage
34
38
35
39
# pypy/pypy3: not included with coverage reports (much slower then).
36
40
- python : pypy
37
- env : TOXENV=pypy-dj111-sqlite_file SKIP_COVERAGE=1
41
+ env : TOXENV=pypy-dj111-sqlite_file
38
42
- 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
43
44
44
45
- stage : test_release
45
46
python : 3.6
46
- env : TOXENV=py36-dj20-postgres SKIP_COVERAGE=1
47
+ env : TOXENV=py36-dj20-postgres
47
48
48
49
- stage : release
49
50
script : skip
61
62
# NOTE: does not show up in "allowed failures" section, but is allowed to
62
63
# fail (for the "test" stage).
63
64
allow_failures :
64
- - env : TOXENV=py36-djmaster-sqlite
65
+ - env : TOXENV=py36-djmaster-sqlite-coverage
65
66
66
67
stages :
68
+ - name : baseline
69
+ if : tag IS NOT present
67
70
- name : test
68
71
if : tag IS NOT present
69
72
- name : test_release
@@ -73,31 +76,16 @@ stages:
73
76
74
77
install :
75
78
- 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
85
79
86
80
script :
87
81
- tox
88
82
89
83
after_success :
90
84
- |
91
85
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"
102
90
fi
103
91
set +x
0 commit comments