Skip to content
This repository has been archived by the owner on Jan 13, 2025. It is now read-only.

Commit

Permalink
Update CI pipeline to only run checks step on version bump PRs (bac…
Browse files Browse the repository at this point in the history
…kport #29243) (#29540)

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

(cherry picked from commit 0581fc2)

Co-authored-by: Will Hickey <will.hickey@solana.com>
  • Loading branch information
mergify[bot] and willhickey authored Jan 6, 2023
1 parent d035af1 commit b76b9da
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions ci/buildkite-pipeline.sh
Original file line number Diff line number Diff line change
Expand Up @@ -302,6 +302,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
Expand Down

0 comments on commit b76b9da

Please sign in to comment.