blob: 122e8d19b7b6f52f0687c5798e968ff30045f6fd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
dist: trusty
language: python
# Used: travis encrypt "chat.freenode.net#scons" --add notifications.irc
notifications:
irc:
secure: TTb+41Bj1qIUc6vj+kDqBME8H3lqXdAe1RWAjjz5hL7bzFah6qCBHNJn4DwzqYs6+Pwuwp+6wFy8hgmQttJnXve4h6GtjtvlWprDqxaC7RkFqMWFDBzDalgbB54Bi4+TTZmSJ1K/duI3LrDaN873nyn+2GBnj+3TiNtgURp1fsJMpPxXJzAsoC8UthEsbx0Zkoal/WF+IfsT2q1yQRmAwB9r/drbahx/FfL16r1QjDbI9y1fKvN5J3PirLUvxtHfuH1r8zq1vlLew2fvldgVRtFv7+Lsk2waG/eiRpMf94V5JWP1rNreV/i4AUbZaTLb3bkrhtvTjSKhvx69Ydm+ygXdRgWOD/KRgqpLNAfA+t/a2J1R++89svQI4dPBpQjlfua1elcDCFddeIslgnjDUPO23Y0o7tHAy8sWkwhTcZH1Wm42uJP6Z6tHTH6+dMLvvZpkq4RUKUcrXvoUvCsVlWMGjcsBX+AEQSFGDJnLtLehO9x0QbgVga/IRKjgpDWgQDZgro3AkGg/zzVj5uFRUoU+rbmEXq9feh5i3HfExAvA3UoEtnQ6uadDyWqtQcLRFmPSWDU82CO+sanGdFL0jBjigE8ubPObzxEAz3Fg1xk56OYBkAdEd+2KEzeO1nqJmrhsnc3c/3+b1cBvaL5ozW4XB4XcWsOi268SoiBrcBo=
addons:
apt:
update: true
os:
- linux
install:
# needed for Docbook tests, must be in virtualenv context
- pip install lxml==4.3.3
# do the rest of the image setup
- ./.travis/install.sh
# Note: Travis does not provide a way to specify the order of
# jobs within a Stage, which are "run in parallel", but with
# limitations: from observation four or five are kicked
# off, then additional jobs as initial ones complete.
# We want the slowest jobs in the first batch since the
# faster ones are less than half the time of the slowest,
# we should be able to finish the Test task in the time of the
# slowest job rather than (a fast job + the slowest job).
# Putting the pypy jobs first may help with this, though it's
# apparently not guaranteed.
jobs:
# pypy is not passing atm, but still report build success for now
# allow coverage to fail, so we can still do testing for all platforms
allow_failures:
- python: pypy3
include:
- &test_job
script: python runtest.py -a -t -j 2 || if [[ $? == 2 ]]; then true; else false; fi
before_script: skip
after_success: skip
python: pypy3
- <<: *test_job
python: 3.5
- <<: *test_job
python: 3.6
- <<: *test_job
python: 3.7
dist: xenial # required for Python >= 3.7
- <<: *test_job
python: 3.8
dist: bionic # required for Python >= 3.8
- <<: *test_job
python: 3.9-dev
dist: bionic # required for Python >= 3.8
- &coverage_jobs
dist: bionic
python: 3.7
name: coverage
before_script:
- python -m pip install -U coverage codecov
- python -m site
# setup sitecustomize so we can make all subprocess start coverage
- export PYSITEDIR=$(python -c "import sys; print(sys.path[-1])")
- export COVERAGE_PROCESS_START="$PWD/.coveragerc"
- mkdir -p "$PYSITEDIR"
- echo "$PYSITEDIR"
- touch "${PYSITEDIR}/sitecustomize.py"
- echo "import os" | tee --append "${PYSITEDIR}/sitecustomize.py"
- echo "os.environ['COVERAGE_PROCESS_START'] = '$PWD/.coveragerc'" | tee --append "${PYSITEDIR}/sitecustomize.py"
- echo "import coverage" | tee --append "${PYSITEDIR}/sitecustomize.py"
- echo "coverage.process_startup()" | tee --append "${PYSITEDIR}/sitecustomize.py"
- cat "${PYSITEDIR}/sitecustomize.py"
# write the coverage config file
- echo "[run]" >> "$PWD/.coveragerc"
- echo "source = $PWD/SCons" >> "$PWD/.coveragerc"
- echo "parallel = True" >> "$PWD/.coveragerc"
- echo "omit = *Tests.py" >> "$PWD/.coveragerc"
- echo "[path]" >> "$PWD/.coveragerc"
- echo "source = $PWD" >> "$PWD/.coveragerc"
- echo "[report]" >> "$PWD/.coveragerc"
- echo "omit = *Tests.py" >> "$PWD/.coveragerc"
- cat "$PWD/.coveragerc"
script:
- coverage run -p --rcfile="$PWD/.coveragerc" runtest.py -a -j 2 || if [[ $? == 2 ]]; then true; else false; fi
after_script:
- coverage combine
- coverage report
- coverage xml -o coverage_xml.xml
- codecov -X gcov --file coverage_xml.xml
|