From: Zachary Ware Date: Sun, 18 Feb 2018 21:45:48 +0000 (-0600) Subject: [2.7] Clean up Travis config (GH-5727) X-Git-Tag: v2.7.15rc1~47 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=21f53e7249d838489033abf4fc267bec00c1af3e;p=python [2.7] Clean up Travis config (GH-5727) (cherry picked from commit 7eb3f8226ea7b79dae4e4e8b05730cfe0d9af7c1) --- diff --git a/.travis.yml b/.travis.yml index 6a64ec62ab..175432dd45 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,13 +5,14 @@ group: beta # To cache doc-building dependencies and C compiler output. cache: - - pip - - ccache + - pip + - ccache branches: only: - master - /^\d\.\d$/ + - buildbot-custom matrix: fast_finish: true @@ -37,28 +38,53 @@ matrix: script: - make check suspicious html SPHINXOPTS="-q -W -j4" -# Travis provides only 2 cores, so don't overdo the parallelism and waste memory. -before_script: + +before_install: + - set -e - | - set -e - if ! git diff --name-only $TRAVIS_COMMIT_RANGE | grep -qvE '(\.rst$)|(^Doc)' + # Check short-circuit conditions + if [ "${TESTING}" != "docs" ] then - echo "Only docs were updated, stopping build process." - exit + if [ "$TRAVIS_PULL_REQUEST" = "false" ] + then + echo "Not a PR, doing full build." + else + # Pull requests are slightly complicated because $TRAVIS_COMMIT_RANGE + # may include more changes than desired if the history is convoluted. + # Instead, explicitly fetch the base branch and compare against the + # merge-base commit. + git fetch -q origin +refs/heads/$TRAVIS_BRANCH + changes=$(git diff --name-only HEAD $(git merge-base HEAD FETCH_HEAD)) + echo "Files changed:" + echo "$changes" + if ! echo "$changes" | grep -qvE '(\.rst$)|(^Doc)|(^Misc)' + then + echo "Only docs were updated, stopping build process." + exit + fi + fi fi - ./configure --with-pydebug - make -j4 - make -j4 regen-all - changes=`git status --porcelain` + + +# Travis provides only 2 cores, so don't overdo the parallelism and waste memory. +before_script: + - ./configure --with-pydebug + - make -j4 regen-all + - changes=`git status --porcelain` + - | + # Check for changes in regenerated files if ! test -z "$changes" then echo "Generated files not up to date" echo "$changes" exit 1 fi - make pythoninfo + - make -j4 + - make pythoninfo script: + # Check that all symbols exported by libpython start with "Py" or "_Py" + - make smelly # `-r -w` implicitly provided through `make buildbottest`. - make buildbottest TESTOPTS="-j4 -uall,-cpu"