Skip to content

Commit

Permalink
Merge pull request #1 from NikolaMilosavljevic/infra.changes
Browse files Browse the repository at this point in the history
Update baseline infra with specifics for deployment-tools repo
  • Loading branch information
NikolaMilosavljevic authored Jun 29, 2020
2 parents 4e4cf43 + fafe21e commit b4a456a
Show file tree
Hide file tree
Showing 26 changed files with 115 additions and 1,071 deletions.
6 changes: 1 addition & 5 deletions Build.proj
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,6 @@

<Import Project="$(RepositoryEngineeringDir)SubsetValidation.targets" />

<!-- Upfront restore hooks -->
<Import Project="$(RepositoryEngineeringDir)restore\docs.targets" Condition="'$(DotNetBuildFromSource)' != 'true'" />
<Import Project="$(RepositoryEngineeringDir)restore\optimizationData.targets" Condition="'$(DotNetBuildFromSource)' != 'true' and '$(EnableNgenOptimization)' == 'true'" />

<Target Name="BuildLocalTasks"
BeforeTargets="Restore">
<MSBuild Projects="$(RepoTasksDir)tasks.proj"
Expand All @@ -35,7 +31,7 @@

<Target Name="RestoreWithoutStaticGraph"
BeforeTargets="Restore">
<MSBuild Projects="@(LibrariesRestoreProject);@(DepprojProjectToBuild);@(PkgprojProjectToBuild);@(BundleProjectToBuild)"
<MSBuild Projects="@(DepprojProjectToBuild);@(PkgprojProjectToBuild);@(BundleProjectToBuild)"
Properties="MSBuildRestoreSessionId=$([System.Guid]::NewGuid());RestoreUseStaticGraphEvaluation=false"
Targets="Restore" />
</Target>
Expand Down
6 changes: 3 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
Contribution to .NET Runtime
Contribution to .NET Deployment Tools
=====================

You can contribute to .NET Runtime with issues and PRs. Simply filing issues for problems you encounter is a great way to contribute. Contributing implementations is greatly appreciated.
You can contribute to .NET Deployment-Tools with issues and PRs. Simply filing issues for problems you encounter is a great way to contribute. Contributing implementations is greatly appreciated.

## Contribution "Bar"

