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
1 changed files with 53 additions and 49 deletions

View File

@ -5,10 +5,10 @@ group: beta
# To cache doc-building dependencies and C compiler output. # To cache doc-building dependencies and C compiler output.
cache: cache:
- pip - pip
- ccache - ccache
- directories: - directories:
- $HOME/multissl - $HOME/multissl
env: env:
global: global:
@ -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 # Need a venv that can parse covered code.
echo "Only docs were updated, stopping build process." - ./python -m venv venv
exit - ./venv/bin/python -m pip install -U coverage
fi - ./venv/bin/python -m test.pythoninfo
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
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)
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))
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)'
then then
echo "Only docs were updated, stopping build process." if [ "$TRAVIS_PULL_REQUEST" = "false" ]
exit 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 fi
if [ "${TESTING}" != "docs" ]; then
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