Update SDK and remove RID calculation in favor of RuntimeInformation (#35538)

* Remove GetTargetMachineInfo from runtime

* Update bootstrapped SDK

* Remove unused prop

* Rename RuntimeRID to HostRuntimeIdentifier

* Remove yml tmp copying

* Update SDK

* Move RuntimeOS into libraries

* Fix RuntimeOS move
This commit is contained in:
Viktor Hofer 2020-05-04 11:45:15 +02:00 committed by GitHub
parent 626819d31d
commit a1af15d229
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 17 additions and 155 deletions

View File

@ -29,7 +29,6 @@
<!-- Upfront restore hooks -->
<Import Project="$(RepositoryEngineeringDir)restore\docs.targets" Condition="'$(DotNetBuildFromSource)' != 'true'" />
<Import Project="$(RepositoryEngineeringDir)restore\optimizationData.targets" Condition="'$(DotNetBuildFromSource)' != 'true' and '$(EnableNgenOptimization)' == 'true'" />
<Import Project="$(RepositoryEngineeringDir)restore\runtimeprops.targets" />
<!--
Use synthetic inputs/outputs to avoid building it all the time. This should let devs build with

View File

@ -41,7 +41,6 @@
<InstallerTasksOutputPath>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'installer.tasks'))</InstallerTasksOutputPath>
<InstallerTasksAssemblyPath Condition="'$(MSBuildRuntimeType)' == 'Core'">$([MSBuild]::NormalizePath('$(InstallerTasksOutputPath)', 'Debug', 'netstandard2.0', 'installer.tasks.dll'))</InstallerTasksAssemblyPath>
<InstallerTasksAssemblyPath Condition="'$(MSBuildRuntimeType)' != 'Core'">$([MSBuild]::NormalizePath('$(InstallerTasksOutputPath)', 'Debug', 'net46', 'installer.tasks.dll'))</InstallerTasksAssemblyPath>
<HostMachineInfoProps>$(ArtifactsObjDir)HostMachineInfo.props</HostMachineInfoProps>
<DocsDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'docs'))</DocsDir>
<ManPagesDir>$([MSBuild]::NormalizeDirectory('$(DocsDir)', 'manpages'))</ManPagesDir>

View File

@ -13,7 +13,6 @@
<RepoTasksDir>$([MSBuild]::NormalizeDirectory('$(RepoToolsLocalDir)', 'tasks'))</RepoTasksDir>
<IbcOptimizationDataDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'ibc'))</IbcOptimizationDataDir>
<XmlDocDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'docs'))</XmlDocDir>
<RuntimePropsFile>$([MSBuild]::NormalizePath('$(ArtifactsDir)', 'tmp', '$(Configuration)', 'RuntimeOS.props'))</RuntimePropsFile>
</PropertyGroup>
<!-- The TFMs to build and test against. -->
@ -38,6 +37,9 @@
</PropertyGroup>
<PropertyGroup>
<HostRuntimeIdentifier Condition="'$(HostRuntimeIdentifier)' == '' and '$(MSBuildRuntimeType)' == 'core'">$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier)</HostRuntimeIdentifier>
<HostRuntimeIdentifier Condition="'$(HostRuntimeIdentifier)' == '' and '$(MSBuildRuntimeType)' != 'core'">win-$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString().ToLowerInvariant)</HostRuntimeIdentifier>
<TargetOS Condition="'$(TargetOS)' == '' and $([MSBuild]::IsOSPlatform('OSX'))">OSX</TargetOS>
<TargetOS Condition="'$(TargetOS)' == '' and $([MSBuild]::IsOSPlatform('FREEBSD'))">FreeBSD</TargetOS>
<TargetOS Condition="'$(TargetOS)' == '' and $([MSBuild]::IsOSPlatform('NETBSD'))">NetBSD</TargetOS>

View File