Project maintainers will merge changes that improve the product significantly and broadly and that align with the [.NET Roadmap](https://github.com/dotnet/core/blob/master/roadmap.md).

Maintainers will not merge changes that have narrowly-defined benefits, due to compatibility risk. The .NET Core codebase is used by several Microsoft products (for example, ASP.NET Core, .NET Framework 4.x, Windows Universal Apps) to enable execution of managed code. Other companies are building products on top of .NET, too. We may revert changes if they are found to be breaking.
Maintainers will not merge changes that have narrowly-defined benefits, due to compatibility risk. The .NET codebase is used by several Microsoft products (for example, ASP.NET Core, .NET Framework 4.x, Windows Universal Apps) to enable execution of managed code. Other companies are building products on top of .NET, too. We may revert changes if they are found to be breaking.

Contributions must also satisfy the other published guidelines defined in this document.

Expand Down
1 change: 0 additions & 1 deletion Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
<ImportDirectoryBuildTargets>false</ImportDirectoryBuildTargets>
</PropertyGroup>

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

Expand Down
16 changes: 6 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,14 @@
# .NET Runtime
# .NET Deployment Tools

[![Build Status](https://dnceng.visualstudio.com/public/_apis/build/status/dotnet/runtime/runtime?branchName=master)](https://dnceng.visualstudio.com/public/_build/latest?definitionId=686&branchName=master)
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/dotnet/runtime)

This repo contains the code to build the .NET runtime, libraries and shared host (`dotnet`) installers for
all supported platforms, as well as the sources to .NET runtime and libraries.
This repo contains the code to build the .NET deployment tools and installers for
all supported platforms, as well as the sources to .NET deployment tools.

## What is .NET?

Official Starting Page: https://dotnet.microsoft.com/

* [How to use .NET](https://docs.microsoft.com/dotnet/core/get-started) (with VS, VS Code, command-line CLI)
* [Install official releases](https://dotnet.microsoft.com/download)
* [Install daily builds](https://github.com/dotnet/installer#installers-and-binaries)
* [Documentation](https://docs.microsoft.com/dotnet/core) (Get Started, Tutorials, Porting from .NET Framework, API reference, ...)
* [Deploying apps](https://docs.microsoft.com/dotnet/core/deploying)
* [Supported OS versions](https://github.com/dotnet/core/blob/master/os-lifecycle-policy.md)
Expand All @@ -35,7 +31,7 @@ Also see info about related [Microsoft .NET Core and ASP.NET Core Bug Bounty Pro

## Filing issues

This repo should contain issues that are tied to the runtime, the class libraries and frameworks, the installation of the `dotnet` binary (sometimes known as the `muxer`) and installation of the .NET runtime and libraries.
This repo should contain issues that are tied to .NET deployment tools and its installation packages.

For other issues, please use the following repos:

Expand All @@ -51,7 +47,7 @@ For other issues, please use the following repos:

## .NET Foundation

.NET Runtime is a [.NET Foundation](https://www.dotnetfoundation.org/projects) project.
.NET Deployment Tools is a [.NET Foundation](https://www.dotnetfoundation.org/projects) project.

There are many .NET related projects on GitHub.

Expand All @@ -64,4 +60,4 @@ General .NET OSS discussions: [.NET Foundation forums](https://forums.dotnetfoun

## License

.NET (including the runtime repo) is licensed under the [MIT](LICENSE.TXT) license.
.NET (including the deployment-tools repo) is licensed under the [MIT](LICENSE.TXT) license.
110 changes: 5 additions & 105 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ trigger:
branches:
include:
- master
- release/3.*
- internal/release/3.*
- release/*
- internal/release/*

pr:
- master
- release/3.*
- internal/release/3.*
- release/*
- internal/release/*


name: $(Date:yyyyMMdd)$(Rev:.r)
Expand Down Expand Up @@ -40,112 +40,12 @@ variables:
- name: SignType
value: $[ coalesce(variables.OfficialSignType, 'real') ]
# Values for SDLValidationParameters
- group: core-setup-sdl-validation
- group: deployment-tools-sdl-validation

stages:
- stage: Build
jobs:
# -------- Build Bash legs (Linux and FreeBSD) --------
- template: /eng/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-14.04-cross-e435274-20180426002420
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm
portableBuild: true
skipTests: true
targetArchitecture: arm

- template: /eng/jobs/bash-build.yml
parameters:
crossBuild: true
name: Linux_Arm64
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-a3ae44b-20180316023254
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: true
skipTests: true
targetArchitecture: arm64

# # Tizen build only for PR build
# - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
# - template: /eng/jobs/bash-build.yml
# parameters:
# additionalMSBuildArgs: /p:OverridePackageSource=https:%2F%2Ftizen.myget.org/F/dotnet-core/api/v3/index.json /p:OutputRid=tizen.5.0.0-armel
# additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/armel.tizen.build
# crossBuild: true
# name: Linux_ArmRel_Tizen
# disableCrossgen: true
# dockerImage: tizendotnet/dotnet-buildtools-prereqs:ubuntu-16.04-cross-e435274-20180426002255-tizen-rootfs-5.0m1
# portableBuild: false
# skipTests: true
# targetArchitecture: armel

- template: /eng/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-arm64
crossBuild: true
name: Linux_Arm64_Alpine37
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-16.04-cross-arm64-alpine10fcdcf-20190208200917
additionalRunArgs: -e ROOTFS_DIR=/crossrootfs/arm64
portableBuild: false
skipTests: true
targetArchitecture: arm64

- template: /eng/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=linux-musl-x64
name: Linux_x64_Alpine36
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.6-3e800f1-20190508143246
portableBuild: false
targetArchitecture: x64

- template: /eng/jobs/bash-build.yml
parameters:
name: Linux_x64_glibc
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-d485f41-20173404063424
packageDistroList:
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-14.04-debpkg-e5cf912-20175003025046
imageRid: ubuntu.14.04
rids: []
- image: mcr.microsoft.com/dotnet-buildtools/prereqs:rhel-7-rpmpkg-c982313-20174116044113
imageRid: rhel.7
rids:
- centos.7
- fedora.27
- opensuse.42
- oraclelinux.7
- sles.12
portableBuild: true
targetArchitecture: x64

- template: /eng/jobs/bash-build.yml
parameters:
additionalMSBuildArgs: /p:OutputRid=rhel.6-x64
name: Linux_x64_Rhel6
dockerImage: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-6-376e1a3-20174311014331
portableBuild: false
targetArchitecture: x64

# -------- Build OSX (macOS) leg --------
- template: /eng/jobs/osx-build.yml
parameters:
name: OSX

# -------- Build Windows legs --------
# Windows Arm
- template: /eng/jobs/windows-build.yml
parameters:
name: Windows_Arm
skipTests: true
targetArchitecture: arm

# Windows Arm64
- template: /eng/jobs/windows-build.yml
parameters:
name: Windows_Arm64
skipTests: true
targetArchitecture: arm64

# Windows x64
- template: /eng/jobs/windows-build.yml
parameters:
Expand Down
23 changes: 4 additions & 19 deletions eng/Configurations.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,10 @@
-->

<PropertyGroup>
<LibrariesProjectRoot>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'libraries'))</LibrariesProjectRoot>
<CoreClrProjectRoot>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'coreclr'))</CoreClrProjectRoot>
<MonoProjectRoot>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'mono'))</MonoProjectRoot>
<InstallerProjectRoot>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'installer'))</InstallerProjectRoot>
<ClickOnceProjectRoot>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'clickonce'))</ClickOnceProjectRoot>
<RepoToolsLocalDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'tools-local'))</RepoToolsLocalDir>
<RepoTasksDir>$([MSBuild]::NormalizeDirectory('$(RepoToolsLocalDir)', 'tasks'))</RepoTasksDir>
<IbcOptimizationDataDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'ibc'))</IbcOptimizationDataDir>
<XmlDocDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'docs'))</XmlDocDir>
</PropertyGroup>

<!-- The TFMs to build and test against. -->
Expand All @@ -33,16 +29,9 @@
<NetFrameworkCurrent>net472</NetFrameworkCurrent>
</PropertyGroup>

<!-- Honor the generic RuntimeConfiguration property. -->
<!-- Provides a way to override ClickOnce configuration. -->
<PropertyGroup>
<RuntimeConfiguration Condition="'$(RuntimeConfiguration)' == ''">$(Configuration)</RuntimeConfiguration>
<RuntimeConfiguration Condition="'$(RuntimeConfiguration)' == '' AND ('$(Configuration)' == 'Debug' OR '$(Configuration)' == 'Release')">$(Configuration)</RuntimeConfiguration>
<RuntimeConfiguration Condition="'$(RuntimeConfiguration)' == ''">Debug</RuntimeConfiguration>
<CoreCLRConfiguration Condition="'$(CoreCLRConfiguration)' == ''">$(RuntimeConfiguration)</CoreCLRConfiguration>
<MonoConfiguration Condition="'$(MonoConfiguration)' == '' and '$(RuntimeConfiguration.ToLower())' != 'checked'">$(RuntimeConfiguration)</MonoConfiguration>
<!-- There's no checked configuration on Mono. -->
<MonoConfiguration Condition="'$(MonoConfiguration)' == '' and '$(RuntimeConfiguration.ToLower())' == 'checked'">Debug</MonoConfiguration>
<LibrariesConfiguration Condition="'$(LibrariesConfiguration)' == ''">$(Configuration)</LibrariesConfiguration>
<ClickOnceConfiguration Condition="'$(ClickOnceConfiguration)' == ''">$(Configuration)</ClickOnceConfiguration>
</PropertyGroup>

<PropertyGroup>
Expand All @@ -56,9 +45,6 @@
<TargetOS Condition="'$(TargetOS)' == '' and $([MSBuild]::IsOSPlatform('SOLARIS'))">Solaris</TargetOS>
<TargetOS Condition="'$(TargetOS)' == '' and $([MSBuild]::IsOSUnixLike())">Linux</TargetOS>
<TargetOS Condition="'$(TargetOS)' == '' and $([MSBuild]::IsOSPlatform('WINDOWS'))">Windows_NT</TargetOS>
<CoreCLRTargetOS Condition="'$(CoreCLRTargetOS)' == ''">$(TargetOS)</CoreCLRTargetOS>
<MonoTargetOS Condition="'$(MonoTargetOS)' == ''">$(TargetOS)</MonoTargetOS>
<LibrariesTargetOS Condition="'$(LibrariesTargetOS)' == ''">$(TargetOS)</LibrariesTargetOS>
</PropertyGroup>

<PropertyGroup>
Expand All @@ -67,8 +53,7 @@

<!--Feature switches -->
<PropertyGroup>
<EnableNgenOptimization Condition="'$(EnableNgenOptimization)' == '' and '$(Configuration)' == 'Release'">true</EnableNgenOptimization>
<!-- Enable NuGet static graph evaluation to optimize incremental restore -->
<RestoreUseStaticGraphEvaluation>true</RestoreUseStaticGraphEvaluation>
</PropertyGroup>
</Project>
</Project>
13 changes: 3 additions & 10 deletions eng/SignCheckExclusionsFile.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,6 @@
;;
;; This issue tracks a way to implement exclusions via Signing.props and avoid this extra file: https://github.com/dotnet/arcade/issues/2888

;; The apphost and comhost are template files, modified by the SDK to produce the executable for FDE
;; and SCD apps. If they are signed, the file that the SDK produces has an invalid signature and
;; can't be signed again. More info at https://github.com/dotnet/core-setup/pull/7549.
*apphost.exe;;Template, https://github.com/dotnet/core-setup/pull/7549
*singlefilehost.exe;;Template, https://github.com/dotnet/core-setup/pull/7549
*comhost.dll;;Template, https://github.com/dotnet/core-setup/pull/7549
*apphosttemplateapphostexe.exe;;Template, https://github.com/dotnet/core-setup/pull/7549
*comhosttemplatecomhostdll.dll;;Template, https://github.com/dotnet/core-setup/pull/7549
*staticapphosttemplateapphostexe.exe;;Template, https://github.com/dotnet/core-setup/pull/7549
*dotnet.js;;Workaround, https://github.com/dotnet/core-eng/issues/9933
;; Examples:
;; *apphost.exe;;Template, https://github.com/dotnet/core-setup/pull/7549
;; *apphosttemplateapphostexe.exe;;Template, https://github.com/dotnet/core-setup/pull/7549
59 changes: 2 additions & 57 deletions eng/Signing.props
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@

<!-- Get artifact locations to sign. -->
<Import Project="$(RepositoryEngineeringDir)Configurations.props" />
<Import Project="$(RepositoryEngineeringDir)liveBuilds.targets" />

<!-- We need this to be inside a target to workaround: https://github.com/microsoft/msbuild/issues/5445 -->
<Target Name="PrepareItemsToSign" BeforeTargets="Sign">
Expand All @@ -26,61 +25,12 @@
<BundleInstallerEngineArtifact Include="$(ArtifactsPackagesDir)**/*engine.exe" />
<BundleInstallerExeArtifact Include="$(ArtifactsPackagesDir)**/*.exe" />

<!-- apphost and comhost template files are not signed, by design. -->
<FileSignInfo Include="apphost.exe;singlefilehost.exe;comhost.dll" CertificateName="None" />
</ItemGroup>

<ItemGroup Condition="'$(CrossTargetComponentFolder)' != ''">
<CoreCLRCrossTargetItemsToSign Include="$(CoreCLRArtifactsPath)$(CrossTargetComponentFolder)/sharedFramework/*.dll" />
<CoreCLRCrossTargetItemsToSign Include="$(CoreCLRArtifactsPath)$(CrossTargetComponentFolder)/sharedFramework/*.exe" />
<!-- launcher is not signed, by design. -->
<FileSignInfo Include="launcher.exe" CertificateName="None" />
</ItemGroup>

<ItemGroup Condition="'$(SignBinaries)' == 'true'">
<!-- Sign CoreCLR. -->
<ItemsToSign Include="$(CoreCLRSharedFrameworkDir)*.dll" />
<ItemsToSign Include="$(CoreCLRSharedFrameworkDir)*.exe" />

<ItemsToSign Include="$(CoreCLRArtifactsPath)System.Private.CoreLib.dll" />

<ItemsToSign Include="$(CoreCLRCrossgen2Dir)crossgen2.exe" />
<ItemsToSign Include="$(CoreCLRCrossgen2Dir)crossgen2.dll" />
<ItemsToSign Include="$(CoreCLRCrossgen2Dir)ILCompiler.DependencyAnalysisFramework.dll" />
<ItemsToSign Include="$(CoreCLRCrossgen2Dir)ILCompiler.ReadyToRun.dll" />
<ItemsToSign Include="$(CoreCLRCrossgen2Dir)ILCompiler.TypeSystem.ReadyToRun.dll" />
<ItemsToSign Include="$(CoreCLRCrossgen2Dir)jitinterface.dll" />

<ItemsToSign Condition="'$(TargetOS)' == 'Windows_NT'" Include="$(CoreCLRCrossgen2Dir)clrjit-win-$(TargetArchitecture).dll" />
<ItemsToSign Condition="'$(TargetOS)' != 'Windows_NT'" Include="$(CoreCLRCrossgen2Dir)clrjit-unix-$(TargetArchitecture).dll" />

<ItemsToSign Include="@(CoreCLRCrossTargetItemsToSign)" />

<FileSignInfo Include="mscordaccore.dll" CertificateName="MicrosoftSHA2" />

<!-- Sign api-ms-win-core-xstate-l2-1-0 binary as it is only catalog signed in the current SDK. -->
<ItemsToSign
Condition="'$(Configuration)' == 'Release' and '$(TargetArchitecture)' == 'x86'"
Include="$(CoreCLRArtifactsPath)Redist\ucrt\DLLs\$(TargetArchitecture)\api-ms-win-core-xstate-l2-1-0.dll" />

<!-- Sign libraries. -->
<ItemsToSign Include="$(LibrariesNativeArtifactsPath)*.dll" />
<ItemsToSign Include="$(LibrariesSharedFrameworkRefArtifactsPath)*.dll" />
<!-- Most runtime artifacts will be crossgenned, so sign them post-crossgen. mscorlib isn't. -->
<ItemsToSign Include="$(LibrariesSharedFrameworkBinArtifactsPath)mscorlib.dll" />

<!-- Sign the host. -->
<ItemsToSign Include="$(BaseOutputRootPath)corehost/**/hostfxr.dll" />
<ItemsToSign Include="$(BaseOutputRootPath)corehost/**/hostpolicy.dll" />
<ItemsToSign Include="$(BaseOutputRootPath)corehost/**/dotnet.exe" />
<ItemsToSign Include="$(BaseOutputRootPath)corehost/**/ijwhost.dll" />
<ItemsToSign Include="$(BaseOutputRootPath)corehost/**/nethost.dll" />

<!-- Sign managed libraries in installer subset. -->
<ItemsToSign Include="$(ArtifactsBinDir)Microsoft.NET.HostModel/**/*.dll" />
</ItemGroup>

<!-- Sign ready-to-run binaries after crossgen is applied. -->
<ItemGroup Condition="'$(SignR2RBinaries)' == 'true'">
<ItemsToSign Include="$(CrossGenRootPath)**/*.dll" />
</ItemGroup>

<ItemGroup Condition="'$(SignMsiFiles)' == 'true'">
Expand Down Expand Up @@ -108,11 +58,6 @@
<ItemsToSign Include="$(DownloadDirectory)**\*.rpm" />
</ItemGroup>

<ItemGroup>
<!-- External files -->
<ItemsToSign Remove="@(ItemsToSign->WithMetadataValue('Filename', 'Newtonsoft.Json'))" />
</ItemGroup>

<ItemGroup>
<ItemsToSign Update="@(ItemsToSign)" Authenticode="$(CertificateId)" />
</ItemGroup>
Expand Down
Loading

0 comments on commit b4a456a

Please sign in to comment.