diff options
author | Daniel Moody <dmoody256@gmail.com> | 2017-12-10 06:11:45 (GMT) |
---|---|---|
committer | Daniel Moody <dmoody256@gmail.com> | 2017-12-10 06:11:45 (GMT) |
commit | a19c00f5061b620b27f570851566cd93c8b2e0db (patch) | |
tree | 2120bcad487d8213273b51f93cbd799c9e2c9ce6 | |
parent | b16418686e04ff2ab8295969e4233f55f376f747 (diff) | |
download | SCons-a19c00f5061b620b27f570851566cd93c8b2e0db.zip SCons-a19c00f5061b620b27f570851566cd93c8b2e0db.tar.gz SCons-a19c00f5061b620b27f570851566cd93c8b2e0db.tar.bz2 |
rewrote the travis script to first run a plain test, then do the coverage tests.
-rw-r--r-- | .travis.yml | 108 |
1 files changed, 65 insertions, 43 deletions
diff --git a/.travis.yml b/.travis.yml index b1c44e3..a593e1c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,18 +1,6 @@ dist: trusty -matrix: - include: - - env: BUILD_JOB_NUM=1 - - env: BUILD_JOB_NUM=2 - - env: BUILD_JOB_NUM=3 - - env: BUILD_JOB_NUM=4 - - env: BUILD_JOB_NUM=5 - - env: BUILD_JOB_NUM=6 - - env: BUILD_JOB_NUM=7 - - env: BUILD_JOB_NUM=8 - - -before_install: +install: - sudo apt-get -y install clang gdc docbook-xml xsltproc libxml2-dev libxslt-dev python-pip python-dev fop docbook-xsl-doc-pdf texlive-full biber texmaker build-essential libpcre3-dev autoconf automake libtool bison subversion git - sudo pip install lxml - sudo wget http://master.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list @@ -24,35 +12,69 @@ before_install: - wget https://github.com/swig/swig/archive/rel-3.0.12.tar.gz - tar xzf rel-3.0.12.tar.gz - cd swig-rel-3.0.12 && ./autogen.sh && ./configure --prefix=/usr && make && sudo make install && cd .. - - sudo pip install coverage - - sudo pip install coveralls - - echo "import coverage" | sudo tee --append /usr/lib/python2.7/sitecustomize.py - - echo "coverage.process_startup()" | sudo tee --append /usr/lib/python2.7/sitecustomize.py -script: - - export TOTAL_BUILD_JOBS=8 - - export COVERAGE_PROCESS_START=$PWD/.coveragerc - - echo "[run]" >> .coveragerc - - echo "source = $PWD/src" >> .coveragerc - - echo "parallel = True" >> .coveragerc -# WORKAROUND: attempt to retry JobTests.py if it fails and then continue if it passes, if it fails ten times -# then it is a real failure not related to intermittent travis failures - - n=0; while [[ $n -lt 10 ]]; do coverage run --rcfile=$PWD/.coveragerc runtest.py src/engine/SCons/JobTests.py && break; n=$((n+1)); done; if [ "$n" -gt "9" ]; then false; fi -# exclude JobTest.py becuase we already ran that - - echo "src/engine/SCons/JobTests.py" > exclude_jobtest -# also exclude this test since it overides the exit function which doesnt work with coverage -# more info here: https://coverage.readthedocs.io/en/coverage-4.4.2/subprocess.html# -# TODO: figure out how to cover test/exitfns.py - - echo "test/exitfns.py" >> exclude_jobtest - - python runtest.py -l -a --exclude-list exclude_jobtest > all_tests - - let "start = ($(wc -l < all_tests) / ${TOTAL_BUILD_JOBS}) * (${BUILD_JOB_NUM} - 1)"; true; - - let "end = ($(wc -l < all_tests) / ${TOTAL_BUILD_JOBS}) * ${BUILD_JOB_NUM}" - - 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 --rcfile=$PWD/.coveragerc runtest.py -f build_tests || if [[ $? == 2 ]]; then true; else false; fi +jobs: + include: + - &test_job + stage: Test + script: + - n=0; while [[ $n -lt 10 ]]; do python runtest.py src/engine/SCons/JobTests.py && break; n=$((n+1)); done; if [ "$n" -gt "9" ]; then false; fi + - echo "src/engine/SCons/JobTests.py" > exclude_jobtest + - python runtest.py -a --exclude-list exclude_jobtest || if [[ $? == 2 ]]; then true; else false; fi + before_script: skip + after_success: skip + + - &coverage_jobs + stage: Coverage + + before_script: + - sudo pip install coverage + - sudo pip install coveralls + - echo "import coverage" | sudo tee --append /usr/lib/python2.7/sitecustomize.py + - echo "coverage.process_startup()" | sudo tee --append /usr/lib/python2.7/sitecustomize.py + + script: + - export TOTAL_BUILD_JOBS=8 + - export COVERAGE_PROCESS_START=$PWD/.coveragerc + - echo "[run]" >> .coveragerc + - echo "source = $PWD/src" >> .coveragerc + - echo "parallel = True" >> .coveragerc + # WORKAROUND: attempt to retry JobTests.py if it fails and then continue if it passes, if it fails ten times + # then it is a real failure not related to intermittent travis failures + - n=0; while [[ $n -lt 10 ]]; do coverage run --rcfile=$PWD/.coveragerc runtest.py src/engine/SCons/JobTests.py && break; n=$((n+1)); done; if [ "$n" -gt "9" ]; then false; fi + # exclude JobTest.py becuase we already ran that + - echo "src/engine/SCons/JobTests.py" > exclude_jobtest + # also exclude this test since it overides the exit function which doesnt work with coverage + # more info here: https://coverage.readthedocs.io/en/coverage-4.4.2/subprocess.html# + # TODO: figure out how to cover test/exitfns.py + - echo "test/exitfns.py" >> exclude_jobtest + - python runtest.py -l -a --exclude-list exclude_jobtest > all_tests + - let "start = ($(wc -l < all_tests) / ${TOTAL_BUILD_JOBS}) * (${BUILD_JOB_NUM} - 1)"; true; + - let "end = ($(wc -l < all_tests) / ${TOTAL_BUILD_JOBS}) * ${BUILD_JOB_NUM}" + - 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 --rcfile=$PWD/.coveragerc runtest.py -f build_tests || if [[ $? == 2 ]]; then true; else false; fi + + after_success: + - coverage combine + - coverage report + - coveralls --rcfile=$PWD/.coveragerc + + env: BUILD_JOB_NUM=1 -after_success: - - coverage combine - - coverage report - - coveralls --rcfile=$PWD/.coveragerc
\ No newline at end of file + - <<: *coverage_jobs + env: BUILD_JOB_NUM=2 + - <<: *coverage_jobs + env: BUILD_JOB_NUM=3 + - <<: *coverage_jobs + env: BUILD_JOB_NUM=4 + - <<: *coverage_jobs + env: BUILD_JOB_NUM=5 + - <<: *coverage_jobs + env: BUILD_JOB_NUM=6 + - <<: *coverage_jobs + env: BUILD_JOB_NUM=7 + - <<: *coverage_jobs + env: BUILD_JOB_NUM=8 +
\ No newline at end of file |