@ -460,7 +460,6 @@ jobs:
# independent installers on this leg, but we need to do it somewhere.)
- template: steps/build-linux-package.yml
parameters:
buildTraversalBuildDependencies: true
distroRid: ${{ packageBuild.imageRid }}
image: ${{ packageBuild.image }}
packageStepDescription: Runtime Deps, Runtime, Framework Packs installers

View File

@ -1,5 +1,4 @@
parameters:
buildTraversalBuildDependencies: false
distroRid: null
image: null
outputRidArg: ''
@ -8,18 +7,6 @@ parameters:
subsetArg: ''
steps:
- ${{ if eq(parameters.buildTraversalBuildDependencies, true) }}:
- script: |
set -x
df -h
$(DockerRunMSBuild) ${{ parameters.image }} $(MSBuildScript) \
--ci \
/root/runtime/tools-local/tasks/installer.tasks/installer.tasks.csproj \
/t:Restore /t:Build /t:CreateHostMachineInfoFile \
$(CommonMSBuildArgs) \
/bl:msbuild.${{ parameters.distroRid }}.traversaldependencies.binlog
displayName: ====== Build traversal build dependencies - ${{ parameters.distroRid }}
- script: |
set -x
df -h

View File

@ -157,12 +157,6 @@ jobs:
targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/packages
condition: and(succeeded(), eq(variables['_librariesBuildProducedPackages'], true))
- task: CopyFiles@2
displayName: Prepare tmp assets to publish
inputs:
sourceFolder: $(Build.SourcesDirectory)/artifacts/tmp
targetFolder: $(Build.ArtifactStagingDirectory)/artifacts/tmp
- template: /eng/pipelines/common/upload-artifact-step.yml
parameters:
rootFolder: $(Build.ArtifactStagingDirectory)/artifacts

View File

@ -1,7 +0,0 @@
<Project Sdk="Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk">
<Target Name="GenerateRuntimeOSPropsFileBeforeRestore"
DependsOnTargets="GenerateRuntimeOSPropsFile"
BeforeTargets="Restore" />
</Project>

View File

