-
Notifications
You must be signed in to change notification settings - Fork 10.1k
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
source-build: support building aspnetcore using non-portable runtime packages. #43937
Conversation
Thanks for your PR, @tmds. Someone from the team will get assigned to your PR shortly and we'll get it reviewed. |
b464e91
to
8e9ec0c
Compare
…packages. Currently source-build performs 'runtime-portable' build that produces 'linux-{arch}' packages that are used when building ASP.NET Core. With this change, we can use the non-portable packages that are produced by the source-build 'runtime' build, and eliminate the 'runtime-portable' build.
8e9ec0c
to
4e92a77
Compare
src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj
Outdated
Show resolved
Hide resolved
src/Framework/App.Runtime/src/Microsoft.AspNetCore.App.Runtime.csproj
Outdated
Show resolved
Hide resolved
Hey @dotnet/aspnet-build, looks like this PR is something you want to take a look at. |
The CI build is just hitting a known area of flaky tests. However, that doesn't validate the |
@MichaelSimons what are your thoughts on this PR and how to test it prior to merging❔ I think it should do what it says on the tin but am not confident. |
I created a PR in installer to help validate this change: dotnet/installer#14549. |
Should we get this in now or wait for that PR to be merged❔ |
I am in favor of merging now. |
/azp run |
Azure Pipelines successfully started running 3 pipeline(s). |
Enabled auto-merge. New CI build should pick up some reliability fixes from our main branch and get this in today. |
@@ -6,6 +6,8 @@ | |||
<TargetOsName Condition=" '$(TargetOsName)' == '' AND $([MSBuild]::IsOSPlatform('FreeBSD'))">freebsd</TargetOsName> | |||
<TargetArchitecture Condition="'$(TargetArchitecture)' == ''">x64</TargetArchitecture> | |||
<TargetRuntimeIdentifier Condition="'$(TargetRuntimeIdentifier)' == ''">$(TargetOsName)-$(TargetArchitecture)</TargetRuntimeIdentifier> | |||
<PortableBuild Condition="'$(PortableBuild)' == ''">true</PortableBuild> | |||
<DefaultAppHostRuntimeIdentifier Condition=" '$(PortableBuild)' == 'false' ">$(TargetRuntimeIdentifier)</DefaultAppHostRuntimeIdentifier> |
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.
Unsure what the existing pattern is but usually in the msbuild world when you want to mimic a boolean, you condition on something either being true or not being true. With conditions that assert on true
and false
you are allowing the property to have values that aren't covered by these conditions.
TL;DR: I would expect this to be '$(PortableBuild)' != 'true'
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 had first written it like that, and then inverted it in 82414df because of the build failures: https://github.com/dotnet/aspnetcore/runs/8326525459.
I rewrote the check that in case PortableBuild
is not set, the checks default to portable behavior.
@dougbu Auto merge doesn't seem to work for this PR |
Just needed an approval 😁 |
…packages (backport dotnet#43937)
Hi @tmds. It looks like you just commented on a closed PR. The team will most probably miss it. If you'd like to bring something important up to their attention, consider filing a new issue and add enough details to build context. |
/backport to release/7.0 |
Started backporting to release/7.0: https://github.com/dotnet/aspnetcore/actions/runs/3430831191 |
Currently source-build performs 'runtime-portable' build that produces 'linux-{arch}' packages that are used when building ASP.NET Core.
With this change, we can use the non-portable packages that are produced by the source-build 'runtime' build, and eliminate the 'runtime-portable' build.
cc @omajid @MichaelSimons @crummel