ci: skip expensive workflows for docs-only changes#2073
Merged
martin-g merged 1 commit intoJul 17, 2026
Conversation
The TPC-H, TPC-DS, Rust, Docker, and Web TUI workflows are already gated on path allowlists, but those allowlists use whole-directory globs such as `ballista/**` and `benchmarks/**`. Ten markdown files live inside those directories, so a README-only change fires both benchmark suites and three builds. PR apache#2015 touched only `ballista/client/README.md` and ran the full matrix for nothing. Append `!**/*.md` to each `paths` list. GitHub applies patterns in order and lets the last match win, so the exclusion must come last. Changes that mix code and markdown still trigger every workflow. The prettier check in `dev.yml` is deliberately left ungated since it lints markdown, as is the `docs.yaml` site deploy.
andygrove
marked this pull request as ready for review
July 17, 2026 00:51
phillipleblanc
approved these changes
Jul 17, 2026
martin-g
approved these changes
Jul 17, 2026
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.
Which issue does this PR close?
N/A - CI-only change, no issue filed.
Rationale for this change
The TPC-H, TPC-DS, Rust, Docker, and Web TUI workflows are all already gated on path allowlists, so changes under
docs/**or to the rootREADME.mdcorrectly skip them. However, those allowlists use whole-directory globs (ballista/**,benchmarks/**,examples/**,ballista-cli/**), and there are ten markdown files living inside those directories:As a result, editing only
benchmarks/README.mdcurrently triggers TPC-H SF10 and TPC-DS SF1 along with the Rust, Docker, and Web TUI builds. This is not hypothetical: #2015 ("docs: remove outdated TPC-H benchmark results from READMEs") touched onlyballista/client/README.mdand ran the full expensive matrix for no reason.What changes are included in this PR?
Appends
- "!**/*.md"to thepathslist of both thepushandpull_requesttriggers intpch.yml,tpcds.yml,rust.yml,docker.yml, andweb-tui.yml. GitHub evaluates path patterns in order and the last match wins, so the exclusion has to be the final entry.Two workflows are deliberately left alone:
dev.yml(RAT and prettier) has no path filter and should keep running on everything, since prettier lints the markdown itself.docs.yamlstill deploys the site ondocs/**.Verification, beyond confirming the YAML still parses, simulated the GitHub path-filter semantics against representative change sets to check both directions. Docs-only sets now skip all five workflows, while a
.rsedit, aCargo.tomlbump, and a mixed code-plus-markdown change each still trigger all five. The mixed case matters most: a PR that touches both code and a README is not docs-only and must still build.Are there any user-facing changes?
No. CI configuration only, with no public API impact.