Skip to content

Commit 2458930

Browse files
authored
Local live-live builds (dotnet#494)
* Convert libraries and installer to use a live CoreCLR. * Installer uses a live libraries build for DLLs. * Remove newline in path. * Enable live-live builds to build required live dependencies when the dependencies are in the building subset/subset category. * Update path to coreclr output. * Fix typo in coreclr.proj. * Remove last usage of CoreCLRPDBOverridePath. * Update path of binplaced runtime to include OS and Arch. * Fix typo in coreclr/tests/src/Common/Directory.Build.targets. * Restore CoreFX shared framework from live build for CoreCLR test dependencies. * Remove dependency on Microsoft.NETCore.CoreCLR.TestDependencies package. * Enable referencing live builds of the OOB libraries by temporarily adding a new BinplaceConfiguration. Update test_dependencies in the CoreCLR tree to use that to restore OOB libraries. * Remove reference to System.Drawing.Common from NETClientPrimitives (the reference is only needed at runtime and Core_Root already has System.Drawing.Common). * Remove package-based checked CoreCLR + CoreFX test runs. In the live-live world, we'll run this test configuration by pointing the CoreFX test host build step at the artifacts from a checked CoreCLR build (possible in both local and CI builds). * Only copy the UCRT on Windows. * CoreCLR test build now builds against a live libraries sfx+oob ref assembly set. * Override GetCorePackagePaths target to not reference unused packages (breaks the live-live build on a clean system). * Remove live references to Microsoft.NETCore.Platforms now that it seems to be unneeded since the SDK now packages a RID graph. Use the live RID graph in test_runtime.csproj where we may actually be looking for the live RID graph. * Fix coreclr build arg generation bug that was causing build failures. * Remove references to Microsoft.NETCore.Platforms outside of package references from the installers. * Fix problems in installer build in live-live that were found from a clean build. * Remove unused dependency on Microsoft.NETCore.Targets. * Fix Microsoft.NETCore.App -> Microsoft.NETCore.Platforms dependency. * Remove Microsoft.NETCore.Targets version from Versions.props. * Remove unused deps.csproj file that was the last dependency on the packaged Microsoft.NETCore.Platforms package. * Fix OSGroup calculation for dependent projects off-Windows. * Fix construction of Microsoft.NETCore.App.Internal package. * Remove unneeded CoreRun copying. * Serialize subsets that have dependencies across subset groups. Don't use `<MSBuild />` tasks to rebuild subsets since we don't want to rebuild projects multiple times (coreclr was being built multiple times). * Cleanup from PR feedback. * Only copy libraries outputs to artifacts/bin/runtime. * Use the netcoreapp output directories for OOB-included references to libraries outputs. * Remove references to deleted old corefx override setup. * First pass to get new runtime pipeline using the local live-live infra (coreclr+libraries only for now). * Don't generate layout during test native build. * Fix ref assembly default binplacing for netcoreapp. * Remove msbuild goo around importing Subsets.props and Directory.Build.props only once each. This goo isn't needed anymore. * Fix disabling of binplacing for the target vertical to exclude only runtime.depproj and not exclude winrt.depproj. * Fix libraries test build. * Copy all paths used by the "ResolveLibrariesFromLocalBuild" target to publish from libraries build. * For shims, reference the System.Private.CoreLib directly from CoreCLR outputs instead of through runtime.depproj. * Hard-code the libraries configuration to release in coreclr test builds. * Resolve ReferenceFromRuntime items directly from the CoreCLR output instead of via the runtime.depproj project. * Fix test host generation. Fix running the XML Serialization generator as part of libraries test build. * Fix XmlSerializer.Generator.Tests again. * Don't look for CoreCLR files when using ReferenceFromRuntime and not using netcoreapp. * Crossgen-comparison should depend on a libraries build so we can populate Core_Root. * Add job dependency on libraries build from run-test-job to ensure we wait correctly. Otherwise we might have a race since the managed test build might depend on one libraries build while the test run depends on another. * Only resolve coreclr files from local build when targetting netcoreapp. * Add steps to download libraries build for crossgen-comparison. * Revive old method of resolving references to the runtime for building against old netcoreapp (ie netcoreapp 3.0). Fix correctly passing along aliases info. * Fix failing AllConfigurations leg that was due to the netcoreapp runtime.depproj getting binplaced in the runtime output folder. * Update eng/liveBuilds.targets Co-Authored-By: Davis Goodin <[email protected]> * HostArch->BuildArchitecture and share with installer. * Fix format nits. * Update YAML variable name. * Remove setting property to import liveBuilds.targets. * Upload docs and packages folders from libraries build * Inclue doc files in the Microsoft.NETCore.App.Internal package * Try making the runtime-installer pipeline live-live using the build-coreclr-and-libraries-job template. * Update artifacts download paths and msbuild properties for installer build. * Mark cross-component files as native. * Remove FrameworkPackageName to remove error about missing $(FrameworkPackageName).versions.txt file that other shared frameworks also don't generate. * Restore GetFilesFromPackageResolve override. * Don't clean the unpack folder for the libraries download. It wipes out the CoreCLR download. * Make sure that we restore the WinRT targetting pack during the installer build. * Add libraries package directory to RestoreSources for the case where the LibrariesConfiguration is different from the installer build configuration. * Don't pass OfficialBuildId unless it is an official build. We want to be consistent with the libraries build so our package versions match. * Give default value for OfficialBuildArg variable * Ensure installer tests can see the libraries-generated packages. Fix typo in TargetPath for CoreCLR assets (runtime instead of runtimes). Fix paths for CoreCLR cross-target files as well as crossgen to place them in the correct directories. * Add back FrameworkPackageName to get the partial platform manifest to generate.
1 parent 48a78bf commit 2458930

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+494
-1187
lines changed

Directory.Build.props

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
<RepositoryUrl>git://github.com/dotnet/runtime</RepositoryUrl>
6161
<ProjectUrl>https://github.com/dotnet/runtime</ProjectUrl>
6262
<LicenseUrl>https://github.com/dotnet/runtime/blob/master/LICENSE.TXT</LicenseUrl>
63+
<RuntimeIdGraphDefinitionFile>$([MSBuild]::NormalizePath('$(LibrariesProjectRoot)', 'pkg', 'Microsoft.NETCore.Platforms', 'runtime.json'))</RuntimeIdGraphDefinitionFile>
6364
<LicenseFile>$(RepoRoot)LICENSE.TXT</LicenseFile>
6465

6566
<!-- Indicates this is not an officially supported release. Release branches should set this to false. -->
@@ -89,6 +90,8 @@
8990
<PortableBuild Condition="'$(PortableBuild)' == ''">true</PortableBuild>
9091
<!-- Used for launchSettings.json and runtime config files. -->
9192
<AppDesignerFolder>Properties</AppDesignerFolder>
93+
<!-- Determine what architecture we are building on. -->
94+
<BuildArchitecture>$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant())</BuildArchitecture>
9295
</PropertyGroup>
9396

