feat: Flag to fetch the diff-base before diffing for if_changed #3689
+79
−48
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
if_changedassumes that both the diff-base exists locally and is reasonably up-to-date; for some branches this has a reasonable chance of being true, but (especially if)--git-diff-basehas been set to some custom value then the probability drops quite a bit.This change adds a new flag,
--fetch-diff-base, with corresponding env varBUIDLKITE_FETCH_DIFF_BASE, that runsgit fetch -- remote refspecbefore doing the git diff.Open question
Should this new flag be enabled by default? It's probably fine?
Context
Using this new flag would fix #3602
https://linear.app/buildkite/issue/PS-1469
https://linear.app/buildkite/issue/PS-1595
Changes
Testing
go test ./...). Buildkite employees may check this if the pipeline has run automatically.go tool gofumpt -extra -w .)Disclosures / Credits
I did not use AI tools at all