Configure skip-duplicates jobs to not skip duplicates (yes, really) #79764
+4
−3
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.
Summary
None
Purpose of change
Partially addresses #79241
Patches the exploit that allowed skipping CI checks but still getting a passing ✔️ checkmark
Describe the solution
We are using skip-duplicates job as a glorified path filter since regular path filter does not play nicely with required checks (see #49923).
Out of the box we also get the "skip duplicate" functionality i.e. "don't run the same check again if there is already a successful CI run of the same code". It's very nice, but as described in #79241 it runs into issues when we also conditionally disable checks on draft prs.
The CI exploit looks something like this:
These two redundancy checks are seemingly in conflict, and I couldn't find a better way to resolve it than removing one of the checks.
Even though both are somewhat rare, my hunch is that "duplicates" check triggers less often under normal conditions than "draft" check, so I disabled the "duplicates" one to save more CPU-time, but I don't have a strong opinion here. (Disabling the "draft" check makes the code cleaner. Tradeoffs...).
Describe alternatives you've considered
Testing
None other than ensuring the workflow is valid.
Additional context