Update CI pipeline to only run `checks` step on version bump PRs (#29243)

* Add logic to buildkite pipeline so version bump PRs don't run the full CI
This commit is contained in:
Will Hickey 2023-01-05 12:45:29 -06:00 committed by GitHub
parent 12da2da389
commit 0581fc2def
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 23 additions and 0 deletions

View File

@ -311,6 +311,29 @@ pull_or_push_steps() {
wait_step
fi
# Version bump PRs are an edge case that can skip most of the CI steps
if affects .toml$ && affects .lock$ && ! affects_other_than .toml$ .lock$; then
optional_old_version_number=$(git diff "$BUILDKITE_PULL_REQUEST_BASE_BRANCH"..HEAD validator/Cargo.toml | \
grep -e "^-version" | sed 's/-version = "\(.*\)"/\1/')
echo "optional_old_version_number: ->$optional_old_version_number<-"
new_version_number=$(grep -e "^version = " validator/Cargo.toml | sed 's/version = "\(.*\)"/\1/')
echo "new_version_number: ->$new_version_number<-"
# Every line in a version bump diff will match one of these patterns. Since we're using grep -v the output is the
# lines that don't match. Any diff that produces output here is not a version bump.
# | cat is a no-op. If this pull request is a version bump then grep will output no lines and have an exit code of 1.
# Piping the output to cat prevents that non-zero exit code from exiting this script
diff_other_than_version_bump=$(git diff "$BUILDKITE_PULL_REQUEST_BASE_BRANCH"..HEAD | \
grep -vE "^ |^@@ |^--- |^\+\+\+ |^index |^diff |^-( \")?solana.*$optional_old_version_number|^\+( \")?solana.*$new_version_number|^-version|^\+version"|cat)
echo "diff_other_than_version_bump: ->$diff_other_than_version_bump<-"
if [ -z "$diff_other_than_version_bump" ]; then
echo "Diff only contains version bump."
command_step checks ". ci/rust-version.sh; ci/docker-run.sh \$\$rust_nightly_docker_image ci/test-checks.sh" 20
exit 0
fi
fi
# Run the full test suite by default, skipping only if modifications are local
# to some particular areas of the tree
if affects_other_than ^.buildkite ^.mergify .md$ ^docs/ ^web3.js/ ^explorer/ ^.gitbook; then