Skip to content

Conversation

@kennknowles
Copy link
Member

This splits most of the remaining IOs into their own precommit, and also fixes a few trigger paths here and there to really get to minimal testing. We will want to refactor this stuff later, I'm sure.


Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

  • Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
  • Update CHANGES.md with noteworthy changes.
  • If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.

To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md

GitHub Actions Tests Status (on master branch)

Build python source distribution and wheels
Python tests
Java tests
Go tests

See CI.md for more information about GitHub Actions CI.

@github-actions
Copy link
Contributor

github-actions bot commented Dec 7, 2022

Assigning reviewers. If you would like to opt out of this review, comment assign to next reviewer:

R: @Abacn for label build.

Available commands:

  • stop reviewer notifications - opt out of the automated review tooling
  • remind me after tests pass - tag the comment author after tests pass
  • waiting on author - shift the attention set back to the author (any comment or push by the author will return the attention set to the reviewers)

The PR bot will only process comments in the main thread (not review comments).

@Abacn
Copy link
Contributor

Abacn commented Dec 8, 2022

Thanks. Just wondering whether too much test jobs could jam the jenkins job queue. Also note that the GitHub Action migration is also going to split Java precommit tests: #23138 #23116

@kennknowles
Copy link
Member Author

Yes, it is good a good point.

If you are working on an I/O then it will not be a problem, because the "Java PreCommit" will not run, just the quick IO precommit.

If you are working on the core SDK then yes it will create a large number of jobs because all the IOs trigger.

  • Best case: There are more jobs but they are all fast enough that it is not a problem. Gradle cache will help this. It will still be slower than one big job.
  • Worse case: The queue gets jammed. Then one idea would be to not trigger the IOs but just to include them in the core SDK precommit.

And yes I am just doing this now because the GHA migration is not done soon enough and this was pretty easy and should remove a lot of flaking, and let us re-run just certain pieces


Long version:

Before this PR we had the rules:

  • core changed -> core + all IOs job runs
  • one IO changed -> core + all IOs job runs

The rules I am implementing are:

  • core changed -> core unit tests run
  • core changed -> all IO unit tests run
  • one IO changed -> one IO unit tests run

This PR implements those rules directly:

  • core changed -> core job runs
  • core changed -> all IO jobs run
  • one IO changed -> one IO job runs

We could also implement the rules with these jobs:

  • core changed -> one big job runs that includes all the tests
  • one IO changed -> one IO job runs

The benefit of having separate IO jobs is that if there is a flake the rerun can be just the IO job.

Copy link
Contributor

@Abacn Abacn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the detailed notes. This LGTM. "A big job" sounds good as well but given that we are going to move on to GitHub Action this change could be enough.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants