Skip to content

chore(ci): run Java CI through one merge-queue-ready workflow - #20473

Open
voonhous wants to merge 1 commit into
apache:masterfrom
voonhous:ci-merge-queue
Open

voonhous wants to merge 1 commit into
apache:masterfrom
voonhous:ci-merge-queue

Conversation

@voonhous

Copy link
Copy Markdown
Member

Describe the issue this Pull Request addresses

Two PRs that each pass CI can still break master together, since nothing re-tests them against the master they land on. A merge queue fixes that, but needs one required check reporting on every PR and queue group; today's Java CI is two path-filtered workflows, so neither can hold one.

Part of #20471 (and #19612). The queue itself is turned on in a follow-up .asf.yaml PR, once this one has shown Required Checks reporting.

Summary and Changelog

Java CI now runs through one workflow, ci.yml, which is ready for merge_group events.

  • ci.yml owns the triggers (pull_request, merge_group, push, workflow_dispatch) and calls bot.yml and java_ci_engines.yml as reusable workflows. Their jobs are unchanged.
  • New Required Checks job: reports on every PR and queue run, fails unless both called workflows succeed (a skip fails it too).
  • Only push keeps the path filter: a required check must report on every PR, and a selector job would bring back the second runner wait chore(ci): flatten the Java CI job graph #19890 removed.
Smaller changes
  • Concurrency moves to ci.yml. A called workflow sees its caller's name in github.workflow, so the two files would have shared one group. Pushes are keyed by SHA, so a burst of queue merges never replaces a pending master run; only PR runs cancel in progress.
  • Codecov steps skip merge_group runs: a queue ref would file coverage under master for a commit that may never land.
  • validate_source.yml also reports on merge_group and never cancels queue runs.
  • README badge points at ci.yml; .github/workflows/README.md updated.

Impact

Risk Level

low. No job body changes apart from the Codecov conditions, and nothing required changes until the .asf.yaml follow-up.

Documentation Update

none (.github/workflows/README.md updated)

Contributor's checklist

  • Read through contributor's guide
  • Enough context is provided in the sections above
  • Adequate tests were added if applicable

Prepares Java CI for a GitHub merge queue (apache#20471, apache#19612). The queue
itself is enabled later through .asf.yaml.

- New ci.yml owns the triggers (pull_request, merge_group, push,
  workflow_dispatch) and calls bot.yml and java_ci_engines.yml as
  reusable workflows. Its Required Checks job reports on every PR and
  queue run, and fails unless both called workflows succeed.
- Only push keeps the path filter: a required check must report on
  every PR, and a selector job would add a second runner wait.
- Concurrency moves to ci.yml. Pushes are keyed by SHA so queue merge
  bursts never replace a pending master run; only PR runs cancel.
- Codecov steps skip merge_group runs, which would file coverage under
  master for commits that may never land.
- validate_source.yml also reports on merge_group, and never cancels
  queue runs.
@codecov-commenter

codecov-commenter commented Oct 29, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 80.34%. Comparing base (ecb7e8f) to head (e9e6a64).

Additional details and impacted files
@@             Coverage Diff              @@
##             master   #20473      +/-   ##
============================================
- Coverage     80.59%   80.34%   -0.26%     
+ Complexity    35951    35794     -157     
============================================
  Files          2575     2575              
  Lines        147254   147254              
  Branches      18098    18098              
============================================
- Hits         118678   118305     -373     
- Misses        20361    20662     +301     
- Partials       8215     8287      +72     
Components Coverage Δ
hudi-common 83.88% <ø> (-0.26%) ⬇️
hudi-client 83.03% <ø> (-0.90%) ⬇️
hudi-flink 86.24% <ø> (+1.67%) ⬆️
hudi-spark-datasource 73.69% <ø> (-0.56%) ⬇️
hudi-utilities 79.25% <ø> (-0.04%) ⬇️
hudi-cli 70.80% <ø> (ø)
hudi-hadoop 69.74% <ø> (-1.44%) ⬇️
hudi-sync 77.31% <ø> (ø)
hudi-io 81.62% <ø> (ø)
hudi-timeline-service 78.53% <ø> (-4.88%) ⬇️
hudi-cloud 81.01% <ø> (ø)
hudi-kafka-connect 57.90% <ø> (ø)
Flag Coverage Δ
common-and-other-modules 52.30% <ø> (+0.01%) ⬆️
flink-integration-tests 49.69% <ø> (+13.31%) ⬆️
hadoop-mr-java-client 43.93% <ø> (-0.01%) ⬇️
integration-tests 13.14% <ø> (-0.01%) ⬇️
spark-client-hadoop-common 37.64% <ø> (ø)
spark-java-tests 48.15% <ø> (-3.36%) ⬇️
utilities 37.66% <ø> (-0.02%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 192 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M PR with lines of changes in (100, 300]

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants