-
Notifications
You must be signed in to change notification settings - Fork 6.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CI: mergeable check redesign #64093
CI: mergeable check redesign #64093
Conversation
This is an automated comment for commit a735ab7 with description of existing statuses. It's updated for the latest CI running ✅ Click here to open a full report in a separate page Successful checks
|
582981c
to
e3329a1
Compare
ffc1670
to
d5eac97
Compare
fbbc8fa
to
3f5e367
Compare
3f5e367
to
5698ef6
Compare
@azat yes, correct. |
Was that the intention? Right now there are tons of flaky tests that fail on the previous stage and because of this you have to rebase, and almost zero developers, I guess, would fix some tests, wait until it will be merged, and only after this rebase the PR where this flaky test failed. So in other words to me it looks like increased CI resources usage out of from nowhere |
Intention was quite opposite to your current impression of this change. It's aimed to decrease CI load and make CI more effective with more digestible test results at the same time. Though, I understand some ideas can be hard to adopt in our reality. First stage of testing supposed to be not-flaky. I'm aware there are some flaky tests. They must be fixed or somehow moved to the next test stage. With this approach we know faster that change is not good and before we run huge amount of CI workload. (if there are tons of flaky tests on this stage as you said, it's really bad). BTW, if some test is failed you don't need to rebase to restart CI. you can just restart it via web interface and successful jobs @nikitamikhaylov you wanted to participate in this discussion |
I do understand the the intention was the opposite, and likely to reduce the load, but the reality is different right now. Consider for instance this two tiny PRs:
In both of them some tests had been failed, and while they by themselves fixes some tests, they cannot be merged until all 2xx checks will pass, but after this change they will not even started due to some test failures on the previous stage.
I wish I had this button (I do hate rebases without a real purpose), but only those who has write access has it. |
@nikitamikhaylov I really want to hear other dev' voices here. @azat I completely understand your point Both PRs have failed due to the same, presumable flaky, test NOTE: before my change these 2 PRs would be "un-meargable" as well, we would just run more tests for them. I mean the change does not make more PRs not-mergeable, it only change test execution flow. It's a shame you don't have restart button, maybe pushing empty (--amend) commit would do the same for you. |
I do like this change actually, since it does indeed decrease useless CI resources usage (I was always upset about this, even though it has zero relation to myself)
Not both, there was another one (#59547)
It is not tons (https://github.com/ClickHouse/ClickHouse/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22flaky+test%22 - right now there is 49, but I'm 100% sure that it is not complete, and I guess something maybe obsolete), but if there will be at least one, at some point, this will be enough. I can say that this is not the first time this happens, I have couple of other examples, and this is only during this week. |
Not at all. You raised absolutely valid issue and I appreciate your input here. Now it's a transition phase in CI and you are not the only one disappointed, tbh. I'm trying to figure out how to deal with current struggles, I wonder if we should aiming at fixing all flakiness in Test_1 CI stage or maybe I need to implement some means to quickly move out flaky test cases to another non-blocking CI stage or rollback everything... @alesapin @nikitamikhaylov |
I know that it is not perfect, but maybe it will be OK to add couple of retries (2-3), and if the test passed eventually mark it as And answer to the "should we run the next stage?" should ignore Thoughts? |
And one more question, @maxknv is it possible to run all the stages with "CI settings" somehow? |
Could be an option too. We'll discuss it in the team
I think it's doable to add this feature. (All Test jobs will run in the single stage and this will be an equivalent of old behaviour) |
@@ -447,9 +447,7 @@ def set_mergeable_check( | |||
) | |||
|
|||
|
|||
def update_mergeable_check( | |||
commit: Commit, pr_info: PRInfo, check_name: str | |||
) -> Optional[CommitStatus]: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can't imagine the long-projected refactoring to make the whole pipeline mergeable check
-> a sync
with accurate propagating proper descriptions was removed so easily.
It's just a the whole reverting https://github.com/ClickHouse/ClickHouse/pull/61464/files
Changelog category (leave one):
Changelog entry (a user-readable short description of the changes that goes to CHANGELOG.md):
Documentation entry for user-facing changes
Modify your CI run
NOTE: If your merge the PR with modified CI you MUST KNOW what you are doing
NOTE: Checked options will be applied if set before CI RunConfig/PrepareRunConfig step
Include tests (required builds will be added automatically):
Exclude tests:
Extra options:
Only specified batches in multi-batch jobs: