# 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
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"