Skip to content

Conversation

@trylek
Copy link
Member

@trylek trylek commented Dec 4, 2019

No description provided.

@trylek trylek changed the title WIP: Switch over CoreCLR pr.yml to use live-built libraries Switch over CoreCLR pr.yml to use live-built libraries Dec 4, 2019
@trylek trylek requested review from jashook and safern December 4, 2019 22:19
@safern
Copy link
Member

safern commented Dec 4, 2019

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.

- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/libraries/build-job.yml
buildConfig: Debug
Copy link
Member

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.

Copy link
Contributor

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.

Copy link
Member

@safern safern Dec 5, 2019

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.

Copy link
Member

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.

Copy link
Member Author

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.

@BruceForstall
Copy link
Contributor

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.

Thanks for the heads-up. I knew this was coming.

@jashook
Copy link
Contributor

jashook commented Dec 5, 2019

ci.yml will need the same changes correct?

- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/libraries/build-job.yml
buildConfig: Debug
Copy link
Contributor

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.

@jashook
Copy link
Contributor

jashook commented Dec 5, 2019

I also assume all the other stress pipelines will need to be modified to be live live as well.

@jashook
Copy link
Contributor

jashook commented Dec 5, 2019

If that is the case ci.yml is the highest priority, the others are not blocking.

Copy link
Member

@safern safern left a 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) }}
Copy link
Member

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?

Copy link
Member

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.

Copy link
Member Author

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.

osSubgroup: ${{ parameters.osSubgroup }}
archType: ${{ parameters.archType }}

librariesBuildArtifactName: ${{ format('libraries_bin_{0}{1}_{2}_{3}', parameters.osGroup, parameters.osSubgroup, parameters.archType, parameters.buildConfig) }}
Copy link
Member

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.

Copy link
Member

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.

Copy link
Member Author

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.

Copy link
Member Author

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.

Copy link
Member Author

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.

Copy link
Member Author

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.

Copy link
Member

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.

Copy link
Member Author

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.

Copy link
Member

Choose a reason for hiding this comment

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

Agreed.

@trylek trylek force-pushed the LiveLiveCoreCLR branch 2 times, most recently from 7ef06b7 to 9cf0389 Compare December 5, 2019 21:27
This is needed so that the library name artifacts are properly
synthesized. This extra delta is somewhat noisy but hopefully trivial.

Thanks

Tomas
@trylek trylek merged commit f621f44 into dotnet:master Dec 6, 2019
@trylek trylek deleted the LiveLiveCoreCLR branch December 6, 2019 15:56
@ghost ghost locked as resolved and limited conversation to collaborators Dec 11, 2020
MichalStrehovsky pushed a commit to MichalStrehovsky/runtime that referenced this pull request Mar 25, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants