diff --git a/tools/ci-changed-builds.sh b/tools/ci-changed-builds.sh index 192fa228..63ea318a 100755 --- a/tools/ci-changed-builds.sh +++ b/tools/ci-changed-builds.sh @@ -1,7 +1,12 @@ #!/bin/bash set -euo pipefail IFS=$'\n' -filenames="$(git diff-tree -r --no-commit-id --name-status "$(git merge-base "$1" HEAD)" HEAD | ( grep -P '^[AM]\t(xep-[0-9]{4}|inbox/[^/]+)\.xml$' || true) | cut -f2)" +if ! merge_base="$(git merge-base "$1" HEAD)"; then + echo 'Failed to find merge base to detect changed files' >&2 + echo 'This indicates that your branch is too old and needs to be rebased' >&2 + exit 2 +fi +filenames="$(git diff-tree -r --no-commit-id --name-status "$merge_base" HEAD | ( grep -P '^[AM]\t(xep-[0-9]{4}|inbox/[^/]+)\.xml$' || true) | cut -f2)" if [ -z "$filenames" ]; then exit 0 fi