Fix changed file detection on Travis (GH-3129)
Travis when merging changes from a pull request onto the target branch does not perform a rebase, instead it does a simple merge which causes the PR commits to retain their commit dates. This means that the commit log can potentially look like: PR merge <-- HEAD normal master commit <- master more commits from normal workflow PR commit 1 another master commit PR commit 2 Performing a git diff from PR commit 2 to master will accidentally include files that should not be there. Closes python/core-workflow#14
This commit is contained in:
parent
b1a6ac4c40
commit
b2ec3615c8
16
.travis.yml
16
.travis.yml
|
@ -83,7 +83,21 @@ matrix:
|
|||
before_script:
|
||||
- |
|
||||
set -e
|
||||
if ! git diff --name-only $TRAVIS_COMMIT_RANGE | grep -qvE '(\.rst$)|(^Doc)|(^Misc)'
|
||||
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)'
|
||||
then
|
||||
echo "Only docs were updated, stopping build process."
|
||||
exit
|
||||
|
|
Loading…
Reference in New Issue