34 lines
1.7 KiB
Bash
Executable File
34 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# This script wraps detect-committed-binaries.sh in a way that is usable from the Makefile.
|
|
|
|
# Why not put these changes into detect-committed-binaries.sh?
|
|
# Because we aren't using CircleCI for the enterprise code base,
|
|
# and I don't want the OSS copy to diverge from the enterprise copy.
|
|
|
|
# Why not just do the conditional logic in the Makefile?
|
|
# Because I don't know Makefile syntax and practices well enough to do it in a reasonable amount of time.
|
|
# If you know how to do it, please refactor the logic into the Makefile.
|
|
|
|
if [ -n "$CIRCLE_PR_NUMBER" ] || [ -n "$CIRCLE_PULL_REQUEST" ]; then
|
|
# We want the PR number, but sometimes it isn't set (bug on CircleCI's side).
|
|
# https://discuss.circleci.com/t/circle-pr-number-missing-from-environment-variables/3745
|
|
CIRCLE_PR_NUMBER="${CIRCLE_PR_NUMBER:-${CIRCLE_PULL_REQUEST##*/}}"
|
|
# Looks like we're running on CircleCI.
|
|
# You might think we could use CIRCLE_COMPARE_URL, but that compares commits with the previous push,
|
|
# not with the base branch.
|
|
# This is roughly how you're supposed to determine the base branch/sha according to Circle:
|
|
# https://circleci.com/blog/enforce-build-standards/
|
|
PR_URL="https://api.github.com/repos/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/pulls/$CIRCLE_PR_NUMBER?access_token=$GITHUB_READONLY_TOKEN"
|
|
COMMIT_RANGE="$(curl -s "$PR_URL" | jq -r '.head.sha + "..." + .base.sha')"
|
|
echo "Calculated commit range: $COMMIT_RANGE"
|
|
else
|
|
# We're not running on circle.
|
|
# There's no reliable way to figure out the appropriate base commit,
|
|
# so just take a reasonable guess that we're comparing to master.
|
|
COMMIT_RANGE="HEAD...master"
|
|
fi
|
|
|
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
|
"$DIR/detect-committed-binaries.sh" "$COMMIT_RANGE"
|