dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
14.99k stars 4.67k forks source link

Collapse Mono builds into single builds for Desktop targets #45521

Open safern opened 3 years ago

safern commented 3 years ago

Currently we fan out test legs and build Mono and Libraries in a separate leg. Then put those together in a run test leg and submit to helix. We do similar things for the mono runtime tests.

However this model has proven that reliability issues like networking hiccups, artifacts service outages, etc, bite us and the gain in time for Mono targets is not worth it.

We should be collapsing the Mono desktop targets into single legs that build Mono, Libraries, Tests and submit to helix, similar to how we do it for Android, WASM, iOS. That will reduce the number of legs we have on CI and improve reliability for those legs on infra issues.

I will take care of collapsing the libraries tests legs, @naricc could you help collapsing the runtime ones? I guess this would replace: https://github.com/dotnet/runtime/issues/43952

cc: @akoeplinger @ViktorHofer

Dotnet-GitSync-Bot commented 3 years ago

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

ghost commented 3 years ago

Tagging subscribers to this area: @directhex See info in area-owners.md if you want to be subscribed.

Issue Details
Currently we fan out test legs and build Mono and Libraries in a separate leg. Then put those together in a run test leg and submit to helix. We do similar things for the mono runtime tests. However this model has proven that reliability issues like networking hiccups, artifacts service outages, etc, bite us and the gain in time for Mono targets is not worth it. We should be collapsing the Mono desktop targets into single legs that build Mono, Libraries, Tests and submit to helix, similar to how we do it for Android, WASM, iOS. That will reduce the number of legs we have on CI and improve reliability for those legs on infra issues. I will take care of collapsing the libraries tests legs, @naricc could you help collapsing the runtime ones? I guess this would replace: https://github.com/dotnet/runtime/issues/43952 cc: @akoeplinger @ViktorHofer
Author: safern
Assignees: naricc
Labels: `area-Infrastructure-mono`, `untriaged`
Milestone: -
naricc commented 3 years ago

Yes. I will help with the runtime ones. So this basically means that all the mono legs should be using the global-build-job.yml?

Also any preference if I fix this at the same time as https://github.com/dotnet/runtime/issues/43952 or in seperate PRs?

safern commented 3 years ago

Yeah, that means they should use the global build template. Just like the Android and Browser runtime tests.

I think it needs to be on a same PR so that we don't have to build coreclr as part of that job.

ViktorHofer commented 3 years ago

@naricc were you able to look into this?

naricc commented 3 years ago

@ViktorHofer Sorry, I haven't made any progress on this; its been a lower priority item for me that I keep meaning to get to.

SamMonoRT commented 3 years ago

Not going to get to it in 6.0, moving to 7.0.0. We might consider this after RC1 if we have spare cycles.

SamMonoRT commented 11 months ago

This is nice to have, but pretty low on priority. Closing this issue.

ViktorHofer commented 11 months ago

@SamMonoRT this will become more important with the upcoming VMR efforts. I don't think we should close this issue.

SamMonoRT commented 11 months ago

@ViktorHofer @steveisok Re-opening, but not something anyone on my team maybe familiar with.

steveisok commented 11 months ago

This is done on the official build side at least.

ViktorHofer commented 11 months ago

And we should probably do this on the PR side as well just for the sake of less legs and reduced resources and time.