inspec/support/ci/fast_pass.sh

32 lines
1.2 KiB
Bash
Raw Normal View History

#!/bin/bash
#
# Check to see what directories have been affected by a change. If directories
# have not been affected, exit 0
#
# Since we can only stop the build early by calling "exit" from within the
# .travis.yml in the `before_install`, we exit non-zero if we want the build to
# be skipped, so we can do `|| exit 0` in the YAML.
echo "TAG: $TRAVIS_TAG"
echo "PR: $TRAVIS_PULL_REQUEST"
echo "COMMIT_RANGE: $TRAVIS_COMMIT_RANGE"
if [ -n "$STEAM_ROLLER" ]; then
echo 'STEAM_ROLLER is set. Not exiting and running everything.'
elif [ -z "$AFFECTED_DIRS" ]; then
# Don't do anything if $AFFECTED_DIRS is not set
echo 'AFFECTED_DIRS is not set. Not exiting and running everything.'
else
# If $AFFECTED_DIRS (a "|" separated list of directories) is set, see if we have
# any changes
# TRAVIS_COMMIT_RANGE is empty for the first push to a new branch (which is how our bot
# validates before merge), so if TRAVIS_COMMIT_RANGE is empty, we'll look for the
# last merge commit and check from there.
COMMIT_RANGE=${TRAVIS_COMMIT_RANGE:-$(git show :/^Merge --pretty=format:%H)}
git diff --name-only "$COMMIT_RANGE" | grep -qE "^($AFFECTED_DIRS)" || {
echo "No files in $AFFECTED_DIRS have changed. Skipping CI run."
exit 1
}
fi