Repository navigation
ci: add a merge queue and move the TPC-H and TPC-DS suites behind it - #2653
Merged
Merged
Conversation
The suites now run in the merge queue, and on pull requests only when the run-tpch or run-tpcds label is applied. A TPC Required Checks aggregator in tpc.yml is the single required status check, so the queue enforces both suites while PRs without a label pass it with the suites skipped.
milenkovicm
approved these changes
Oct 26, 2026
milenkovicm
left a comment
Contributor
There was a problem hiding this comment.
lets give it a try, thanks @andygrove
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
Rationale for this change
The TPC-H SF10 and TPC-DS SF1 suites run five jobs on every PR that touches code, and a passing run is 10-20 minutes. A merge queue tests the exact tree that will land, so the suites can move there and an iterating PR can run a much smaller set without losing coverage on
main. This follows what apache/datafusion and apache/datafusion-comet did.What changes are included in this PR?
run-tpch/run-tpcdslabelmain.asf.yaml: aMerge Queueruleset on the default branch (squash,ALLGREEN,max_entries_to_build: 2,apache/rootbypass), written as a raw Rulesets payload as in Comet, so no INFRA ticket should be needed.TPC Required Checksbecomes the one required status check onmain.tpc.yml(new): decides when the suites run, and holds theTPC Required Checksaggregator. The suites can't be required directly because a skipped job publishes under a different name than a run one. The aggregator fails if a suite that should have run didn't succeed, so a skip can't silently pass the queue.tpc_label.yml(new): runs a suite as soon as its label is applied. It is a separate workflow so a label run can't hide the commit run's verdict for the required check (the problem Comet hit in CI: PRs opened with a label get stuck on 'Required Checks — Expected' datafusion-comet#6159). The first run after labelling is feedback only; later pushes to a labelled PR do block it.tpch.yml/tpcds.yml: nowworkflow_call+workflow_dispatchonly.concurrencymoves to the caller.h2o.ymland the other workflows are unchanged, so the queue gates on the TPC suites only.Are there any user-facing changes?
For contributors:
mainnow needsTPC Required Checks. Ballista had no required status checks before. PRs opened before this merges won't have it until they pick uptpc.yml(rebase or push), and show "Expected" until then.Before merging, the
run-tpchandrun-tpcdslabels need creating in the repo. As with Comet, a dev@ note about the queue is probably worthwhile, since a flaky suite will now block everyone's merges rather than one PR.Verified with actionlint and local runs of the path filter and label logic. The
merge_grouppaths can't be exercised until the ruleset is live.