@ -1,11 +1,11 @@
{
"sdk": {
"version": "5.0.100-preview.4.20202.8",
"version": "5.0.100-preview.5.20228.8",
"allowPrerelease": true,
"rollForward": "major"
},
"tools": {
"dotnet": "5.0.100-preview.4.20202.8"
"dotnet": "5.0.100-preview.5.20228.8"
},
"native-tools": {
"cmake": "3.14.2",

View File

@ -29,10 +29,6 @@
<SigningToolsDir>$(InstallerProjectRoot)signing\</SigningToolsDir>
</PropertyGroup>
<PropertyGroup>
<HostMachineInfoProps>$(ArtifactsObjDir)HostMachineInfo.props</HostMachineInfoProps>
</PropertyGroup>
<PropertyGroup>
<NETCoreAppFrameworkIdentifier>.NETCoreApp</NETCoreAppFrameworkIdentifier>
<NETCoreAppFrameworkMoniker>$(NETCoreAppFrameworkIdentifier),Version=v$(NETCoreAppFrameworkVersion)</NETCoreAppFrameworkMoniker>
@ -80,11 +76,8 @@
<ExeSuffix Condition="'$(TargetOS)' == 'Windows_NT'">.exe</ExeSuffix>
</PropertyGroup>
<Import Project="$(HostMachineInfoProps)"
Condition="Exists('$(HostMachineInfoProps)')" />
<PropertyGroup Condition="'$(OutputRid)' == '' and '$(HostMachineRid)' != ''">
<OutputRid>$(HostMachineRid.Remove($(HostMachineRid.LastIndexOf('-'))))-$(TargetArchitecture)</OutputRid>
<PropertyGroup Condition="'$(OutputRid)' == '' and '$(HostRuntimeIdentifier)' != ''">
<OutputRid>$(HostRuntimeIdentifier.Remove($(HostRuntimeIdentifier.LastIndexOf('-'))))-$(TargetArchitecture)</OutputRid>
</PropertyGroup>
<!-- Portable -->
@ -302,9 +295,9 @@
</PropertyGroup>
<PropertyGroup Condition="'$(PortableBuild)' == 'true'">
<HostMachineRidTargetsDebianPackages Condition="
$(HostMachineRid.StartsWith('debian')) or
$(HostMachineRid.StartsWith('ubuntu')) or
$(HostMachineRid.StartsWith('linuxmint'))">true</HostMachineRidTargetsDebianPackages>
$(HostRuntimeIdentifier.StartsWith('debian')) or
$(HostRuntimeIdentifier.StartsWith('ubuntu')) or
$(HostRuntimeIdentifier.StartsWith('linuxmint'))">true</HostMachineRidTargetsDebianPackages>
<!-- If the build machine isn't known to be Debian-based, try to build RPM packages. -->
<HostMachineRidTargetsRpmPackages Condition="'$(HostMachineRidTargetsDebianPackages)' != 'true'">true</HostMachineRidTargetsRpmPackages>
</PropertyGroup>

View File

@ -12,10 +12,8 @@
<!-- Provide default targets which can be hooked onto or overridden as necessary -->
<Target Name="Pack" />
<!-- Remove after https://github.com/dotnet/arcade/pull/5365 is merged. -->
<UsingTask TaskName="GenerateGuidFromName" AssemblyFile="$(InstallerTasksAssemblyPath)" />
<UsingTask TaskName="GenerateMsiVersion" AssemblyFile="$(InstallerTasksAssemblyPath)" />
<UsingTask TaskName="GetTargetMachineInfo" AssemblyFile="$(InstallerTasksAssemblyPath)" />
<UsingTask TaskName="RegenerateReadmeTable" AssemblyFile="$(InstallerTasksAssemblyPath)" />
<!-- Common target to find all sfxproj. In a target to avoid evaluating for every project. -->
<Target Name="GetSharedFrameworkProjects">

View File

@ -112,6 +112,7 @@
</Target>
<UsingTask TaskName="GenerateCurrentVersion" AssemblyFile="$(InstallerTasksAssemblyPath)" />
<UsingTask TaskName="GenerateMsiVersion" AssemblyFile="$(InstallerTasksAssemblyPath)" />
<Target Name="GenerateMsiVersionString">
<PropertyGroup>

View File

@ -121,12 +121,8 @@
</Target>
<Target Name="DetermineTestOutputDirectory">
<GetTargetMachineInfo>
<Output TaskParameter="RuntimeIdentifier" PropertyName="_HostRid" />
</GetTargetMachineInfo>
<PropertyGroup>
<TestTargetRid Condition="'$(TestTargetRid)' == ''">$(_HostRid)</TestTargetRid>
<TestTargetRid Condition="'$(TestTargetRid)' == ''">$(HostRuntimeIdentifier)</TestTargetRid>
<TestsOutputName Condition="'$(TestsOutputName)' == ''">$(MSBuildProjectName)</TestsOutputName>
<TestsOutputRootDir Condition="'$(TestsOutputRootDir)' == ''">$(ArtifactsDir)tests/$(Configuration)/</TestsOutputRootDir>

View File

@ -26,7 +26,9 @@
<GeneratePlatformNotSupportedAssemblyHeaderFile>$(RepositoryEngineeringDir)LicenseHeader.txt</GeneratePlatformNotSupportedAssemblyHeaderFile>
</PropertyGroup>
<Import Project="$(RuntimePropsFile)" Condition="Exists('$(RuntimePropsFile)')"/>
<PropertyGroup>
<RuntimeOS Condition="'$(RuntimeOS)' == '' and '$(HostRuntimeIdentifier)' != ''">$(HostRuntimeIdentifier.Remove($(HostRuntimeIdentifier.LastIndexOf('-'))))</RuntimeOS>
</PropertyGroup>
<Import Sdk="Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk" Project="Sdk.props" />

View File

@ -62,18 +62,10 @@ package() {
shift
containerized "$image" bash -c "
eng/common/msbuild.sh \
tools-local/tasks/installer.tasks/installer.tasks.csproj \
/t:Restore /t:Build /t:CreateHostMachineInfoFile \
/p:Configuration=Release \
/p:TargetOS=Linux \
/p:PortableBuild=false \
/p:TargetArchitecture=x64 \
/bl:artifacts/msbuild.$name.traversaldependencies.binlog;
./build.sh \
--ci \
--subset installer
/p:OfficialBuildId=20190101.1 \
/p:Subset=Installer \
/p:UsePrebuiltPortableBinariesForInstallers=true \
/p:SharedFrameworkPublishDir=/work/artifacts/obj/linux-x64.Release/sharedFrameworkPublish/ \
/p:InstallerSourceOSPlatformConfig=linux-x64.Release \

View File

@ -1,67 +0,0 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using Microsoft.Build.Framework;
using System.Runtime.InteropServices;
namespace Microsoft.DotNet.Build.Tasks
{
public class GetTargetMachineInfo : BuildTask
{
[Output]
public string TargetOS { get; set; }
[Output]
public string TargetArch { get; set; }
[Output]
public string RuntimeIdentifier { get; set; }
public override bool Execute()
{
switch (RuntimeInformation.OSArchitecture)
{
case Architecture.X64:
TargetArch = "x64";
break;
case Architecture.X86:
TargetArch = "x86";
break;
case Architecture.Arm:
TargetArch = "arm";
break;
case Architecture.Arm64:
TargetArch = "arm64";
break;
}
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
TargetOS = "Windows_NT";
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
TargetOS = "Linux";
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
TargetOS = "OSX";
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Create("FREEBSD")))
TargetOS = "FreeBSD";
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Create("NETBSD")))
TargetOS = "NetBSD";
RuntimeIdentifier = Microsoft.DotNet.PlatformAbstractions.RuntimeEnvironment.GetRuntimeIdentifier();
if (TargetArch == null)
{
Log.LogError("{0} is null", nameof(TargetArch));
return false;
}
if (TargetOS == null)
{
Log.LogError("{0} is null", nameof(TargetOS));
return false;
}
return true;
}
}
}

