summaryrefslogtreecommitdiff
path: root/.travis.yml
diff options
context:
space:
mode:
Diffstat (limited to '.travis.yml')
-rw-r--r--.travis.yml96
1 files changed, 58 insertions, 38 deletions
diff --git a/.travis.yml b/.travis.yml
index a8cb940..8a55575 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,18 +1,23 @@
dist: trusty
language: python
+# Used: travis encrypt "chat.freenode.net#scons" --add notifications.irc
notifications:
- irc: "chat.freenode.net#scons"
+ 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
+ apt:
+ update: true
os:
- linux
install:
- - ./.travis/install.sh
+ # 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
# 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
@@ -27,58 +32,73 @@ stages:
- Coverage
- Test
+# 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:
include:
- &test_job
stage: Test
- script: python runtest.py -a -t || if [[ $? == 2 ]]; then true; else false; fi
+ script: python runtest.py -a -t -j 2 || if [[ $? == 2 ]]; then true; else false; fi
before_script: skip
after_success: skip
+ python: pypy3
+ env:
+ - PYVER=pypy3
+ - PYTHON=pypy3
+ sudo: required
+
+ - <<: *test_job
+ python: pypy
+ env:
+ - PYVER=pypy
+ - PYTHON=pypy
+ sudo: required
+
+ - <<: *test_job
python: 2.7
- env:
+ env:
- PYVER=27
- PYTHON=2.7
sudo: required
-
+
- <<: *test_job
python: 3.5
- env:
+ env:
- PYVER=35
- PYTHON=3.5
sudo: required
- <<: *test_job
python: 3.6
- env:
+ env:
- PYVER=36
- PYTHON=3.6
sudo: required
- <<: *test_job
python: 3.7
- env:
+ env:
- PYVER=37
- PYTHON=3.7
sudo: required
- dist: xenial # required for Python 3.7 (travis-ci/travis-ci#9069)
+ dist: xenial # required for Python >= 3.7
- - &slow_test_job
- stage: Test
- script: python runtest.py -a -j 4 -t || if [[ $? == 2 ]]; then true; else false; fi
- before_script: skip
- after_success: skip
- python: pypy
- env:
- - PYVER=pypy
- - PYTHON=pypy
- sudo: required
-
- - <<: *slow_test_job
- python: pypy3
- env:
- - PYVER=pypy3
- - PYTHON=pypy3
+ - <<: *test_job
+ python: 3.8-dev
+ env:
+ - PYVER=38
+ - PYTHON=3.8
sudo: required
+ dist: xenial # required for Python >= 3.7
- &coverage_jobs
@@ -109,7 +129,7 @@ jobs:
- echo "import coverage" | sudo tee --append ${PYSITEDIR}/usercustomize.py
- echo "coverage.process_startup()" | sudo tee --append ${PYSITEDIR}/usercustomize.py
- script:
+ script:
- export TOTAL_BUILD_JOBS=4
# write the coverage config file
- export COVERAGE_PROCESS_START=$PWD/.coveragerc
@@ -128,8 +148,8 @@ jobs:
- if (( ${BUILD_JOB_NUM} == ${TOTAL_BUILD_JOBS} )); then end=$(wc -l < all_tests); fi
- if (( ${start} == 0 )); then start=1; fi
- sed -n ${start},${end}p all_tests > build_tests
- - coverage run -p --rcfile=$PWD/.coveragerc runtest.py -f build_tests || if [[ $? == 2 ]]; then true; else false; fi
-
+ - coverage run -p --rcfile=$PWD/.coveragerc runtest.py -f build_tests -j 2 || if [[ $? == 2 ]]; then true; else false; fi
+
after_script:
- coverage combine
- coverage report
@@ -140,48 +160,48 @@ jobs:
#- python$PYTHON -m pip install --user -U coveralls
#- coveralls --rcfile=$PWD/.coveragerc
- env:
+ env:
- PYVER=27
- PYTHON=2.7
- BUILD_JOB_NUM=1
- <<: *coverage_jobs
- env:
+ env:
- PYVER=27
- PYTHON=2.7
- BUILD_JOB_NUM=2
- <<: *coverage_jobs
- env:
+ env:
- PYVER=27
- PYTHON=2.7
- BUILD_JOB_NUM=3
- <<: *coverage_jobs
- env:
+ env:
- PYVER=27
- PYTHON=2.7
- BUILD_JOB_NUM=4
- <<: *coverage_jobs
python: 3.6
- env:
+ env:
- PYVER=36
- PYTHON=3.6
- BUILD_JOB_NUM=1
- <<: *coverage_jobs
python: 3.6
- env:
+ env:
- PYVER=36
- PYTHON=3.6
- BUILD_JOB_NUM=2
- <<: *coverage_jobs
python: 3.6
- env:
+ env:
- PYVER=36
- PYTHON=3.6
- BUILD_JOB_NUM=3
- <<: *coverage_jobs
python: 3.6
- env:
+ env:
- PYVER=36
- PYTHON=3.6
- BUILD_JOB_NUM=4