summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZachary Ware <zachary.ware@gmail.com>2018-02-18 16:19:37 (GMT)
committerGitHub <noreply@github.com>2018-02-18 16:19:37 (GMT)
commit7eb3f8226ea7b79dae4e4e8b05730cfe0d9af7c1 (patch)
tree4d155414133f20b9780f28403cce81e5d8af4593
parent03e3c340a0156891a036d6dbdb9e348108826255 (diff)
downloadcpython-7eb3f8226ea7b79dae4e4e8b05730cfe0d9af7c1.zip
cpython-7eb3f8226ea7b79dae4e4e8b05730cfe0d9af7c1.tar.gz
cpython-7eb3f8226ea7b79dae4e4e8b05730cfe0d9af7c1.tar.bz2
Clean up Travis config (GH-5727)
-rw-r--r--.travis.yml100
1 files changed, 52 insertions, 48 deletions
diff --git a/.travis.yml b/.travis.yml
index 665b266..ab43318 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -5,10 +5,10 @@ group: beta
# To cache doc-building dependencies and C compiler output.
cache:
- - pip
- - ccache
- - directories:
- - $HOME/multissl
+ - pip
+ - ccache
+ - directories:
+ - $HOME/multissl
env:
global:
@@ -26,6 +26,7 @@ branches:
only:
- master
- /^\d\.\d$/
+ - buildbot-custom
matrix:
fast_finish: true
@@ -56,22 +57,12 @@ matrix:
compiler: gcc
env: OPTIONAL=true
before_script:
- - |
- if ! git diff --name-only $TRAVIS_COMMIT_RANGE | grep -qvE '(\.rst$)|(^Doc)|(^Misc)'
- then
- echo "Only docs were updated, stopping build process."
- exit
- fi
- python3 Tools/ssl/multissltests.py --steps=library \
- --base-directory ${HOME}/multissl \
- --openssl ${OPENSSL} >/dev/null
- openssl version
- ./configure
- make -s -j4
- # Need a venv that can parse covered code.
- ./python -m venv venv
- ./venv/bin/python -m pip install -U coverage
- ./venv/bin/python -m test.pythoninfo
+ - ./configure
+ - make -s -j4
+ # Need a venv that can parse covered code.
+ - ./python -m venv venv
+ - ./venv/bin/python -m pip install -U coverage
+ - ./venv/bin/python -m test.pythoninfo
script:
# Skip tests that re-run the entire test suite.
- ./venv/bin/python -m coverage run --pylib -m test --fail-env-changed -uall,-cpu -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_multiprocessing_spawn -x test_concurrent_futures
@@ -80,47 +71,60 @@ matrix:
- source ./venv/bin/activate
- bash <(curl -s https://codecov.io/bash)
-# Travis provides only 2 cores, so don't overdo the parallelism and waste memory.
-before_script:
+
+before_install:
+ - set -e
- |
- set -e
- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then
- files_changed=$(git diff --name-only $TRAVIS_COMMIT_RANGE)
- else
- # Pull requests are slightly complicated because merging the PR commit without
- # rebasing causes it to retain its old commit date. Meaning in history if any
- # commits have been made on master that post-date it, they will be accidentally
- # included in the diff if we use the TRAVIS_COMMIT_RANGE variable.
- files_changed=$(git diff --name-only HEAD $(git merge-base HEAD $TRAVIS_BRANCH))
+ # Check short-circuit conditions
+ if [ "${TESTING}" != "docs" ]
+ then
+ 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
- # Prints changed files in this commit to help debug doc-only build issues.
- echo "Files changed: "
- echo $files_changed
-
- if ! echo "$files_changed" | grep -qvE '(\.rst$)|(^Doc)|(^Misc)'
+install:
+ - |
+ # Install OpenSSL as necessary
+ if [ "${TESTING}" != "docs" ]
then
- echo "Only docs were updated, stopping build process."
- exit
- fi
- if [ "${TESTING}" != "docs" ]; then
# clang complains about unused-parameter a lot, redirect stderr
python3 Tools/ssl/multissltests.py --steps=library \
--base-directory ${HOME}/multissl \
--openssl ${OPENSSL} >/dev/null 2>&1
fi
- openssl version
- ./configure --with-pydebug
- make -j4 regen-all
- changes=`git status --porcelain`
+ - openssl version
+
+# 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 -j4
- make pythoninfo
+ - make -j4
+ - make pythoninfo
script:
# Using the built Python as patchcheck.py is built around the idea of using
@@ -128,10 +132,10 @@ script:
# should be compared against.
# Only run on Linux as the check only needs to be run once.
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./python Tools/scripts/patchcheck.py --travis $TRAVIS_PULL_REQUEST; fi
- # `-r -w` implicitly provided through `make buildbottest`.
- - make buildbottest TESTOPTS="-j4 -uall,-cpu"
# 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"
notifications:
email: false