View File

@ -1,5 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0</TargetFrameworks>
<TargetFrameworks Condition="'$(OS)' == 'Windows_NT'">$(TargetFrameworks);net46</TargetFrameworks>
@ -14,7 +13,6 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="$(MicrosoftExtensionsDependencyModelVersion)" />
<PackageReference Include="Microsoft.DotNet.PlatformAbstractions" Version="2.1.0" />
<PackageReference Include="NuGet.ProjectModel" Version="$(RefOnlyNugetProjectModelVersion)" />
<PackageReference Include="NuGet.Packaging" Version="$(RefOnlyNugetPackagingVersion)" />
<PackageReference Include="System.Reflection.Metadata" Version="1.7.0" />
@ -44,28 +42,4 @@
</ItemGroup>
</Otherwise>
</Choose>
<UsingTask TaskName="GetTargetMachineInfo"
AssemblyFile="$(InstallerTasksAssemblyPath)" />
<Target Name="CreateHostMachineInfoFile"
AfterTargets="DispatchToInnerBuilds">
<GetTargetMachineInfo>
<Output PropertyName="HostMachineRid" TaskParameter="RuntimeIdentifier" />
</GetTargetMachineInfo>
<PropertyGroup>
<HostMachineInfoPropsContent>
&lt;Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"&gt;
&lt;PropertyGroup&gt;
&lt;HostMachineRid&gt;$(HostMachineRid)&lt;/HostMachineRid&gt;
&lt;/PropertyGroup&gt;
&lt;/Project&gt;
</HostMachineInfoPropsContent>
</PropertyGroup>
<WriteLinesToFile File="$(HostMachineInfoProps)"
Lines="$(HostMachineInfoPropsContent)"
Overwrite="True" />
</Target>
</Project>