Repository navigation
ci: skip queue-verified Dev and Dependencies jobs on pushes to main - #25443
Merged
Merged
Conversation
Every commit reaches upstream `main` through the merge queue, which runs `dev.yml` and `dependencies.yml` at the same SHA. The push that follows runs the same seven jobs again at that SHA. Add `main` to the existing `branches-ignore` list in both workflows. Release branches and every other branch keep their post-push runs, and the merge queue, pull requests, and `workflow_dispatch` are unaffected.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #25443 +/- ##
==========================================
- Coverage 82.33% 82.33% -0.01%
==========================================
Files 1137 1137
Lines 432498 432498
Branches 432498 432498
==========================================
- Hits 356116 356115 -1
- Misses 54843 54844 +1
Partials 21539 21539 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Contributor
|
Let's give it a try! |
alamb
approved these changes
Sep 18, 2026
Contributor
|
Thanks @comphead |
Contributor
Author
|
Less duplicates, but some still exist, would need a followup |
Contributor
|
Though it looks good to me that it is now explicitly skipping the push checks (as they already ran in the merge_group) 👍 Thanks for this @comphead
|
Contributor
Author
|
it still runs linux tests twice, I'm brainstorming how to dedup it gently, prob would require some CI restructure. |
haohuaijin
pushed a commit
to haohuaijin/arrow-datafusion
that referenced
this pull request
Sep 19, 2026
…pache#25443) ## Which issue does this PR close? - Part of apache#25148. This PR does not close the issue. - Follow-up to apache#25365, which did the same for `rust.yml`. Answers apache#25365 (comment). ## Rationale for this change The inflated test count on the `main` commits page is duplicated checks. Every commit is checked twice at the same SHA, once by the merge queue and once by the push that follows. > The `merge_group` event is separate from the `pull_request` and `push` events. > > — [Events that trigger workflows](https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#merge_group) Neither event knows the other ran, so a workflow listing both runs twice. At 3ab72e6 the two `Dev` runs share a `head_sha` and differ only in event and ref: [35262885559](https://github.com/apache/datafusion/actions/runs/35262885559) (`merge_group`, `gh-readonly-queue/main/pr-25383-98b26c5f9…`) and [35263735243](https://github.com/apache/datafusion/actions/runs/35263735243) (`push`, `main`). `Dependencies` is the same pair. `GET /commits/3ab72e61…/check-runs` returns each of these seven names twice: ``` Check License Header Circular Dependency Check Check Markdown Links Detect Unused Dependencies Spell Check with Typos Use prettier to check formatting of documents Validate required_status_checks in .asf.yaml ``` The existing `branches-ignore: 'gh-readonly-queue/**'` does not prevent this. It suppresses a *third* run, the push event on the queue's own temporary branch, not the push to `main`. Scale: from September 9 to 17, 2026 each workflow ran 156 times for pushes to `main`, and all 156 SHAs already had a `merge_group` run of the same workflow at the same SHA. Over the seven full days September 10 to 16 there were 120 such commits, at 1.81 (`Dev`) plus 4.69 (`Dependencies`) mean runner-minutes each, so about 780 runner-minutes per week. All seven jobs report `runner_group: "GitHub Actions"` and none use Runs-On, so every minute saved comes off the shared GitHub-hosted quota apache#25148 is about. Seven other names are also doubled at that SHA. Those are the `rust.yml` jobs apache#25365 deliberately kept on `main` for caches, coverage, and the non-required FFI check. This PR leaves them alone. ## What changes are included in this PR? `main` is added to the existing `branches-ignore` list in `.github/workflows/dev.yml` and `.github/workflows/dependencies.yml`. | Event | Dev / Dependencies jobs | | --- | --: | | Push to `main` | 0 | | Merge group, pull request, push to any other branch | 7 | | `workflow_dispatch` (`Dependencies`) | 2 | Unlike `rust.yml`, neither workflow has a job worth keeping post-merge: none uses `actions/cache` or `rust-cache`, none uploads an artifact or coverage, and all seven are required checks the merge queue already satisfies. With nothing to preserve, excluding the event at the trigger is simpler and cheaper than a per-job `if:`, since no run is created at all. Keeping `branches-ignore` rather than a positive `branches:` list is deliberate: the merge queue is configured only for `main`, so release branches have no pre-merge run to inherit and must keep post-push coverage.
Omega359
pushed a commit
to Omega359/arrow-datafusion
that referenced
this pull request
Oct 11, 2026
…pache#25443) ## Which issue does this PR close? - Part of apache#25148. This PR does not close the issue. - Follow-up to apache#25365, which did the same for `rust.yml`. Answers apache#25365 (comment). ## Rationale for this change The inflated test count on the `main` commits page is duplicated checks. Every commit is checked twice at the same SHA, once by the merge queue and once by the push that follows. > The `merge_group` event is separate from the `pull_request` and `push` events. > > — [Events that trigger workflows](https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#merge_group) Neither event knows the other ran, so a workflow listing both runs twice. At 3ab72e6 the two `Dev` runs share a `head_sha` and differ only in event and ref: [35262885559](https://github.com/apache/datafusion/actions/runs/35262885559) (`merge_group`, `gh-readonly-queue/main/pr-25383-98b26c5f9…`) and [35263735243](https://github.com/apache/datafusion/actions/runs/35263735243) (`push`, `main`). `Dependencies` is the same pair. `GET /commits/3ab72e61…/check-runs` returns each of these seven names twice: ``` Check License Header Circular Dependency Check Check Markdown Links Detect Unused Dependencies Spell Check with Typos Use prettier to check formatting of documents Validate required_status_checks in .asf.yaml ``` The existing `branches-ignore: 'gh-readonly-queue/**'` does not prevent this. It suppresses a *third* run, the push event on the queue's own temporary branch, not the push to `main`. Scale: from September 9 to 17, 2026 each workflow ran 156 times for pushes to `main`, and all 156 SHAs already had a `merge_group` run of the same workflow at the same SHA. Over the seven full days September 10 to 16 there were 120 such commits, at 1.81 (`Dev`) plus 4.69 (`Dependencies`) mean runner-minutes each, so about 780 runner-minutes per week. All seven jobs report `runner_group: "GitHub Actions"` and none use Runs-On, so every minute saved comes off the shared GitHub-hosted quota apache#25148 is about. Seven other names are also doubled at that SHA. Those are the `rust.yml` jobs apache#25365 deliberately kept on `main` for caches, coverage, and the non-required FFI check. This PR leaves them alone. ## What changes are included in this PR? `main` is added to the existing `branches-ignore` list in `.github/workflows/dev.yml` and `.github/workflows/dependencies.yml`. | Event | Dev / Dependencies jobs | | --- | --: | | Push to `main` | 0 | | Merge group, pull request, push to any other branch | 7 | | `workflow_dispatch` (`Dependencies`) | 2 | Unlike `rust.yml`, neither workflow has a job worth keeping post-merge: none uses `actions/cache` or `rust-cache`, none uploads an artifact or coverage, and all seven are required checks the merge queue already satisfies. With nothing to preserve, excluding the event at the trigger is simpler and cheaper than a per-job `if:`, since no run is created at all. Keeping `branches-ignore` rather than a positive `branches:` list is deliberate: the merge queue is configured only for `main`, so release branches have no pre-merge run to inherit and must keep post-push coverage.
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?
rust.yml. Answers ci: skip queue-verified Rust jobs on pushes to main #25365 (comment).Rationale for this change
The inflated test count on the
maincommits page is duplicated checks. Every commit is checked twice at the same SHA, once by the merge queue and once by the push that follows.Neither event knows the other ran, so a workflow listing both runs twice. At 3ab72e6 the two
Devruns share ahead_shaand differ only in event and ref: 35262885559 (merge_group,gh-readonly-queue/main/pr-25383-98b26c5f9…) and 35263735243 (push,main).Dependenciesis the same pair.GET /commits/3ab72e61…/check-runsreturns each of these seven names twice:The existing
branches-ignore: 'gh-readonly-queue/**'does not prevent this. It suppresses a third run, the push event on the queue's own temporary branch, not the push tomain.Scale: from September 9 to 17, 2026 each workflow ran 156 times for pushes to
main, and all 156 SHAs already had amerge_grouprun of the same workflow at the same SHA. Over the seven full days September 10 to 16 there were 120 such commits, at 1.81 (Dev) plus 4.69 (Dependencies) mean runner-minutes each, so about 780 runner-minutes per week. All seven jobs reportrunner_group: "GitHub Actions"and none use Runs-On, so every minute saved comes off the shared GitHub-hosted quota #25148 is about.Seven other names are also doubled at that SHA. Those are the
rust.ymljobs #25365 deliberately kept onmainfor caches, coverage, and the non-required FFI check. This PR leaves them alone.What changes are included in this PR?
mainis added to the existingbranches-ignorelist in.github/workflows/dev.ymland.github/workflows/dependencies.yml.mainworkflow_dispatch(Dependencies)Unlike
rust.yml, neither workflow has a job worth keeping post-merge: none usesactions/cacheorrust-cache, none uploads an artifact or coverage, and all seven are required checks the merge queue already satisfies. With nothing to preserve, excluding the event at the trigger is simpler and cheaper than a per-jobif:, since no run is created at all.Keeping
branches-ignorerather than a positivebranches:list is deliberate: the merge queue is configured only formain, so release branches have no pre-merge run to inherit and must keep post-push coverage.