Clean up Travis config (GH-5727)
This commit is contained in:
parent
03e3c340a0
commit
7eb3f8226e
102
.travis.yml
102
.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))
|
||||
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)'
|
||||
# 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
|
||||
if [ "${TESTING}" != "docs" ]; then
|
||||
|
||||
install:
|
||||
- |
|
||||
# Install OpenSSL as necessary
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue