Commit 7eb3f822 authored by Zachary Ware's avatar Zachary Ware Committed by GitHub

Clean up Travis config (GH-5727)

parent 03e3c340
...@@ -5,10 +5,10 @@ group: beta ...@@ -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: ...@@ -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: ...@@ -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: ...@@ -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
else if [ "$TRAVIS_PULL_REQUEST" = "false" ]
# Pull requests are slightly complicated because merging the PR commit without then
# rebasing causes it to retain its old commit date. Meaning in history if any echo "Not a PR, doing full build."
# commits have been made on master that post-date it, they will be accidentally else
# included in the diff if we use the TRAVIS_COMMIT_RANGE variable. # Pull requests are slightly complicated because $TRAVIS_COMMIT_RANGE
files_changed=$(git diff --name-only HEAD $(git merge-base HEAD $TRAVIS_BRANCH)) # 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
# Prints changed files in this commit to help debug doc-only build issues. install:
echo "Files changed: " - |
echo $files_changed # Install OpenSSL as necessary
if [ "${TESTING}" != "docs" ]
if ! echo "$files_changed" | grep -qvE '(\.rst$)|(^Doc)|(^Misc)'
then then
echo "Only docs were updated, stopping build process."
exit
fi
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: ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment