[Python-checkins] Clean up Travis config (GH-5727)

Zachary Ware webhook-mailer at python.org
Sun Feb 18 11:19:40 EST 2018


https://github.com/python/cpython/commit/7eb3f8226ea7b79dae4e4e8b05730cfe0d9af7c1
commit: 7eb3f8226ea7b79dae4e4e8b05730cfe0d9af7c1
branch: master
author: Zachary Ware <zachary.ware at gmail.com>
committer: GitHub <noreply at github.com>
date: 2018年02月18日T10:19:37-06:00
summary:
Clean up Travis config (GH-5727)
files:
M .travis.yml
diff --git a/.travis.yml b/.travis.yml
index 665b266146ae..ab43318975fb 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


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /