Skip to content

HDDS-17466. Split integration check by module - #11769

Open
adoroszlai wants to merge 5 commits into
apache:masterfrom
adoroszlai:HDDS-17466
Open

adoroszlai wants to merge 5 commits into
apache:masterfrom
adoroszlai:HDDS-17466

Conversation

@adoroszlai

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

Similar to #11406 and #11722: run each Maven module's JUnit tests in a matrix job.

  • Build only a single module, taking prerequisites from ~/.m2/repository (created by build job).
  • Keep integration split using profiles for now, because it still has too many test for a serial run.
  • flaky split still builds the whole project, since @Flaky tests may be in any modules.

Benefits:

  • reduces re-run time in case of intermittent failure
  • easier to find failures
  • reduces the number of Develocity build cache entries

Drawbacks:

  • more jobs/artifacts in GitHub UI
  • workflow setup steps repeated more times

https://issues.apache.org/jira/browse/HDDS-17466

How was this patch tested?

https://github.com/adoroszlai/ozone/actions/runs/40232774028

@adoroszlai adoroszlai added the CI label Oct 26, 2026
@adoroszlai adoroszlai self-assigned this Oct 26, 2026
@errose28

Copy link
Copy Markdown
Contributor

Looks like integration and unit tests are now running separately again. Can we change the name of the unit test jobs to unit?

@adoroszlai

adoroszlai commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor Author

Looks like integration and unit tests are now running separately again.

That's not really the case, integration-test-* also run separately, as part of the new job. If we can reach a point where integration-test (proper) can complete in reasonable time, we can completely drop the old job.

Probably junit would be a better name than either integration or unit.

@errose28

Copy link
Copy Markdown
Contributor

Agreed, if we pick one name for all of them junit is probably best.

IMO it would be easier to follow if there were two matrices: one for unit tests by module, and one for integration tests split as needed. This could be done with a single script that matches just for integration tests, and is negated for unit tests. This makes sure we don't accidentally skip any test groups.

@adoroszlai

Copy link
Copy Markdown
Contributor Author

@errose28 I have changed the new job's display name to junit in another branch. Please take a look at the workflow run. If it's OK, I'll push the fixup to this PR.

@errose28

Copy link
Copy Markdown
Contributor

Thanks, that looks good. It would be nice if we could label ozone-integration-test-* as integration, but the current approach is simple and the tests still have integration in their name so this works for me.

@adoroszlai
adoroszlai marked this pull request as ready for review October 27, 2026 20:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants