-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Switch over CoreCLR pr.yml to use live-built libraries #520
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
Conversation
d254921 to
90dc300
Compare
|
FYI: @BruceForstall this will remove the CoreFX stress legs running against a checked CoreCLR and we will need to bring those back later once all pipeline changes are settled. |
eng/pipelines/coreclr/pr.yml
Outdated
| - template: /eng/pipelines/common/platform-matrix.yml | ||
| parameters: | ||
| jobTemplate: /eng/pipelines/libraries/build-job.yml | ||
| buildConfig: Debug |
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.
Does it really matter having Debug vs Release builds of the libraries product? The API surface area doesn't change at all.
I don't fully know what it is used on CoreCLR for, but it might not be needed to have Debug builds as well.
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 think we should push to always use a release build of libraries in coreclr, even for a debug build of coreclr. If plumbing this through is more work at the moment then we can work on this after the change goes in.
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 don't think it shouldn't be much work. It is just a matter of including this platforms on the Release template expansion and passing down the correct parameter for liveLibrariesBuildConfig set to Release.
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.
Actually there's already a Release builds section for libraries which is building these two platforms, so we should just update all coreclr build that depend on libraries to use Release bits.
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.
Thanks for pointing that out, fixed.
Thanks for the heads-up. I knew this was coming. |
|
ci.yml will need the same changes correct? |
eng/pipelines/coreclr/pr.yml
Outdated
| - template: /eng/pipelines/common/platform-matrix.yml | ||
| parameters: | ||
| jobTemplate: /eng/pipelines/libraries/build-job.yml | ||
| buildConfig: Debug |
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 think we should push to always use a release build of libraries in coreclr, even for a debug build of coreclr. If plumbing this through is more work at the moment then we can work on this after the change goes in.
|
I also assume all the other stress pipelines will need to be modified to be live live as well. |
|
If that is the case ci.yml is the highest priority, the others are not blocking. |
safern
left a comment
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.
One comment, otherwise, LGTM.
Also, yes we should update ci.yml as part of this change or a follow-up change.
|
|
||
| - ${{ if ne(parameters.liveLibrariesBuildConfig, '') }}: | ||
| - librariesArtifactName: ${{ format('libraries_bin_{0}_{1}{2}_{3}_{4}', 'netcoreapp', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.liveLibrariesBuildConfig) }} | ||
| - librariesArtifactName: ${{ format('libraries_bin_netcoreapp_{0}_{1}_{2}', parameters.osGroup, parameters.archType, parameters.liveLibrariesBuildConfig) }} |
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.
Why are we removing the osSubgroup? wouldn't this break the linux_musl libraries builds?
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.
Oh sorry. I see this is just in coreclr's consumption, but this might break if you guys start depending on an artifact that contains ossubgroup like musl.
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.
Hmm, I was under the impression you yourself told me the other day that netcoreapp artifacts don't include OS subgroup information.
eng/pipelines/common/xplat-setup.yml
Outdated
| osSubgroup: ${{ parameters.osSubgroup }} | ||
| archType: ${{ parameters.archType }} | ||
|
|
||
| librariesBuildArtifactName: ${{ format('libraries_bin_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }} |
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.
Oopps. This is not a variable, this is defined as a parameter. It seems like you want it under the variables section.
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.
Thanks for doing the clean-up btw.
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.
Right you are, thanks for spotting, hopefully fixed now.
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.
Hmm, it looks like you actually sent me down a pretty nasty rathole. I'm right now trying to figure out how to consolidate the movement of buildConfig to xplat-setup with the liveLibrariesBuildConfig parameter but the hope to get this merged in today just keeps fading away.
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.
Long story short, having an independent configuration pair for CoreCLR and CoreFX is not an ideal start for a common xplat-setup script used by both.
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.
For now I'm inclined to roll back all the "library artifact cleanup changes" as I see no other way how to fix the pr.yml script.
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.
sounds good to me and sorry about that. We can do that clean-up later.
Sorry for sending you that path, didn't think it was going to be that hard.
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.
No worries, it also came as a surprise to me. But yes, I think it's better to postpone the cleanup after things have settled down, we're still pretty much shooting at a moving target right now.
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.
Agreed.
7ef06b7 to
9cf0389
Compare
This is needed so that the library name artifacts are properly synthesized. This extra delta is somewhat noisy but hopefully trivial. Thanks Tomas
9cf0389 to
a6e6b28
Compare
58bcfaa to
9a5f05a
Compare
No description provided.