9497
<Import Project="$(RepositoryEngineeringDir)Analyzers.props" />

Directory.Build.targets

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
<ImportDirectoryBuildTargets>false</ImportDirectoryBuildTargets>
99
</PropertyGroup>
1010

11+
<Import Project="$(RepositoryEngineeringDir)/liveBuilds.targets" />
1112
<Import Project="Sdk.targets" Sdk="Microsoft.DotNet.Arcade.Sdk" Condition="'$(SkipImportArcadeSdkFromRoot)' != 'true'" />
1213

1314
<PropertyGroup>
@@ -18,4 +19,4 @@
1819
<NETCoreAppMaximumVersion>$(MajorVersion).$(MinorVersion)</NETCoreAppMaximumVersion>
1920
</PropertyGroup>
2021

21-
</Project>
22+
</Project>

eng/Subsets.props

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@
7676

7777
<!-- Libraries -->
7878
<SubsetName Include="All" Category="Libraries" Description="The .NET libraries comprising the shared framework." />
79-
79+
8080
<!-- CoreClr -->
8181
<SubsetName Include="All" Category="CoreClr" Description="The .NET runtime." />
8282

@@ -96,14 +96,16 @@
9696
<ProjectToBuild Include="$(RepoToolsLocalDir)regenerate-readme-table.proj" />
9797
</ItemGroup>
9898

99-
<!-- Libraries sets -->
100-
<ItemGroup Condition="$(_subsetCategory.Contains('libraries')) and $(_subset.Contains('all'))">
101-
<ProjectToBuild Include="$(LibrariesProjectRoot)build.proj" />
102-
</ItemGroup>
103-
10499
<!-- CoreClr sets -->
105100
<ItemGroup Condition="$(_subsetCategory.Contains('coreclr')) and $(_subset.Contains('all'))">
106-
<ProjectToBuild Include="$(CoreClrProjectRoot)coreclr.proj" />
101+
<CoreClrProjectToBuild Include="$(CoreClrProjectRoot)coreclr.proj" BuildInParallel="false" />
102+
<ProjectToBuild Include="@(CoreClrProjectToBuild)" />
103+
</ItemGroup>
104+
105+
<!-- Libraries sets -->
106+
<ItemGroup Condition="$(_subsetCategory.Contains('libraries')) and $(_subset.Contains('all'))">
107+
<LibrariesProjectToBuild Include="$(LibrariesProjectRoot)build.proj" BuildInParallel="false" />
108+
<ProjectToBuild Include="@(LibrariesProjectToBuild)" />
107109
</ItemGroup>
108110

