Clean up Travis config (GH-5727)

This commit is contained in:
Zachary Ware 2018-02-18 10:19:37 -06:00 committed by GitHub
parent 03e3c340a0
commit 7eb3f8226e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -26,6 +26,7 @@ branches:
only: only:
- master - master
- /^\d\.\d$/ - /^\d\.\d$/
- buildbot-custom
matrix: matrix:
fast_finish: true fast_finish: true
@ -56,22 +57,12 @@ matrix:
compiler: gcc compiler: gcc
env: OPTIONAL=true env: OPTIONAL=true
before_script: before_script:
- | - ./configure
if ! git diff --name-only $TRAVIS_COMMIT_RANGE | grep -qvE '(\.rst$)|(^Doc)|(^Misc)' - make -s -j4
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. # Need a venv that can parse covered code.
./python -m venv venv - ./python -m venv venv
./venv/bin/python -m pip install -U coverage - ./venv/bin/python -m pip install -U coverage
./venv/bin/python -m test.pythoninfo - ./venv/bin/python -m test.pythoninfo
script: script:
# Skip tests that re-run the entire test suite. # 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 - ./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 - source ./venv/bin/activate
- bash <(curl -s https://codecov.io/bash) - 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 # Check short-circuit conditions
if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then if [ "${TESTING}" != "docs" ]
files_changed=$(git diff --name-only $TRAVIS_COMMIT_RANGE) then
if [ "$TRAVIS_PULL_REQUEST" = "false" ]
then
echo "Not a PR, doing full build."
else else
# Pull requests are slightly complicated because merging the PR commit without # Pull requests are slightly complicated because $TRAVIS_COMMIT_RANGE
# rebasing causes it to retain its old commit date. Meaning in history if any # may include more changes than desired if the history is convoluted.
# commits have been made on master that post-date it, they will be accidentally # Instead, explicitly fetch the base branch and compare against the
# included in the diff if we use the TRAVIS_COMMIT_RANGE variable. # merge-base commit.
files_changed=$(git diff --name-only HEAD $(git merge-base HEAD $TRAVIS_BRANCH)) git fetch -q origin +refs/heads/$TRAVIS_BRANCH
fi changes=$(git diff --name-only HEAD $(git merge-base HEAD FETCH_HEAD))
# Prints changed files in this commit to help debug doc-only build issues.
echo "Files changed:" echo "Files changed:"
echo $files_changed echo "$changes"
if ! echo "$changes" | grep -qvE '(\.rst$)|(^Doc)|(^Misc)'
if ! echo "$files_changed" | grep -qvE '(\.rst$)|(^Doc)|(^Misc)'
then then
echo "Only docs were updated, stopping build process." echo "Only docs were updated, stopping build process."
exit exit
fi fi
if [ "${TESTING}" != "docs" ]; then fi
fi
install:
- |
# Install OpenSSL as necessary
if [ "${TESTING}" != "docs" ]
then
# clang complains about unused-parameter a lot, redirect stderr # clang complains about unused-parameter a lot, redirect stderr
python3 Tools/ssl/multissltests.py --steps=library \ python3 Tools/ssl/multissltests.py --steps=library \
--base-directory ${HOME}/multissl \ --base-directory ${HOME}/multissl \
--openssl ${OPENSSL} >/dev/null 2>&1 --openssl ${OPENSSL} >/dev/null 2>&1
fi fi
openssl version - openssl version
./configure --with-pydebug
make -j4 regen-all # Travis provides only 2 cores, so don't overdo the parallelism and waste memory.
changes=`git status --porcelain` before_script:
- ./configure --with-pydebug
- make -j4 regen-all
- changes=`git status --porcelain`
- |
# Check for changes in regenerated files
if ! test -z "$changes" if ! test -z "$changes"
then then
echo "Generated files not up to date" echo "Generated files not up to date"
echo "$changes" echo "$changes"
exit 1 exit 1
fi fi
make -j4 - make -j4
make pythoninfo - make pythoninfo
script: script:
# Using the built Python as patchcheck.py is built around the idea of using # Using the built Python as patchcheck.py is built around the idea of using
@ -128,10 +132,10 @@ script:
# should be compared against. # should be compared against.
# Only run on Linux as the check only needs to be run once. # 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 - 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" # Check that all symbols exported by libpython start with "Py" or "_Py"
- make smelly - make smelly
# `-r -w` implicitly provided through `make buildbottest`.
- make buildbottest TESTOPTS="-j4 -uall,-cpu"
notifications: notifications:
email: false email: false