ci: work around CIRCLE_COMPARE_URL not being available wih CircleCI Pipelines (#32537)

The commit range that is associated with a CI build is used for a couple
of things (mostly related to payload-size tracking):
- Determine whether a size change was caused by application code or
  dependencies (or both).
- Add the messages of the commits associated with the build (and thus
  the payload-size change).

NOTE: The commit range is only used on push builds.

Previously, the commit range was computed based on the
`CIRCLE_COMPARE_URL` environment variable. With [CircleCI Pipelines][1]
enabled, `CIRCLE_COMPARE_URL` is no longer available and the commit
range cannot be reliably detected.

This commit switches `CI_COMMIT_RANGE` to only include the last commit.
This can be less accurate in some rare cases, but is true in the
majority of cases (on push builds). Additionally, it stores the CircleCI
build URL in the database along with the payload data, so the relevant
info can be retrieved when needed.

[1]: https://circleci.com/docs/2.0/build-processing

PR Close #32537
This commit is contained in:
George Kalpakas
2019-09-07 18:48:51 +03:00
committed by Matias Niemelä
parent df5924abd0
commit b5eda603a2
3 changed files with 26 additions and 5 deletions

View File

@ -51,6 +51,15 @@ addTimestamp() {
payloadData="$payloadData\"timestamp\": $timestamp, "
}
# Write the current CI build URL to global variable `$payloadData`.
# This allows mapping the data stored in the database to the CI build job that generated it, which
# might contain more info/context.
# $1: string - The CI build URL.
addBuildUrl() {
buildUrl="$1"
payloadData="$payloadData\"buildUrl\": \"$buildUrl\", "
}
# Write the commit message for the current CI commit range to global variable `$payloadData`.
# $1: string - The commit range for this build (in `<SHA-1>...<SHA-2>` format).
addMessage() {
@ -142,6 +151,7 @@ trackPayloadSize() {
addChangeType $CI_COMMIT_RANGE
fi
addTimestamp
addBuildUrl $CI_BUILD_URL
addMessage $CI_COMMIT_RANGE
uploadData $name
fi