109111
<!-- Installer sets -->
@@ -119,23 +121,23 @@
119121
</ItemGroup>
120122

121123
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('depproj'))">
122-
<DepprojProjectToBuild Include="$(InstallerProjectRoot)pkg\projects\**\*.depproj" SignPhase="Binaries" />
124+
<DepprojProjectToBuild Include="$(InstallerProjectRoot)pkg\projects\**\*.depproj" SignPhase="Binaries" BuildInParallel="false" />
123125
<ProjectToBuild Include="@(DepprojProjectToBuild)" />
124126
</ItemGroup>
125127

126128
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('pkgproj'))">
127-
<PkgprojProjectToBuild Include="$(InstallerProjectRoot)pkg\projects\**\*.pkgproj" SignPhase="MsiFiles" />
129+
<PkgprojProjectToBuild Include="$(InstallerProjectRoot)pkg\projects\**\*.pkgproj" SignPhase="MsiFiles" BuildInParallel="false" />
128130
<ProjectToBuild Include="@(PkgprojProjectToBuild)" />
129131
</ItemGroup>
130132

131133
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('bundle'))">
132-
<BundleProjectToBuild Include="$(InstallerProjectRoot)pkg\projects\**\*.bundleproj" SignPhase="BundleInstallerFiles" />
134+
<BundleProjectToBuild Include="$(InstallerProjectRoot)pkg\projects\**\*.bundleproj" SignPhase="BundleInstallerFiles" BuildInParallel="false" />
133135
<ProjectToBuild Include="@(BundleProjectToBuild)" />
134136
</ItemGroup>
135137

136138
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('installers'))">
137-
<InstallerProjectToBuild Include="$(InstallerProjectRoot)pkg\packaging\installers.proj" />
138-
<InstallerProjectToBuild Include="$(InstallerProjectRoot)pkg\packaging\vs-insertion-packages.proj" />
139+
<InstallerProjectToBuild Include="$(InstallerProjectRoot)pkg\packaging\installers.proj" BuildInParallel="false" />
140+
<InstallerProjectToBuild Include="$(InstallerProjectRoot)pkg\packaging\vs-insertion-packages.proj" BuildInParallel="false" />
139141
<ProjectToBuild Include="@(InstallerProjectToBuild)" />
140142
</ItemGroup>
141143

@@ -147,7 +149,7 @@
147149
<TestProjectToBuild Include="$(InstallerProjectRoot)test\HostActivation.Tests\HostActivation.Tests.csproj" />
148150
<TestProjectToBuild Include="$(InstallerProjectRoot)test\Microsoft.DotNet.CoreSetup.Packaging.Tests\Microsoft.DotNet.CoreSetup.Packaging.Tests.csproj" />
149151
<TestProjectToBuild Include="$(InstallerProjectRoot)test\Microsoft.Extensions.DependencyModel.Tests\Microsoft.Extensions.DependencyModel.Tests.csproj" />
150-
<ProjectToBuild Include="@(TestProjectToBuild)" />
152+
<ProjectToBuild Include="@(TestProjectToBuild)" BuildInParallel="false" />
151153
</ItemGroup>
152154

153155
</Project>

eng/Tools.props

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,11 @@
1313
<!-- arcade -->
1414
<PackageReference Include="Microsoft.DotNet.GenFacades" Version="$(MicrosoftDotNetGenFacadesVersion)" />
1515
<PackageReference Include="Microsoft.DotNet.Build.Tasks.Packaging" Version="$(MicrosoftDotNetBuildTasksPackagingVersion)" />
16-
16+
1717
<!-- coreclr -->
1818
<!-- Download the package in the initial arcade restore step to work around race conditions when restoring an msbuild SDK. -->
1919
<PackageDownload Include="Microsoft.NET.Sdk.IL" Version="[$(MicrosoftNETSdkILVersion)]" />
2020

21-
<!-- corefx -->
22-
<PackageReference Include="Microsoft.NETCore.Platforms" Version="$(MicrosoftNETCorePlatformsVersion)" />
23-
2421
<!-- roslyn -->
2522
<PackageReference Include="Microsoft.Net.Compilers.Toolset" Version="$(MicrosoftNetCompilersToolsetVersion)" PrivateAssets="all" IsImplicitlyDefined="true" />
2623

