Build: Simplify CI workflow path filters to avoid per-workflow maintenance#16302
Draft
kevinjqliu wants to merge 1 commit into
Draft
Build: Simplify CI workflow path filters to avoid per-workflow maintenance#16302kevinjqliu wants to merge 1 commit into
kevinjqliu wants to merge 1 commit into
Conversation
1b092b7 to
b7d5778
Compare
Contributor
Author
|
should also include |
Member
|
@kevinjqliu I had a similar PR before but @amogh-jahagirdar had some general concerns on this approach. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Switches 6 CI workflows from
paths-ignorewith individual workflow file listings topathswith!.github/**glob + self-allowlist.Before, adding/renaming/removing a workflow required updating the ignore list in all 6 CI files. Now, only the workflow's own file is allowlisted and everything else under
.github/is excluded automatically.Motivation
Every PR that adds, renames, or removes a workflow file must update the
paths-ignorelist in all 6 CI workflows, adding boilerplate changes unrelated to the PR's purpose. Recent examples:pr-title-check.yml, required updating 6 CI fileskafka-connect-cve-scan.yml→cve-scan.yml, required updating 6 CI fileskafka-connect-cve-scan.yml, required updating 6 CI filesPattern
Following the pattern used by pyiceberg:
**— include all files!.github/**— exclude everything under.github/.github/workflows/<self>.yml— re-include the workflow's own file (later patterns override earlier ones)!entries exclude docs, metadata, and unrelated engine modulesTesting
Wrote a validation script simulating GitHub Actions path matching for both old (
paths-ignore) and new (paths) configs across all 6 workflows. Tested 53 representative file paths covering:.github/files not in the old explicit lists (new workflows, dependabot, CODEOWNERS)Results: All paths match old behavior except
.github/files that were missing from the old ignore lists (e.g.,brand-new-workflow.yml,pr-title-check.yml,dependabot.yml,CODEOWNERS). These correctly change from TRIGGER → SKIP — the old behavior was a maintenance bug where unlisted files would needlessly trigger all CI workflows.