eng/Version.Details.xml

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,5 @@
11
<Dependencies>
22
<ProductDependencies>
3-
<Dependency Name="Microsoft.NETCore.Platforms" Version="5.0.0-alpha.1.19563.6">
4-
<Uri>https://github.com/dotnet/corefx</Uri>
5-
<Sha>5cee7c97d602f294e27c582d4dab81ec388f1d7b</Sha>
6-
</Dependency>
7-
<Dependency Name="Microsoft.NETCore.Targets" Version="5.0.0-alpha.1.19563.6">
8-
<Uri>https://github.com/dotnet/corefx</Uri>
9-
<Sha>5cee7c97d602f294e27c582d4dab81ec388f1d7b</Sha>
10-
</Dependency>
113
<Dependency Name="Microsoft.Private.CoreFx.NETCoreApp" Version="5.0.0-alpha.1.19563.6">
124
<Uri>https://github.com/dotnet/corefx</Uri>
135
<Sha>5cee7c97d602f294e27c582d4dab81ec388f1d7b</Sha>
@@ -28,10 +20,6 @@
2820
<Uri>https://github.com/dotnet/corefx</Uri>
2921
<Sha>cf64918877d98577363bb40d5eafac52beb80a79</Sha>
3022
</Dependency>
31-
<Dependency Name="Microsoft.NETCore.Runtime.CoreCLR" Version="5.0.0-alpha1.19563.3">
32-
<Uri>https://github.com/dotnet/coreclr</Uri>
33-
<Sha>2c4fb3250989f014550882f5d165cdc36ebdbd08</Sha>
34-
</Dependency>
3523
<Dependency Name="Microsoft.NETCore.ILAsm" Version="5.0.0-alpha1.19563.3">
3624
<Uri>https://github.com/dotnet/coreclr</Uri>
3725
<Sha>2c4fb3250989f014550882f5d165cdc36ebdbd08</Sha>

eng/Versions.props

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,8 @@
4949
<MicrosoftDotNetPlatformAbstractionsVersion>3.0.0</MicrosoftDotNetPlatformAbstractionsVersion>
5050
<!-- CoreClr dependencies -->
5151
<MicrosoftNETCoreILAsmVersion>5.0.0-alpha1.19563.3</MicrosoftNETCoreILAsmVersion>
52-
<MicrosoftNETCoreRuntimeCoreCLRVersion>5.0.0-alpha1.19563.3</MicrosoftNETCoreRuntimeCoreCLRVersion>
5352
<MicrosoftNETSdkILVersion>5.0.0-alpha1.19563.3</MicrosoftNETSdkILVersion>
5453
<!-- Libraries dependencies -->
55-
<MicrosoftNETCorePlatformsVersion>5.0.0-alpha.1.19563.6</MicrosoftNETCorePlatformsVersion>
56-
<MicrosoftPrivateCoreFxNETCoreAppVersion>5.0.0-alpha.1.19562.8</MicrosoftPrivateCoreFxNETCoreAppVersion>
57-
<MicrosoftNETCoreTargetsVersion>5.0.0-alpha.1.19563.6</MicrosoftNETCoreTargetsVersion>
5854
<SystemTextJsonVersion>5.0.0-alpha.1.19563.6</SystemTextJsonVersion>
5955
<SystemTextEncodingsWebVersion>5.0.0-alpha.1.19563.6</SystemTextEncodingsWebVersion>
6056
<runtimenativeSystemIOPortsVersion>5.0.0-alpha.1.19563.3</runtimenativeSystemIOPortsVersion>
@@ -106,8 +102,6 @@
106102
<LinuxCoreFxOptimizationDataPackage>optimization.linux-x64.ibc.corefx</LinuxCoreFxOptimizationDataPackage>
107103
<MicrosoftPrivateIntellisensePackage>microsoft.private.intellisense</MicrosoftPrivateIntellisensePackage>
108104
<MicrosoftDotNetXUnitConsoleRunnerPackage>Microsoft.DotNet.XUnitConsoleRunner</MicrosoftDotNetXUnitConsoleRunnerPackage>
109-
<MicrosoftPrivateCoreFxNETCoreAppPackage>Microsoft.Private.CoreFx.NETCoreApp</MicrosoftPrivateCoreFxNETCoreAppPackage>
110-
<MicrosoftNETCorePlatformsPackage>Microsoft.NETCore.Platforms</MicrosoftNETCorePlatformsPackage>
111105
<MicrosoftNETCoreAppPackage>Microsoft.NETCore.App</MicrosoftNETCoreAppPackage>
112106
<optimizationIBCCoreCLRPackage>optimization.IBC.CoreCLR</optimizationIBCCoreCLRPackage>
113107
<optimizationPGOCoreCLRPackage>optimization.PGO.CoreCLR</optimizationPGOCoreCLRPackage>

0 commit comments

Comments
 (0)