diff --git a/.gitignore b/.gitignore index 23fe40877..2ce687bb1 100644 --- a/.gitignore +++ b/.gitignore @@ -95,8 +95,10 @@ dlldata.c # Build artifacts artifacts/ +artifacts-*/ bin/ .dotnet/ +.dotnet-*/ *_i.c *_p.c diff --git a/.vsts-ci.yml b/.vsts-ci.yml index c80b375e9..ed0b46fd8 100644 --- a/.vsts-ci.yml +++ b/.vsts-ci.yml @@ -12,293 +12,311 @@ variables: value: https://dotnetclichecksums.blob.core.windows.net/dotnet/index.json - name: _ArcadePublishBlobFeedUrl value: https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json +- name: _DotNetArtifactsCategory + value: .NETCore +- name: _DotNetValidationArtifactsCategory + value: .NETCoreValidation +- name: _PublishUsingPipelines + value: false - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - group: DotNet-DotNetCli-Storage - group: DotNet-Blob-Feed + - name: _PublishUsingPipelines + value: true -jobs: -- template: /eng/build.yml - parameters: - agentOs: Windows_NT - pool: - ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: - name: NetCorePublic-Pool - queue: buildpool.windows.10.amd64.vs2017.open - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - name: NetCoreInternal-Pool - queue: buildpool.windows.10.amd64.vs2017 - timeoutInMinutes: 180 - strategy: - matrix: - # Public-only builds +stages: +- stage: build + jobs: + - template: /eng/build.yml + parameters: + agentOs: Windows_NT + pool: ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: - Build_Debug_x86: - _BuildConfig: Debug - _BuildArchitecture: x86 - _DOTNET_CLI_UI_LANGUAGE: '' - _DropSuffix: '' - Build_ES_Debug_x64: - _BuildConfig: Debug - _BuildArchitecture: x64 - _DOTNET_CLI_UI_LANGUAGE: es - _DropSuffix: '' - Build_DropSuffix_Release_x64: + name: NetCorePublic-Pool + queue: buildpool.windows.10.amd64.vs2017.open + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + name: NetCoreInternal-Pool + queue: buildpool.windows.10.amd64.vs2017 + timeoutInMinutes: 180 + strategy: + matrix: + # Public-only builds + ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: + Build_Debug_x86: + _BuildConfig: Debug + _BuildArchitecture: x86 + _DOTNET_CLI_UI_LANGUAGE: '' + _DropSuffix: '' + Build_ES_Debug_x64: + _BuildConfig: Debug + _BuildArchitecture: x64 + _DOTNET_CLI_UI_LANGUAGE: es + _DropSuffix: '' + Build_DropSuffix_Release_x64: + _BuildConfig: Release + _BuildArchitecture: x64 + _DOTNET_CLI_UI_LANGUAGE: '' + _DropSuffix: true + # Internal-only builds + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + Build_Release_x86: + _BuildConfig: Release + _BuildArchitecture: x86 + _DOTNET_CLI_UI_LANGUAGE: '' + _DropSuffix: '' + # Always run builds + Build_Release_x64: _BuildConfig: Release _BuildArchitecture: x64 _DOTNET_CLI_UI_LANGUAGE: '' - _DropSuffix: true - # Internal-only builds - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - Build_Release_x86: + _DropSuffix: '' + _AdditionalBuildParameters: '/p:PublishInternalAsset=true + /p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1) + /p:DotNetPublishBlobFeedUrl=$(_ArcadePublishBlobFeedUrl)' + Build_Release_arm: _BuildConfig: Release - _BuildArchitecture: x86 + _BuildArchitecture: arm _DOTNET_CLI_UI_LANGUAGE: '' _DropSuffix: '' - # Always run builds - Build_Release_x64: - _BuildConfig: Release - _BuildArchitecture: x64 - _DOTNET_CLI_UI_LANGUAGE: '' - _DropSuffix: '' - _AdditionalBuildParameters: '/p:PublishInternalAsset=true - /p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1) - /p:DotNetPublishBlobFeedUrl=$(_ArcadePublishBlobFeedUrl)' - Build_Release_arm: - _BuildConfig: Release - _BuildArchitecture: arm - _DOTNET_CLI_UI_LANGUAGE: '' - _DropSuffix: '' -- template: /eng/build.yml - parameters: - agentOs: Linux - pool: - name: Hosted Ubuntu 1604 - timeoutInMinutes: 180 - strategy: - matrix: - ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: - Build_Ubuntu_14_04_Release_x64: - _BuildConfig: Release - _DockerParameter: '--docker ubuntu.14.04' - _LinuxPortable: '' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _DropSuffix: '' - Build_Ubuntu_16_04_Debug_x64: - _BuildConfig: Debug - _DockerParameter: '--docker ubuntu.16.04' - _LinuxPortable: '' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _DropSuffix: '' - Build_Ubuntu_18_04_Debug_x64: - _BuildConfig: Debug - _DockerParameter: '--docker ubuntu.18.04' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _DropSuffix: '' - Build_Fedora_27_Debug_x64: - _BuildConfig: Debug - _DockerParameter: '--docker fedora.27' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _DropSuffix: '' - Build_Fedora_28_Debug_x64: - _BuildConfig: Debug - _DockerParameter: '--docker fedora.28' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _DropSuffix: '' - Build_Fedora_29_Debug_x64: - _BuildConfig: Debug - _DockerParameter: '--docker fedora.29' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _DropSuffix: '' - Build_CentOS_7_1_Debug_x64: - _BuildConfig: Debug - _DockerParameter: '--docker centos' - _LinuxPortable: '' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _DropSuffix: '' - Build_Debian_Jessie_Debug_x64: - _BuildConfig: Debug - _DockerParameter: '--docker debian' - _LinuxPortable: '' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _DropSuffix: '' - Build_Rhel_7_2_Release_x64: - _BuildConfig: Release - _DockerParameter: '--docker rhel' - _LinuxPortable: '' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _DropSuffix: '' - Build_Rhel_6_Debug_x64: - _BuildConfig: Debug - _DockerParameter: '--docker rhel.6' - _LinuxPortable: '' - _RuntimeIdentifier: '--runtime-id rhel.6-x64' - _BuildArchitecture: 'x64' - _DropSuffix: '' - Build_Arm_Debug: - _BuildConfig: Debug - _DockerParameter: '' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '--runtime-id linux-arm' - _BuildArchitecture: 'arm' - _DropSuffix: '' - Build_Arm64_Debug: - _BuildConfig: Debug - _DockerParameter: '' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '--runtime-id linux-arm64' - _BuildArchitecture: 'arm64' - _DropSuffix: '' - Build_Linux_musl_Debug_x64: - _BuildConfig: Debug - _DockerParameter: '--docker alpine.3.6' - _LinuxPortable: '' - _RuntimeIdentifier: '--runtime-id linux-musl-x64' - _BuildArchitecture: 'x64' - _DropSuffix: '' - Build_LinuxPortable_NoSuffix_Release_x64: + - template: /eng/build.yml + parameters: + agentOs: Linux + pool: + name: Hosted Ubuntu 1604 + timeoutInMinutes: 180 + strategy: + matrix: + ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: + Build_Ubuntu_14_04_Release_x64: + _BuildConfig: Release + _DockerParameter: '--docker ubuntu.14.04' + _LinuxPortable: '' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _DropSuffix: '' + Build_Ubuntu_16_04_Debug_x64: + _BuildConfig: Debug + _DockerParameter: '--docker ubuntu.16.04' + _LinuxPortable: '' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _DropSuffix: '' + Build_Ubuntu_18_04_Debug_x64: + _BuildConfig: Debug + _DockerParameter: '--docker ubuntu.18.04' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _DropSuffix: '' + Build_Fedora_27_Debug_x64: + _BuildConfig: Debug + _DockerParameter: '--docker fedora.27' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _DropSuffix: '' + Build_Fedora_28_Debug_x64: + _BuildConfig: Debug + _DockerParameter: '--docker fedora.28' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _DropSuffix: '' + Build_Fedora_29_Debug_x64: + _BuildConfig: Debug + _DockerParameter: '--docker fedora.29' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _DropSuffix: '' + Build_CentOS_7_1_Debug_x64: + _BuildConfig: Debug + _DockerParameter: '--docker centos' + _LinuxPortable: '' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _DropSuffix: '' + Build_Debian_Jessie_Debug_x64: + _BuildConfig: Debug + _DockerParameter: '--docker debian' + _LinuxPortable: '' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _DropSuffix: '' + Build_Rhel_7_2_Release_x64: + _BuildConfig: Release + _DockerParameter: '--docker rhel' + _LinuxPortable: '' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _DropSuffix: '' + Build_Rhel_6_Debug_x64: + _BuildConfig: Debug + _DockerParameter: '--docker rhel.6' + _LinuxPortable: '' + _RuntimeIdentifier: '--runtime-id rhel.6-x64' + _BuildArchitecture: 'x64' + _DropSuffix: '' + Build_Arm_Debug: + _BuildConfig: Debug + _DockerParameter: '' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '--runtime-id linux-arm' + _BuildArchitecture: 'arm' + _DropSuffix: '' + Build_Arm64_Debug: + _BuildConfig: Debug + _DockerParameter: '' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '--runtime-id linux-arm64' + _BuildArchitecture: 'arm64' + _DropSuffix: '' + Build_Linux_musl_Debug_x64: + _BuildConfig: Debug + _DockerParameter: '--docker alpine.3.6' + _LinuxPortable: '' + _RuntimeIdentifier: '--runtime-id linux-musl-x64' + _BuildArchitecture: 'x64' + _DropSuffix: '' + Build_LinuxPortable_NoSuffix_Release_x64: + _BuildConfig: Release + _DockerParameter: '' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _DropSuffix: true + Build_Arm_NoSuffix_Release: + _BuildConfig: Release + _DockerParameter: '' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '--runtime-id linux-arm' + _BuildArchitecture: 'arm' + _DropSuffix: true + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + Build_Arm_Release: + _BuildConfig: Release + _DockerParameter: '' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '--runtime-id linux-arm' + _BuildArchitecture: 'arm' + _DropSuffix: '' + Build_Arm64_Release: + _BuildConfig: Release + _DockerParameter: '' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '--runtime-id linux-arm64' + _BuildArchitecture: 'arm64' + _DropSuffix: '' + Build_Rhel_6_Release_x64: + _BuildConfig: Release + _DockerParameter: '--docker rhel.6' + _LinuxPortable: '' + _RuntimeIdentifier: '--runtime-id rhel.6-x64' + _BuildArchitecture: 'x64' + _DropSuffix: '' + Build_Linux_musl_Release_x64: + _BuildConfig: Release + _DockerParameter: '--docker alpine.3.6' + _LinuxPortable: '' + _RuntimeIdentifier: '--runtime-id linux-musl-x64' + _BuildArchitecture: 'x64' + _DropSuffix: '' + Build_Linux_Portable_Deb_Release_x64: + _BuildConfig: Release + _DockerParameter: '--docker ubuntu.16.04' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _DropSuffix: '' + # Do not publish zips and tarballs. The linux-x64 binaries are + # already published by Build_LinuxPortable_Release_x64 + _AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false' + Build_Linux_Portable_Rpm_Release_x64: + _BuildConfig: Release + _DockerParameter: '--docker rhel' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _DropSuffix: '' + # Do not publish zips and tarballs. The linux-x64 binaries are + # already published by Build_LinuxPortable_Release_x64 + _AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false' + Build_LinuxPortable_Release_x64: _BuildConfig: Release _DockerParameter: '' _LinuxPortable: '--linux-portable' _RuntimeIdentifier: '' _BuildArchitecture: 'x64' - _DropSuffix: true - Build_Arm_NoSuffix_Release: - _BuildConfig: Release - _DockerParameter: '' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '--runtime-id linux-arm' - _BuildArchitecture: 'arm' - _DropSuffix: true - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - Build_Arm_Release: - _BuildConfig: Release - _DockerParameter: '' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '--runtime-id linux-arm' - _BuildArchitecture: 'arm' _DropSuffix: '' - Build_Arm64_Release: - _BuildConfig: Release - _DockerParameter: '' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '--runtime-id linux-arm64' - _BuildArchitecture: 'arm64' - _DropSuffix: '' - Build_Rhel_6_Release_x64: - _BuildConfig: Release - _DockerParameter: '--docker rhel.6' - _LinuxPortable: '' - _RuntimeIdentifier: '--runtime-id rhel.6-x64' - _BuildArchitecture: 'x64' - _DropSuffix: '' - Build_Linux_musl_Release_x64: - _BuildConfig: Release - _DockerParameter: '--docker alpine.3.6' - _LinuxPortable: '' - _RuntimeIdentifier: '--runtime-id linux-musl-x64' - _BuildArchitecture: 'x64' - _DropSuffix: '' - Build_Linux_Portable_Deb_Release_x64: - _BuildConfig: Release - _DockerParameter: '--docker ubuntu.16.04' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _DropSuffix: '' - # Do not publish zips and tarballs. The linux-x64 binaries are - # already published by Build_LinuxPortable_Release_x64 - _AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false' - Build_Linux_Portable_Rpm_Release_x64: - _BuildConfig: Release - _DockerParameter: '--docker rhel' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _DropSuffix: '' - # Do not publish zips and tarballs. The linux-x64 binaries are - # already published by Build_LinuxPortable_Release_x64 - _AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false' - Build_LinuxPortable_Release_x64: - _BuildConfig: Release - _DockerParameter: '' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _DropSuffix: '' -- template: /eng/build.yml - parameters: - agentOs: Darwin - pool: - name: Hosted macOS - timeoutInMinutes: 180 - strategy: - matrix: - Build_Release: - _BuildConfig: Release + - template: /eng/build.yml + parameters: + agentOs: Darwin + pool: + name: Hosted macOS + timeoutInMinutes: 180 + strategy: + matrix: + Build_Release: + _BuildConfig: Release -# https://github.com/dotnet/core-sdk/issues/248 -# - template: /eng/build.yml -# parameters: -# agentOs: FreeBSD -# queue: -# name: dnceng-freebsd-internal -# timeoutInMinutes: 180 -# matrix: -# Build_Release: -# _BuildConfig: Release -# _AdditionalBuildParameters: '/p:DisableSourceLink=true /p:DISABLE_CROSSGEN=true' + # https://github.com/dotnet/core-sdk/issues/248 + # - template: /eng/build.yml + # parameters: + # agentOs: FreeBSD + # queue: + # name: dnceng-freebsd-internal + # timeoutInMinutes: 180 + # matrix: + # Build_Release: + # _BuildConfig: Release + # _AdditionalBuildParameters: '/p:DisableSourceLink=true /p:DISABLE_CROSSGEN=true' + + - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - template: /eng/common/templates/job/publish-build-assets.yml + parameters: + dependsOn: + - Windows_NT + - Linux + - Darwin + publishUsingPipelines: true + pool: + vmImage: vs2017-win2016 - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - job: Copy_SDK_To_Latest + - template: eng\common\templates\post-build\post-build.yml + parameters: + # Symbol validation isn't being very reliable lately. This should be enabled back + # once this issue is resolved: https://github.com/dotnet/arcade/issues/2871 + enableSymbolValidation: false + # This repo doesn't produce any signed packages. + enableSigningValidation: false + publishInstallersAndChecksums: true + +- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), not(contains(variables['Build.SourceBranch'], 'refs/heads/internal/'))) }}: + - stage: copy_to_latest + displayName: Copy to latest dependsOn: - - Windows_NT - - Linux - - Darwin - pool: - name: Hosted VS2017 - condition: succeeded() - variables: - - group: DotNet-DotNetCli-Storage - steps: - - script: eng/CopyToLatest.cmd - /p:DotnetPublishSdkAssetsBlobFeedUrl=$(_PublishBlobFeedUrl) - /p:DotNetPublishSdkAssetsBlobFeedKey=$(dotnetcli-storage-key) - /p:DotnetPublishChecksumsBlobFeedUrl=$(_PublishChecksumsBlobFeedUrl) - /p:DotNetPublishChecksumsBlobFeedKey=$(dotnetclichecksums-storage-key) - displayName: Copy to latest - -- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - template: /eng/common/templates/job/publish-build-assets.yml - parameters: - dependsOn: - - Windows_NT - - Linux - - Darwin - enablePublishBuildArtifacts: true + # This will run only after all the publishing stages have run. + # These stages are introduced in the eng/common/templates/post-build/channels YAML templates + - NetCore_Dev31_Publish + - NetCore_Dev30_Publish + - NetCore_Dev5_Publish + - NetCore_Release30_Publish + - NetCore_Release31_Publish + - PVR_Publish + jobs: + - job: Copy_SDK_To_Latest pool: - vmImage: vs2017-win2016 - -- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - template: /eng/common/templates/job/generate-graph-files.yml - parameters: - continueOnError: true - includeToolset: false - dependsOn: - - Asset_Registry_Publish - pool: - vmImage: vs2017-win2016 + name: Hosted VS2017 + condition: succeeded() + variables: + - group: DotNet-DotNetCli-Storage + steps: + - script: eng/CopyToLatest.cmd + /p:DotnetPublishSdkAssetsBlobFeedUrl=https://dotnetcli.blob.core.windows.net/dotnet/index.json + /p:DotNetPublishSdkAssetsBlobFeedKey=$(dotnetcli-storage-key) + /p:DotnetPublishChecksumsBlobFeedUrl=https://dotnetclichecksums.blob.core.windows.net/dotnet/index.json + /p:DotNetPublishChecksumsBlobFeedKey=$(dotnetclichecksums-storage-key) + displayName: Copy to latest diff --git a/Microsoft.DotNet.Cli.sln b/Microsoft.DotNet.Cli.sln index ed4f517c9..a5f56ff79 100644 --- a/Microsoft.DotNet.Cli.sln +++ b/Microsoft.DotNet.Cli.sln @@ -19,6 +19,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SdkResolver", "src\SdkResol EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Dotnet.Sdk.Internal", "src\Microsoft.Dotnet.Sdk.Internal\Microsoft.Dotnet.Sdk.Internal.csproj", "{73F07908-981B-41BB-B9BD-F3420274A6F7}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SdkTests", "test\SdkTests\SdkTests.csproj", "{CB1EE94E-CB83-4071-9DD0-9929AE2B7282}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -49,6 +51,10 @@ Global {73F07908-981B-41BB-B9BD-F3420274A6F7}.Debug|Any CPU.Build.0 = Debug|Any CPU {73F07908-981B-41BB-B9BD-F3420274A6F7}.Release|Any CPU.ActiveCfg = Release|Any CPU {73F07908-981B-41BB-B9BD-F3420274A6F7}.Release|Any CPU.Build.0 = Release|Any CPU + {CB1EE94E-CB83-4071-9DD0-9929AE2B7282}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB1EE94E-CB83-4071-9DD0-9929AE2B7282}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB1EE94E-CB83-4071-9DD0-9929AE2B7282}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB1EE94E-CB83-4071-9DD0-9929AE2B7282}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -59,6 +65,7 @@ Global {53AF2D01-B69F-4CD0-86A7-8FD95967D23C} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F} {78E15EC1-7732-41E3-8591-934E9F583254} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7} {7EE15292-2CAD-44FA-8A1F-BAC4688A49E0} = {ED2FE3E2-F7E7-4389-8231-B65123F2076F} + {CB1EE94E-CB83-4071-9DD0-9929AE2B7282} = {17735A9D-BFD9-4585-A7CB-3208CA6EA8A7} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {B526D2CE-EE2D-4AD4-93EF-1867D90FF1F5} diff --git a/NuGet.config b/NuGet.config index 227180760..c5efe56ae 100644 --- a/NuGet.config +++ b/NuGet.config @@ -7,16 +7,14 @@ + - - - - - - - + + + + diff --git a/README.md b/README.md index 088dd9012..e2ef7b5a5 100644 --- a/README.md +++ b/README.md @@ -51,18 +51,18 @@ With development builds, internal NuGet feeds are necessary for some scenarios ( ``` -| Platform | Master
(3.0.x Runtime) | Release/3.1.1XX
(3.1.x Runtime) | Release/3.0.1XX
(3.0.x Runtime) | Release/3.0.100-preview8
(3.0.x Runtime) | Release/2.2.3XX
(2.2.x Runtime) | Release/2.2.2XX
(2.2.x Runtime) | Release/2.2.1XX
(2.2.x Runtime) | Release/2.1.7XX
(2.1.7 Runtime) | Release/2.1.6XX
(2.1.6 Runtime) | Release/2.1.5XX
(2.1.5 Runtime) | -|---------|:----------:|:----------:|:----------:|:----------:|:----------:|:----------:|:----------:|:----------:|:----------:|:----------:| -| **Windows x64** | [![][win-x64-badge-master]][win-x64-version-master]
[Installer][win-x64-installer-master] - [Checksum][win-x64-installer-checksum-master]
[zip][win-x64-zip-master] - [Checksum][win-x64-zip-checksum-master] | [![][win-x64-badge-3.1.1xx]][win-x64-version-3.1.1xx]
[Installer][win-x64-installer-3.1.1xx] - [Checksum][win-x64-installer-checksum-3.1.1xx]
[zip][win-x64-zip-3.1.1xx] - [Checksum][win-x64-zip-checksum-3.1.1xx] | [![][win-x64-badge-3.0.1xx]][win-x64-version-3.0.1xx]
[Installer][win-x64-installer-3.0.1xx] - [Checksum][win-x64-installer-checksum-3.0.1xx]
[zip][win-x64-zip-3.0.1xx] - [Checksum][win-x64-zip-checksum-3.0.1xx] | [![][win-x64-badge-3.0.100-preview8]][win-x64-version-3.0.100-preview8]
[Installer][win-x64-installer-3.0.100-preview8] - [Checksum][win-x64-installer-checksum-3.0.100-preview8]
[zip][win-x64-zip-3.0.100-preview8] - [Checksum][win-x64-zip-checksum-3.0.100-preview8] | [![][win-x64-badge-2.2.3XX]][win-x64-version-2.2.3XX]
[Installer][win-x64-installer-2.2.3XX] - [Checksum][win-x64-installer-checksum-2.2.3XX]
[zip][win-x64-zip-2.2.3XX] - [Checksum][win-x64-zip-checksum-2.2.3XX] |[![][win-x64-badge-2.2.2XX]][win-x64-version-2.2.2XX]
[Installer][win-x64-installer-2.2.2XX] - [Checksum][win-x64-installer-checksum-2.2.2XX]
[zip][win-x64-zip-2.2.2XX] - [Checksum][win-x64-zip-checksum-2.2.2XX] |[![][win-x64-badge-2.2.1XX]][win-x64-version-2.2.1XX]
[Installer][win-x64-installer-2.2.1XX] - [Checksum][win-x64-installer-checksum-2.2.1XX]
[zip][win-x64-zip-2.2.1XX] - [Checksum][win-x64-zip-checksum-2.2.1XX] |[![][win-x64-badge-2.1.7XX]][win-x64-version-2.1.7XX]
[Installer][win-x64-installer-2.1.7XX] - [Checksum][win-x64-installer-checksum-2.1.7XX]
[zip][win-x64-zip-2.1.7XX] - [Checksum][win-x64-zip-checksum-2.1.7XX] | [![][win-x64-badge-2.1.6XX]][win-x64-version-2.1.6XX]
[Installer][win-x64-installer-2.1.6XX] - [Checksum][win-x64-installer-checksum-2.1.6XX]
[zip][win-x64-zip-2.1.6XX] - [Checksum][win-x64-zip-checksum-2.1.6XX] | [![][win-x64-badge-2.1.5XX]][win-x64-version-2.1.5XX]
[Installer][win-x64-installer-2.1.5XX] - [Checksum][win-x64-installer-checksum-2.1.5XX]
[zip][win-x64-zip-2.1.5XX] - [Checksum][win-x64-zip-checksum-2.1.5XX] | -| **Windows x86** | [![][win-x86-badge-master]][win-x86-version-master]
[Installer][win-x86-installer-master] - [Checksum][win-x86-installer-checksum-master]
[zip][win-x86-zip-master] - [Checksum][win-x86-zip-checksum-master] | [![][win-x86-badge-3.1.1xx]][win-x86-version-3.1.1xx]
[Installer][win-x86-installer-3.1.1xx] - [Checksum][win-x86-installer-checksum-3.1.1xx]
[zip][win-x86-zip-3.1.1xx] - [Checksum][win-x86-zip-checksum-3.1.1xx] | [![][win-x86-badge-3.0.1xx]][win-x86-version-3.0.1xx]
[Installer][win-x86-installer-3.0.1xx] - [Checksum][win-x86-installer-checksum-3.0.1xx]
[zip][win-x86-zip-3.0.1xx] - [Checksum][win-x86-zip-checksum-3.0.1xx] | [![][win-x86-badge-3.0.100-preview8]][win-x86-version-3.0.100-preview8]
[Installer][win-x86-installer-3.0.100-preview8] - [Checksum][win-x86-installer-checksum-3.0.100-preview8]
[zip][win-x86-zip-3.0.100-preview8] - [Checksum][win-x86-zip-checksum-3.0.100-preview8] | [![][win-x86-badge-2.2.3XX]][win-x86-version-2.2.3XX]
[Installer][win-x86-installer-2.2.3XX] - [Checksum][win-x86-installer-checksum-2.2.3XX]
[zip][win-x86-zip-2.2.3XX] - [Checksum][win-x86-zip-checksum-2.2.3XX] |[![][win-x86-badge-2.2.2XX]][win-x86-version-2.2.2XX]
[Installer][win-x86-installer-2.2.2XX] - [Checksum][win-x86-installer-checksum-2.2.2XX]
[zip][win-x86-zip-2.2.2XX] - [Checksum][win-x86-zip-checksum-2.2.2XX] |[![][win-x86-badge-2.2.1XX]][win-x86-version-2.2.1XX]
[Installer][win-x86-installer-2.2.1XX] - [Checksum][win-x86-installer-checksum-2.2.1XX]
[zip][win-x86-zip-2.2.1XX] - [Checksum][win-x86-zip-checksum-2.2.1XX] |[![][win-x86-badge-2.1.7XX]][win-x86-version-2.1.7XX]
[Installer][win-x86-installer-2.1.7XX] - [Checksum][win-x86-installer-checksum-2.1.7XX]
[zip][win-x86-zip-2.1.7XX] - [Checksum][win-x86-zip-checksum-2.1.7XX] | [![][win-x86-badge-2.1.6XX]][win-x86-version-2.1.6XX]
[Installer][win-x86-installer-2.1.6XX] - [Checksum][win-x86-installer-checksum-2.1.6XX]
[zip][win-x86-zip-2.1.6XX] - [Checksum][win-x86-zip-checksum-2.1.6XX] | [![][win-x86-badge-2.1.5XX]][win-x86-version-2.1.5XX]
[Installer][win-x86-installer-2.1.5XX] - [Checksum][win-x86-installer-checksum-2.1.5XX]
[zip][win-x86-zip-2.1.5XX] - [Checksum][win-x86-zip-checksum-2.1.5XX] | -| **macOS** | [![][osx-badge-master]][osx-version-master]
[Installer][osx-installer-master] - [Checksum][osx-installer-checksum-master]
[tar.gz][osx-targz-master] - [Checksum][osx-targz-checksum-master] | [![][osx-badge-3.1.1xx]][osx-version-3.1.1xx]
[Installer][osx-installer-3.1.1xx] - [Checksum][osx-installer-checksum-3.1.1xx]
[tar.gz][osx-targz-3.1.1xx] - [Checksum][osx-targz-checksum-3.1.1xx] | [![][osx-badge-3.0.1xx]][osx-version-3.0.1xx]
[Installer][osx-installer-3.0.1xx] - [Checksum][osx-installer-checksum-3.0.1xx]
[tar.gz][osx-targz-3.0.1xx] - [Checksum][osx-targz-checksum-3.0.1xx] | [![][osx-badge-3.0.100-preview8]][osx-version-3.0.100-preview8]
[Installer][osx-installer-3.0.100-preview8] - [Checksum][osx-installer-checksum-3.0.100-preview8]
[tar.gz][osx-targz-3.0.100-preview8] - [Checksum][osx-targz-checksum-3.0.100-preview8] | [![][osx-badge-2.2.3XX]][osx-version-2.2.3XX]
[Installer][osx-installer-2.2.3XX] - [Checksum][osx-installer-checksum-2.2.3XX]
[tar.gz][osx-targz-2.2.3XX] - [Checksum][osx-targz-checksum-2.2.3XX] |[![][osx-badge-2.2.2XX]][osx-version-2.2.2XX]
[Installer][osx-installer-2.2.2XX] - [Checksum][osx-installer-checksum-2.2.2XX]
[tar.gz][osx-targz-2.2.2XX] - [Checksum][osx-targz-checksum-2.2.2XX] |[![][osx-badge-2.2.1XX]][osx-version-2.2.1XX]
[Installer][osx-installer-2.2.1XX] - [Checksum][osx-installer-checksum-2.2.1XX]
[tar.gz][osx-targz-2.2.1XX] - [Checksum][osx-targz-checksum-2.2.1XX] |[![][osx-badge-2.1.7XX]][osx-version-2.1.7XX]
[Installer][osx-installer-2.1.7XX] - [Checksum][osx-installer-checksum-2.1.7XX]
[tar.gz][osx-targz-2.1.7XX] - [Checksum][osx-targz-checksum-2.1.7XX] | [![][osx-badge-2.1.6XX]][osx-version-2.1.6XX]
[Installer][osx-installer-2.1.6XX] - [Checksum][osx-installer-checksum-2.1.6XX]
[tar.gz][osx-targz-2.1.6XX] - [Checksum][osx-targz-checksum-2.1.6XX] | [![][osx-badge-2.1.5XX]][osx-version-2.1.5XX]
[Installer][osx-installer-2.1.5XX] - [Checksum][osx-installer-checksum-2.1.5XX]
[tar.gz][osx-targz-2.1.5XX] - [Checksum][osx-targz-checksum-2.1.5XX] | -| **Linux x64** | [![][linux-badge-master]][linux-version-master]
[DEB Installer][linux-DEB-installer-master] - [Checksum][linux-DEB-installer-checksum-master]
[RPM Installer][linux-RPM-installer-master] - [Checksum][linux-RPM-installer-checksum-master]
_see installer note below_1
[tar.gz][linux-targz-master] - [Checksum][linux-targz-checksum-master] | [![][linux-badge-3.1.1xx]][linux-version-3.1.1xx]
[DEB Installer][linux-DEB-installer-3.1.1xx] - [Checksum][linux-DEB-installer-checksum-3.1.1xx]
[RPM Installer][linux-RPM-installer-3.1.1xx] - [Checksum][linux-RPM-installer-checksum-3.1.1xx]
_see installer note below_1
[tar.gz][linux-targz-3.1.1xx] - [Checksum][linux-targz-checksum-3.1.1xx] | [![][linux-badge-3.0.1xx]][linux-version-3.0.1xx]
[DEB Installer][linux-DEB-installer-3.0.1xx] - [Checksum][linux-DEB-installer-checksum-3.0.1xx]
[RPM Installer][linux-RPM-installer-3.0.1xx] - [Checksum][linux-RPM-installer-checksum-3.0.1xx]
_see installer note below_1
[tar.gz][linux-targz-3.0.1xx] - [Checksum][linux-targz-checksum-3.0.1xx] | [![][linux-badge-3.0.100-preview8]][linux-version-3.0.100-preview8]
[DEB Installer][linux-DEB-installer-3.0.100-preview8] - [Checksum][linux-DEB-installer-checksum-3.0.100-preview8]
[RPM Installer][linux-RPM-installer-3.0.100-preview8] - [Checksum][linux-RPM-installer-checksum-3.0.100-preview8]
_see installer note below_1
[tar.gz][linux-targz-3.0.100-preview8] - [Checksum][linux-targz-checksum-3.0.100-preview8] | [![][linux-badge-2.2.3xx]][linux-version-2.2.3xx]
[DEB Installer][linux-DEB-installer-2.2.3XX] - [Checksum][linux-DEB-installer-checksum-2.2.3XX]
[RPM Installer][linux-RPM-installer-2.2.3XX] - [Checksum][linux-RPM-installer-checksum-2.2.3XX]
_see installer note below_1
[tar.gz][linux-targz-2.2.3XX] - [Checksum][linux-targz-checksum-2.2.3XX] |[![][linux-badge-2.2.2xx]][linux-version-2.2.2xx]
[DEB Installer][linux-DEB-installer-2.2.2XX] - [Checksum][linux-DEB-installer-checksum-2.2.2XX]
[RPM Installer][linux-RPM-installer-2.2.2XX] - [Checksum][linux-RPM-installer-checksum-2.2.2XX]
_see installer note below_1
[tar.gz][linux-targz-2.2.2XX] - [Checksum][linux-targz-checksum-2.2.2XX] |[![][linux-badge-2.2.1xx]][linux-version-2.2.1xx]
[DEB Installer][linux-DEB-installer-2.2.1XX] - [Checksum][linux-DEB-installer-checksum-2.2.1XX]
[RPM Installer][linux-RPM-installer-2.2.1XX] - [Checksum][linux-RPM-installer-checksum-2.2.1XX]
_see installer note below_1
[tar.gz][linux-targz-2.2.1XX] - [Checksum][linux-targz-checksum-2.2.1XX] |[![][linux-badge-2.1.7XX]][linux-version-2.1.7XX]
[DEB Installer][linux-DEB-installer-2.1.7XX] - [Checksum][linux-DEB-installer-checksum-2.1.7XX]
[RPM Installer][linux-RPM-installer-2.1.7XX] - [Checksum][linux-RPM-installer-checksum-2.1.7XX]
_see installer note below_1
[tar.gz][linux-targz-2.1.7XX] - [Checksum][linux-targz-checksum-2.1.7XX] | [![][linux-badge-2.1.6XX]][linux-version-2.1.6XX]
[DEB Installer][linux-DEB-installer-2.1.6XX] - [Checksum][linux-DEB-installer-checksum-2.1.6XX]
[RPM Installer][linux-RPM-installer-2.1.6XX] - [Checksum][linux-RPM-installer-checksum-2.1.6XX]
_see installer note below_1
[tar.gz][linux-targz-2.1.6XX] - [Checksum][linux-targz-checksum-2.1.6XX] | [![][linux-badge-2.1.5XX]][linux-version-2.1.5XX]
[DEB Installer][linux-DEB-installer-2.1.5XX] - [Checksum][linux-DEB-installer-checksum-2.1.5XX]
[RPM Installer][linux-RPM-installer-2.1.5XX] - [Checksum][linux-RPM-installer-checksum-2.1.5XX]
_see installer note below_1
[tar.gz][linux-targz-2.1.5XX] - [Checksum][linux-targz-checksum-2.1.5XX] | -| **Linux arm** | [![][linux-arm-badge-master]][linux-arm-version-master]
[tar.gz][linux-arm-targz-master] - [Checksum][linux-arm-targz-checksum-master] | [![][linux-arm-badge-3.1.1xx]][linux-arm-version-3.1.1xx]
[tar.gz][linux-arm-targz-3.1.1xx] - [Checksum][linux-arm-targz-checksum-3.1.1xx] | [![][linux-arm-badge-3.0.1xx]][linux-arm-version-3.0.1xx]
[tar.gz][linux-arm-targz-3.0.1xx] - [Checksum][linux-arm-targz-checksum-3.0.1xx] | [![][linux-arm-badge-3.0.100-preview8]][linux-arm-version-3.0.100-preview8]
[tar.gz][linux-arm-targz-3.0.100-preview8] - [Checksum][linux-arm-targz-checksum-3.0.100-preview8] | [![][linux-arm-badge-2.2.3XX]][linux-arm-version-2.2.3XX]
[tar.gz][linux-arm-targz-2.2.3XX] - [Checksum][linux-arm-targz-checksum-2.2.3XX] |[![][linux-arm-badge-2.2.2XX]][linux-arm-version-2.2.2XX]
[tar.gz][linux-arm-targz-2.2.2XX] - [Checksum][linux-arm-targz-checksum-2.2.2XX] |[![][linux-arm-badge-2.2.1XX]][linux-arm-version-2.2.1XX]
[tar.gz][linux-arm-targz-2.2.1XX] - [Checksum][linux-arm-targz-checksum-2.2.1XX] |[![][linux-arm-badge-2.1.7XX]][linux-arm-version-2.1.7XX]
[tar.gz][linux-arm-targz-2.1.7XX] - [Checksum][linux-arm-targz-checksum-2.1.7XX] | [![][linux-arm-badge-2.1.6XX]][linux-arm-version-2.1.6XX]
[tar.gz][linux-arm-targz-2.1.6XX] - [Checksum][linux-arm-targz-checksum-2.1.6XX] | [![][linux-arm-badge-2.1.5XX]][linux-arm-version-2.1.5XX]
[tar.gz][linux-arm-targz-2.1.5XX] - [Checksum][linux-arm-targz-checksum-2.1.5XX] | -| **Linux arm64** | [![][linux-arm64-badge-master]][linux-arm64-version-master]
[tar.gz][linux-arm64-targz-master] - [Checksum][linux-arm64-targz-checksum-master] | [![][linux-arm64-badge-3.1.1xx]][linux-arm64-version-3.1.1xx]
[tar.gz][linux-arm64-targz-3.1.1xx] - [Checksum][linux-arm64-targz-checksum-3.1.1xx] | [![][linux-arm64-badge-3.0.1xx]][linux-arm64-version-3.0.1xx]
[tar.gz][linux-arm64-targz-3.0.1xx] - [Checksum][linux-arm64-targz-checksum-3.0.1xx] | [![][linux-arm64-badge-3.0.100-preview8]][linux-arm64-version-3.0.100-preview8]
[tar.gz][linux-arm64-targz-3.0.100-preview8] - [Checksum][linux-arm64-targz-checksum-3.0.100-preview8] | [![][linux-arm64-badge-2.2.3XX]][linux-arm64-version-2.2.3XX]
[tar.gz][linux-arm64-targz-2.2.3XX] - [Checksum][linux-arm64-targz-checksum-2.2.3XX] |[![][linux-arm64-badge-2.2.2XX]][linux-arm64-version-2.2.2XX]
[tar.gz][linux-arm64-targz-2.2.2XX] - [Checksum][linux-arm64-targz-checksum-2.2.2XX] |[![][linux-arm64-badge-2.2.1XX]][linux-arm64-version-2.2.1XX]
[tar.gz][linux-arm64-targz-2.2.1XX] - [Checksum][linux-arm64-targz-checksum-2.2.1XX] |[![][linux-arm64-badge-2.1.7XX]][linux-arm64-version-2.1.7XX]
[tar.gz][linux-arm64-targz-2.1.7XX] - [Checksum][linux-arm64-targz-checksum-2.1.7XX] | [![][linux-arm64-badge-2.1.6XX]][linux-arm64-version-2.1.6XX]
[tar.gz][linux-arm64-targz-2.1.6XX] - [Checksum][linux-arm64-targz-checksum-2.1.6XX] | [![][linux-arm64-badge-2.1.5XX]][linux-arm64-version-2.1.5XX]
[tar.gz][linux-arm64-targz-2.1.5XX] - [Checksum][linux-arm64-targz-checksum-2.1.5XX] | -| **RHEL 6** | [![][rhel-6-badge-master]][rhel-6-version-master]
[tar.gz][rhel-6-targz-master] - [Checksum][rhel-6-targz-checksum-master] | [![][rhel-6-badge-3.1.1xx]][rhel-6-version-3.1.1xx]
[tar.gz][rhel-6-targz-3.1.1xx] - [Checksum][rhel-6-targz-checksum-3.1.1xx] | [![][rhel-6-badge-3.0.1xx]][rhel-6-version-3.0.1xx]
[tar.gz][rhel-6-targz-3.0.1xx] - [Checksum][rhel-6-targz-checksum-3.0.1xx] | [![][rhel-6-badge-3.0.100-preview8]][rhel-6-version-3.0.100-preview8]
[tar.gz][rhel-6-targz-3.0.100-preview8] - [Checksum][rhel-6-targz-checksum-3.0.100-preview8] | [![][rhel-6-badge-2.2.3XX]][rhel-6-version-2.2.3XX]
[tar.gz][rhel-6-targz-2.2.3XX] - [Checksum][rhel-6-targz-checksum-2.2.3XX] | [![][rhel-6-badge-2.2.2XX]][rhel-6-version-2.2.2XX]
[tar.gz][rhel-6-targz-2.2.2XX] - [Checksum][rhel-6-targz-checksum-2.2.2XX] | [![][rhel-6-badge-2.2.1XX]][rhel-6-version-2.2.1XX]
[tar.gz][rhel-6-targz-2.2.1XX] - [Checksum][rhel-6-targz-checksum-2.2.1XX] | [![][rhel-6-badge-2.1.7XX]][rhel-6-version-2.1.7XX]
[tar.gz][rhel-6-targz-2.1.7XX] - [Checksum][rhel-6-targz-checksum-2.1.7XX] | [![][rhel-6-badge-2.1.6XX]][rhel-6-version-2.1.6XX]
[tar.gz][rhel-6-targz-2.1.6XX] - [Checksum][rhel-6-targz-checksum-2.1.6XX] | [![][rhel-6-badge-2.1.5XX]][rhel-6-version-2.1.5XX]
[tar.gz][rhel-6-targz-2.1.5XX] - [Checksum][rhel-6-targz-checksum-2.1.5XX] | -| **Linux-musl** | [![][linux-musl-badge-master]][linux-musl-version-master]
[tar.gz][linux-musl-targz-master] - [Checksum][linux-musl-targz-checksum-master] | [![][linux-musl-badge-3.1.1xx]][linux-musl-version-3.1.1xx]
[tar.gz][linux-musl-targz-3.1.1xx] - [Checksum][linux-musl-targz-checksum-3.1.1xx] | [![][linux-musl-badge-3.0.1xx]][linux-musl-version-3.0.1xx]
[tar.gz][linux-musl-targz-3.0.1xx] - [Checksum][linux-musl-targz-checksum-3.0.1xx] | [![][linux-musl-badge-3.0.100-preview8]][linux-musl-version-3.0.100-preview8]
[tar.gz][linux-musl-targz-3.0.100-preview8] - [Checksum][linux-musl-targz-checksum-3.0.100-preview8] | [![][linux-musl-badge-2.2.3XX]][linux-musl-version-2.2.3XX]
[tar.gz][linux-musl-targz-2.2.3XX] - [Checksum][linux-musl-targz-checksum-2.2.3XX] |[![][linux-musl-badge-2.2.2XX]][linux-musl-version-2.2.2XX]
[tar.gz][linux-musl-targz-2.2.2XX] - [Checksum][linux-musl-targz-checksum-2.2.2XX] |[![][linux-musl-badge-2.2.1XX]][linux-musl-version-2.2.1XX]
[tar.gz][linux-musl-targz-2.2.1XX] - [Checksum][linux-musl-targz-checksum-2.2.1XX] |[![][linux-musl-badge-2.1.7XX]][linux-musl-version-2.1.7XX]
[tar.gz][linux-musl-targz-2.1.7XX] - [Checksum][linux-musl-targz-checksum-2.1.7XX] | [![][linux-musl-badge-2.1.6XX]][linux-musl-version-2.1.6XX]
[tar.gz][linux-musl-targz-2.1.6XX] - [Checksum][linux-musl-targz-checksum-2.1.6XX] | [![][linux-musl-badge-2.1.5XX]][linux-musl-version-2.1.5XX]
[tar.gz][linux-musl-targz-2.1.5XX] - [Checksum][linux-musl-targz-checksum-2.1.5XX] | -| **Windows arm** | [![][win-arm-badge-master]][win-arm-version-master]
[zip][win-arm-zip-master] - [Checksum][win-arm-zip-checksum-master] | [![][win-arm-badge-3.1.1xx]][win-arm-version-3.1.1xx]
[zip][win-arm-zip-3.1.1xx] - [Checksum][win-arm-zip-checksum-3.1.1xx] | [![][win-arm-badge-3.0.1xx]][win-arm-version-3.0.1xx]
[zip][win-arm-zip-3.0.1xx] - [Checksum][win-arm-zip-checksum-3.0.1xx] | [![][win-arm-badge-3.0.100-preview8]][win-arm-version-3.0.100-preview8]
[zip][win-arm-zip-3.0.100-preview8] - [Checksum][win-arm-zip-checksum-3.0.100-preview8] | [![][win-arm-badge-2.2.3XX]][win-arm-version-2.2.3XX]
[zip][win-arm-zip-2.2.3XX] - [Checksum][win-arm-zip-checksum-2.2.3XX] | [![][win-arm-badge-2.2.2XX]][win-arm-version-2.2.2XX]
[zip][win-arm-zip-2.2.2XX] - [Checksum][win-arm-zip-checksum-2.2.2XX] | [![][win-arm-badge-2.2.1XX]][win-arm-version-2.2.1XX]
[zip][win-arm-zip-2.2.1XX] - [Checksum][win-arm-zip-checksum-2.2.1XX] | **N/A** | **N/A** | **N/A** | -| **FreeBSD x64** | [![][freebsd-x64-badge-master]][freebsd-x64-version-master]
[tar.gz][freebsd-x64-zip-master] - [Checksum][freebsd-x64-zip-checksum-master] | [![][freebsd-x64-badge-3.1.1xx]][freebsd-x64-version-3.1.1xx]
[tar.gz][freebsd-x64-zip-3.1.1xx] - [Checksum][freebsd-x64-zip-checksum-3.1.1xx] | [![][freebsd-x64-badge-3.0.1xx]][freebsd-x64-version-3.0.1xx]
[tar.gz][freebsd-x64-zip-3.0.1xx] - [Checksum][freebsd-x64-zip-checksum-3.0.1xx] | [![][freebsd-x64-badge-3.0.100-preview8]][freebsd-x64-version-3.0.100-preview8]
[tar.gz][freebsd-x64-zip-3.0.100-preview8] - [Checksum][freebsd-x64-zip-checksum-3.0.100-preview8] | **N/A** | **N/A** | **N/A** | **N/A** | **N/A** | **N/A** | +| Platform | Master
(5.0.x Runtime) | Release/3.1.1XX
(3.1.x Runtime) | Release/3.0.1xx
(3.0.x Runtime) | Release/2.2.3XX
(2.2.x Runtime) | Release/2.2.2XX
(2.2.x Runtime) | Release/2.2.1XX
(2.2.x Runtime) | Release/2.1.7XX
(2.1.7 Runtime) | Release/2.1.6XX
(2.1.6 Runtime) | Release/2.1.5XX
(2.1.5 Runtime) | +|:---------|:----------:|:----------:|:----------:|:----------:|:----------:|:----------:|:----------:|:----------:|:----------:| +| **Windows x64** | [![][win-x64-badge-master]][win-x64-version-master]
[Installer][win-x64-installer-master] - [Checksum][win-x64-installer-checksum-master]
[zip][win-x64-zip-master] - [Checksum][win-x64-zip-checksum-master] | [![][win-x64-badge-3.1.1xx]][win-x64-version-3.1.1xx]
[Installer][win-x64-installer-3.1.1xx] - [Checksum][win-x64-installer-checksum-3.1.1xx]
[zip][win-x64-zip-3.1.1xx] - [Checksum][win-x64-zip-checksum-3.1.1xx] | [![][win-x64-badge-3.0.1xx]][win-x64-version-3.0.1xx]
[Installer][win-x64-installer-3.0.1xx] - [Checksum][win-x64-installer-checksum-3.0.1xx]
[zip][win-x64-zip-3.0.1xx] - [Checksum][win-x64-zip-checksum-3.0.1xx] | [![][win-x64-badge-2.2.3XX]][win-x64-version-2.2.3XX]
[Installer][win-x64-installer-2.2.3XX] - [Checksum][win-x64-installer-checksum-2.2.3XX]
[zip][win-x64-zip-2.2.3XX] - [Checksum][win-x64-zip-checksum-2.2.3XX] |[![][win-x64-badge-2.2.2XX]][win-x64-version-2.2.2XX]
[Installer][win-x64-installer-2.2.2XX] - [Checksum][win-x64-installer-checksum-2.2.2XX]
[zip][win-x64-zip-2.2.2XX] - [Checksum][win-x64-zip-checksum-2.2.2XX] |[![][win-x64-badge-2.2.1XX]][win-x64-version-2.2.1XX]
[Installer][win-x64-installer-2.2.1XX] - [Checksum][win-x64-installer-checksum-2.2.1XX]
[zip][win-x64-zip-2.2.1XX] - [Checksum][win-x64-zip-checksum-2.2.1XX] |[![][win-x64-badge-2.1.7XX]][win-x64-version-2.1.7XX]
[Installer][win-x64-installer-2.1.7XX] - [Checksum][win-x64-installer-checksum-2.1.7XX]
[zip][win-x64-zip-2.1.7XX] - [Checksum][win-x64-zip-checksum-2.1.7XX] | [![][win-x64-badge-2.1.6XX]][win-x64-version-2.1.6XX]
[Installer][win-x64-installer-2.1.6XX] - [Checksum][win-x64-installer-checksum-2.1.6XX]
[zip][win-x64-zip-2.1.6XX] - [Checksum][win-x64-zip-checksum-2.1.6XX] | [![][win-x64-badge-2.1.5XX]][win-x64-version-2.1.5XX]
[Installer][win-x64-installer-2.1.5XX] - [Checksum][win-x64-installer-checksum-2.1.5XX]
[zip][win-x64-zip-2.1.5XX] - [Checksum][win-x64-zip-checksum-2.1.5XX] | +| **Windows x86** | [![][win-x86-badge-master]][win-x86-version-master]
[Installer][win-x86-installer-master] - [Checksum][win-x86-installer-checksum-master]
[zip][win-x86-zip-master] - [Checksum][win-x86-zip-checksum-master] | [![][win-x86-badge-3.1.1xx]][win-x86-version-3.1.1xx]
[Installer][win-x86-installer-3.1.1xx] - [Checksum][win-x86-installer-checksum-3.1.1xx]
[zip][win-x86-zip-3.1.1xx] - [Checksum][win-x86-zip-checksum-3.1.1xx] | [![][win-x86-badge-3.0.1xx]][win-x86-version-3.0.1xx]
[Installer][win-x86-installer-3.0.1xx] - [Checksum][win-x86-installer-checksum-3.0.1xx]
[zip][win-x86-zip-3.0.1xx] - [Checksum][win-x86-zip-checksum-3.0.1xx] | [![][win-x86-badge-2.2.3XX]][win-x86-version-2.2.3XX]
[Installer][win-x86-installer-2.2.3XX] - [Checksum][win-x86-installer-checksum-2.2.3XX]
[zip][win-x86-zip-2.2.3XX] - [Checksum][win-x86-zip-checksum-2.2.3XX] |[![][win-x86-badge-2.2.2XX]][win-x86-version-2.2.2XX]
[Installer][win-x86-installer-2.2.2XX] - [Checksum][win-x86-installer-checksum-2.2.2XX]
[zip][win-x86-zip-2.2.2XX] - [Checksum][win-x86-zip-checksum-2.2.2XX] |[![][win-x86-badge-2.2.1XX]][win-x86-version-2.2.1XX]
[Installer][win-x86-installer-2.2.1XX] - [Checksum][win-x86-installer-checksum-2.2.1XX]
[zip][win-x86-zip-2.2.1XX] - [Checksum][win-x86-zip-checksum-2.2.1XX] |[![][win-x86-badge-2.1.7XX]][win-x86-version-2.1.7XX]
[Installer][win-x86-installer-2.1.7XX] - [Checksum][win-x86-installer-checksum-2.1.7XX]
[zip][win-x86-zip-2.1.7XX] - [Checksum][win-x86-zip-checksum-2.1.7XX] | [![][win-x86-badge-2.1.6XX]][win-x86-version-2.1.6XX]
[Installer][win-x86-installer-2.1.6XX] - [Checksum][win-x86-installer-checksum-2.1.6XX]
[zip][win-x86-zip-2.1.6XX] - [Checksum][win-x86-zip-checksum-2.1.6XX] | [![][win-x86-badge-2.1.5XX]][win-x86-version-2.1.5XX]
[Installer][win-x86-installer-2.1.5XX] - [Checksum][win-x86-installer-checksum-2.1.5XX]
[zip][win-x86-zip-2.1.5XX] - [Checksum][win-x86-zip-checksum-2.1.5XX] | +| **macOS** | [![][osx-badge-master]][osx-version-master]
[Installer][osx-installer-master] - [Checksum][osx-installer-checksum-master]
[tar.gz][osx-targz-master] - [Checksum][osx-targz-checksum-master] | [![][osx-badge-3.1.1xx]][osx-version-3.1.1xx]
[Installer][osx-installer-3.1.1xx] - [Checksum][osx-installer-checksum-3.1.1xx]
[tar.gz][osx-targz-3.1.1xx] - [Checksum][osx-targz-checksum-3.1.1xx] | [![][osx-badge-3.0.1xx]][osx-version-3.0.1xx]
[Installer][osx-installer-3.0.1xx] - [Checksum][osx-installer-checksum-3.0.1xx]
[tar.gz][osx-targz-3.0.1xx] - [Checksum][osx-targz-checksum-3.0.1xx] | [![][osx-badge-2.2.3XX]][osx-version-2.2.3XX]
[Installer][osx-installer-2.2.3XX] - [Checksum][osx-installer-checksum-2.2.3XX]
[tar.gz][osx-targz-2.2.3XX] - [Checksum][osx-targz-checksum-2.2.3XX] |[![][osx-badge-2.2.2XX]][osx-version-2.2.2XX]
[Installer][osx-installer-2.2.2XX] - [Checksum][osx-installer-checksum-2.2.2XX]
[tar.gz][osx-targz-2.2.2XX] - [Checksum][osx-targz-checksum-2.2.2XX] |[![][osx-badge-2.2.1XX]][osx-version-2.2.1XX]
[Installer][osx-installer-2.2.1XX] - [Checksum][osx-installer-checksum-2.2.1XX]
[tar.gz][osx-targz-2.2.1XX] - [Checksum][osx-targz-checksum-2.2.1XX] |[![][osx-badge-2.1.7XX]][osx-version-2.1.7XX]
[Installer][osx-installer-2.1.7XX] - [Checksum][osx-installer-checksum-2.1.7XX]
[tar.gz][osx-targz-2.1.7XX] - [Checksum][osx-targz-checksum-2.1.7XX] | [![][osx-badge-2.1.6XX]][osx-version-2.1.6XX]
[Installer][osx-installer-2.1.6XX] - [Checksum][osx-installer-checksum-2.1.6XX]
[tar.gz][osx-targz-2.1.6XX] - [Checksum][osx-targz-checksum-2.1.6XX] | [![][osx-badge-2.1.5XX]][osx-version-2.1.5XX]
[Installer][osx-installer-2.1.5XX] - [Checksum][osx-installer-checksum-2.1.5XX]
[tar.gz][osx-targz-2.1.5XX] - [Checksum][osx-targz-checksum-2.1.5XX] | +| **Linux x64** | [![][linux-badge-master]][linux-version-master]
[DEB Installer][linux-DEB-installer-master] - [Checksum][linux-DEB-installer-checksum-master]
[RPM Installer][linux-RPM-installer-master] - [Checksum][linux-RPM-installer-checksum-master]
_see installer note below_1
[tar.gz][linux-targz-master] - [Checksum][linux-targz-checksum-master] | [![][linux-badge-3.1.1xx]][linux-version-3.1.1xx]
[DEB Installer][linux-DEB-installer-3.1.1xx] - [Checksum][linux-DEB-installer-checksum-3.1.1xx]
[RPM Installer][linux-RPM-installer-3.1.1xx] - [Checksum][linux-RPM-installer-checksum-3.1.1xx]
_see installer note below_1
[tar.gz][linux-targz-3.1.1xx] - [Checksum][linux-targz-checksum-3.1.1xx] | [![][linux-badge-3.0.1xx]][linux-version-3.0.1xx]
[DEB Installer][linux-DEB-installer-3.0.1xx] - [Checksum][linux-DEB-installer-checksum-3.0.1xx]
[RPM Installer][linux-RPM-installer-3.0.1xx] - [Checksum][linux-RPM-installer-checksum-3.0.1xx]
_see installer note below_1
[tar.gz][linux-targz-3.0.1xx] - [Checksum][linux-targz-checksum-3.0.1xx] | [![][linux-badge-2.2.3xx]][linux-version-2.2.3xx]
[DEB Installer][linux-DEB-installer-2.2.3XX] - [Checksum][linux-DEB-installer-checksum-2.2.3XX]
[RPM Installer][linux-RPM-installer-2.2.3XX] - [Checksum][linux-RPM-installer-checksum-2.2.3XX]
_see installer note below_1
[tar.gz][linux-targz-2.2.3XX] - [Checksum][linux-targz-checksum-2.2.3XX] |[![][linux-badge-2.2.2xx]][linux-version-2.2.2xx]
[DEB Installer][linux-DEB-installer-2.2.2XX] - [Checksum][linux-DEB-installer-checksum-2.2.2XX]
[RPM Installer][linux-RPM-installer-2.2.2XX] - [Checksum][linux-RPM-installer-checksum-2.2.2XX]
_see installer note below_1
[tar.gz][linux-targz-2.2.2XX] - [Checksum][linux-targz-checksum-2.2.2XX] |[![][linux-badge-2.2.1xx]][linux-version-2.2.1xx]
[DEB Installer][linux-DEB-installer-2.2.1XX] - [Checksum][linux-DEB-installer-checksum-2.2.1XX]
[RPM Installer][linux-RPM-installer-2.2.1XX] - [Checksum][linux-RPM-installer-checksum-2.2.1XX]
_see installer note below_1
[tar.gz][linux-targz-2.2.1XX] - [Checksum][linux-targz-checksum-2.2.1XX] |[![][linux-badge-2.1.7XX]][linux-version-2.1.7XX]
[DEB Installer][linux-DEB-installer-2.1.7XX] - [Checksum][linux-DEB-installer-checksum-2.1.7XX]
[RPM Installer][linux-RPM-installer-2.1.7XX] - [Checksum][linux-RPM-installer-checksum-2.1.7XX]
_see installer note below_1
[tar.gz][linux-targz-2.1.7XX] - [Checksum][linux-targz-checksum-2.1.7XX] | [![][linux-badge-2.1.6XX]][linux-version-2.1.6XX]
[DEB Installer][linux-DEB-installer-2.1.6XX] - [Checksum][linux-DEB-installer-checksum-2.1.6XX]
[RPM Installer][linux-RPM-installer-2.1.6XX] - [Checksum][linux-RPM-installer-checksum-2.1.6XX]
_see installer note below_1
[tar.gz][linux-targz-2.1.6XX] - [Checksum][linux-targz-checksum-2.1.6XX] | [![][linux-badge-2.1.5XX]][linux-version-2.1.5XX]
[DEB Installer][linux-DEB-installer-2.1.5XX] - [Checksum][linux-DEB-installer-checksum-2.1.5XX]
[RPM Installer][linux-RPM-installer-2.1.5XX] - [Checksum][linux-RPM-installer-checksum-2.1.5XX]
_see installer note below_1
[tar.gz][linux-targz-2.1.5XX] - [Checksum][linux-targz-checksum-2.1.5XX] | +| **Linux arm** | [![][linux-arm-badge-master]][linux-arm-version-master]
[tar.gz][linux-arm-targz-master] - [Checksum][linux-arm-targz-checksum-master] | [![][linux-arm-badge-3.1.1xx]][linux-arm-version-3.1.1xx]
[tar.gz][linux-arm-targz-3.1.1xx] - [Checksum][linux-arm-targz-checksum-3.1.1xx] | [![][linux-arm-badge-3.0.1xx]][linux-arm-version-3.0.1xx]
[tar.gz][linux-arm-targz-3.0.1xx] - [Checksum][linux-arm-targz-checksum-3.0.1xx] | [![][linux-arm-badge-2.2.3XX]][linux-arm-version-2.2.3XX]
[tar.gz][linux-arm-targz-2.2.3XX] - [Checksum][linux-arm-targz-checksum-2.2.3XX] | [![][linux-arm-badge-2.2.2XX]][linux-arm-version-2.2.2XX]
[tar.gz][linux-arm-targz-2.2.2XX] - [Checksum][linux-arm-targz-checksum-2.2.2XX] | [![][linux-arm-badge-2.2.1XX]][linux-arm-version-2.2.1XX]
[tar.gz][linux-arm-targz-2.2.1XX] - [Checksum][linux-arm-targz-checksum-2.2.1XX] | [![][linux-arm-badge-2.1.7XX]][linux-arm-version-2.1.7XX]
[tar.gz][linux-arm-targz-2.1.7XX] - [Checksum][linux-arm-targz-checksum-2.1.7XX] | [![][linux-arm-badge-2.1.6XX]][linux-arm-version-2.1.6XX]
[tar.gz][linux-arm-targz-2.1.6XX] - [Checksum][linux-arm-targz-checksum-2.1.6XX] | [![][linux-arm-badge-2.1.5XX]][linux-arm-version-2.1.5XX]
[tar.gz][linux-arm-targz-2.1.5XX] - [Checksum][linux-arm-targz-checksum-2.1.5XX] | +| **Linux arm64** | [![][linux-arm64-badge-master]][linux-arm64-version-master]
[tar.gz][linux-arm64-targz-master] - [Checksum][linux-arm64-targz-checksum-master] | [![][linux-arm64-badge-3.1.1xx]][linux-arm64-version-3.1.1xx]
[tar.gz][linux-arm64-targz-3.1.1xx] - [Checksum][linux-arm64-targz-checksum-3.1.1xx] | [![][linux-arm64-badge-3.0.1xx]][linux-arm64-version-3.0.1xx]
[tar.gz][linux-arm64-targz-3.0.1xx] - [Checksum][linux-arm64-targz-checksum-3.0.1xx] | [![][linux-arm64-badge-2.2.3XX]][linux-arm64-version-2.2.3XX]
[tar.gz][linux-arm64-targz-2.2.3XX] - [Checksum][linux-arm64-targz-checksum-2.2.3XX] | [![][linux-arm64-badge-2.2.2XX]][linux-arm64-version-2.2.2XX]
[tar.gz][linux-arm64-targz-2.2.2XX] - [Checksum][linux-arm64-targz-checksum-2.2.2XX] | [![][linux-arm64-badge-2.2.1XX]][linux-arm64-version-2.2.1XX]
[tar.gz][linux-arm64-targz-2.2.1XX] - [Checksum][linux-arm64-targz-checksum-2.2.1XX] | [![][linux-arm64-badge-2.1.7XX]][linux-arm64-version-2.1.7XX]
[tar.gz][linux-arm64-targz-2.1.7XX] - [Checksum][linux-arm64-targz-checksum-2.1.7XX] | [![][linux-arm64-badge-2.1.6XX]][linux-arm64-version-2.1.6XX]
[tar.gz][linux-arm64-targz-2.1.6XX] - [Checksum][linux-arm64-targz-checksum-2.1.6XX] | [![][linux-arm64-badge-2.1.5XX]][linux-arm64-version-2.1.5XX]
[tar.gz][linux-arm64-targz-2.1.5XX] - [Checksum][linux-arm64-targz-checksum-2.1.5XX] | +| **RHEL 6** | [![][rhel-6-badge-master]][rhel-6-version-master]
[tar.gz][rhel-6-targz-master] - [Checksum][rhel-6-targz-checksum-master] | [![][rhel-6-badge-3.1.1xx]][rhel-6-version-3.1.1xx]
[tar.gz][rhel-6-targz-3.1.1xx] - [Checksum][rhel-6-targz-checksum-3.1.1xx] | [![][rhel-6-badge-3.0.1xx]][rhel-6-version-3.0.1xx]
[tar.gz][rhel-6-targz-3.0.1xx] - [Checksum][rhel-6-targz-checksum-3.0.1xx] | [![][rhel-6-badge-2.2.3XX]][rhel-6-version-2.2.3XX]
[tar.gz][rhel-6-targz-2.2.3XX] - [Checksum][rhel-6-targz-checksum-2.2.3XX] | [![][rhel-6-badge-2.2.2XX]][rhel-6-version-2.2.2XX]
[tar.gz][rhel-6-targz-2.2.2XX] - [Checksum][rhel-6-targz-checksum-2.2.2XX] | [![][rhel-6-badge-2.2.1XX]][rhel-6-version-2.2.1XX]
[tar.gz][rhel-6-targz-2.2.1XX] - [Checksum][rhel-6-targz-checksum-2.2.1XX] | [![][rhel-6-badge-2.1.7XX]][rhel-6-version-2.1.7XX]
[tar.gz][rhel-6-targz-2.1.7XX] - [Checksum][rhel-6-targz-checksum-2.1.7XX] | [![][rhel-6-badge-2.1.6XX]][rhel-6-version-2.1.6XX]
[tar.gz][rhel-6-targz-2.1.6XX] - [Checksum][rhel-6-targz-checksum-2.1.6XX] | [![][rhel-6-badge-2.1.5XX]][rhel-6-version-2.1.5XX]
[tar.gz][rhel-6-targz-2.1.5XX] - [Checksum][rhel-6-targz-checksum-2.1.5XX] | +| **Linux-musl** | [![][linux-musl-badge-master]][linux-musl-version-master]
[tar.gz][linux-musl-targz-master] - [Checksum][linux-musl-targz-checksum-master] | [![][linux-musl-badge-3.1.1xx]][linux-musl-version-3.1.1xx]
[tar.gz][linux-musl-targz-3.1.1xx] - [Checksum][linux-musl-targz-checksum-3.1.1xx] | [![][linux-musl-badge-3.0.1xx]][linux-musl-version-3.0.1xx]
[tar.gz][linux-musl-targz-3.0.1xx] - [Checksum][linux-musl-targz-checksum-3.0.1xx] | [![][linux-musl-badge-2.2.3XX]][linux-musl-version-2.2.3XX]
[tar.gz][linux-musl-targz-2.2.3XX] - [Checksum][linux-musl-targz-checksum-2.2.3XX] | [![][linux-musl-badge-2.2.2XX]][linux-musl-version-2.2.2XX]
[tar.gz][linux-musl-targz-2.2.2XX] - [Checksum][linux-musl-targz-checksum-2.2.2XX] | [![][linux-musl-badge-2.2.1XX]][linux-musl-version-2.2.1XX]
[tar.gz][linux-musl-targz-2.2.1XX] - [Checksum][linux-musl-targz-checksum-2.2.1XX] | [![][linux-musl-badge-2.1.7XX]][linux-musl-version-2.1.7XX]
[tar.gz][linux-musl-targz-2.1.7XX] - [Checksum][linux-musl-targz-checksum-2.1.7XX] | [![][linux-musl-badge-2.1.6XX]][linux-musl-version-2.1.6XX]
[tar.gz][linux-musl-targz-2.1.6XX] - [Checksum][linux-musl-targz-checksum-2.1.6XX] | [![][linux-musl-badge-2.1.5XX]][linux-musl-version-2.1.5XX]
[tar.gz][linux-musl-targz-2.1.5XX] - [Checksum][linux-musl-targz-checksum-2.1.5XX] | +| **Windows arm** | [![][win-arm-badge-master]][win-arm-version-master]
[zip][win-arm-zip-master] - [Checksum][win-arm-zip-checksum-master] | [![][win-arm-badge-3.1.1xx]][win-arm-version-3.1.1xx]
[zip][win-arm-zip-3.1.1xx] - [Checksum][win-arm-zip-checksum-3.1.1xx] | [![][win-arm-badge-3.0.1xx]][win-arm-version-3.0.1xx]
[zip][win-arm-zip-3.0.1xx] - [Checksum][win-arm-zip-checksum-3.0.1xx] | [![][win-arm-badge-2.2.3XX]][win-arm-version-2.2.3XX]
[zip][win-arm-zip-2.2.3XX] - [Checksum][win-arm-zip-checksum-2.2.3XX] | [![][win-arm-badge-2.2.2XX]][win-arm-version-2.2.2XX]
[zip][win-arm-zip-2.2.2XX] - [Checksum][win-arm-zip-checksum-2.2.2XX] | [![][win-arm-badge-2.2.1XX]][win-arm-version-2.2.1XX]
[zip][win-arm-zip-2.2.1XX] - [Checksum][win-arm-zip-checksum-2.2.1XX] | **N/A** | **N/A** | **N/A** | +| **FreeBSD x64** | [![][freebsd-x64-badge-master]][freebsd-x64-version-master]
[tar.gz][freebsd-x64-zip-master] - [Checksum][freebsd-x64-zip-checksum-master] | [![][freebsd-x64-badge-3.1.1xx]][freebsd-x64-version-3.1.1xx]
[tar.gz][freebsd-x64-zip-3.1.1xx] - [Checksum][freebsd-x64-zip-checksum-3.1.1xx] | [![][freebsd-x64-badge-3.0.1xx]][freebsd-x64-version-3.0.1xx]
[tar.gz][freebsd-x64-zip-3.0.1xx] - [Checksum][freebsd-x64-zip-checksum-3.0.1xx] | **N/A** | **N/A** | **N/A** | **N/A** | **N/A** | **N/A** | | **Constituent Repo Shas** | **N/A** | **N/A** | [Git SHAs][sdk-shas-2.2.1XX] | **N/A** | **N/A** | **N/A** | **N/A** | **N/A** | **N/A** | Reference notes: @@ -92,12 +92,6 @@ Reference notes: [win-x64-zip-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-win-x64.zip [win-x64-zip-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-win-x64.zip.sha -[win-x64-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/win_x64_Release_version_badge.svg -[win-x64-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version -[win-x64-installer-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-x64.exe -[win-x64-installer-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-x64.exe.sha -[win-x64-zip-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-x64.zip -[win-x64-zip-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-x64.zip.sha [win-x64-badge-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/win_x64_Release_version_badge.svg [win-x64-version-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/latest.version @@ -162,12 +156,12 @@ Reference notes: [win-x86-zip-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-win-x86.zip [win-x86-zip-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-win-x86.zip.sha -[win-x86-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/win_x86_Release_version_badge.svg -[win-x86-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version -[win-x86-installer-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-x86.exe -[win-x86-installer-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-x86.exe.sha -[win-x86-zip-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-x86.zip -[win-x86-zip-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-x86.zip.sha +[win-x86-badge-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/win_x86_Release_version_badge.svg +[win-x86-version-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/latest.version +[win-x86-installer-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-win-x86.exe +[win-x86-installer-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-win-x86.exe.sha +[win-x86-zip-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-win-x86.zip +[win-x86-zip-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-win-x86.zip.sha [win-x86-badge-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/win_x86_Release_version_badge.svg [win-x86-version-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/latest.version @@ -232,12 +226,12 @@ Reference notes: [osx-targz-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-osx-x64.tar.gz [osx-targz-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-osx-x64.tar.gz.sha -[osx-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/osx_x64_Release_version_badge.svg -[osx-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version -[osx-installer-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-osx-x64.pkg -[osx-installer-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-osx-x64.pkg.sha -[osx-targz-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-osx-x64.tar.gz -[osx-targz-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-osx-x64.tar.gz.sha +[osx-badge-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/osx_x64_Release_version_badge.svg +[osx-version-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/latest.version +[osx-installer-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-osx-x64.pkg +[osx-installer-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-osx-x64.pkg.sha +[osx-targz-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-osx-x64.tar.gz +[osx-targz-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-osx-x64.tar.gz.sha [osx-badge-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/osx_x64_Release_version_badge.svg [osx-version-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/latest.version @@ -308,14 +302,14 @@ Reference notes: [linux-targz-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-linux-x64.tar.gz [linux-targz-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-linux-x64.tar.gz.sha -[linux-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/linux_x64_Release_version_badge.svg -[linux-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version -[linux-DEB-installer-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-x64.deb -[linux-DEB-installer-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-x64.deb.sha -[linux-RPM-installer-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-x64.rpm -[linux-RPM-installer-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-x64.rpm.sha -[linux-targz-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-linux-x64.tar.gz -[linux-targz-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-linux-x64.tar.gz.sha +[linux-badge-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/linux_x64_Release_version_badge.svg +[linux-version-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/latest.version +[linux-DEB-installer-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-x64.deb +[linux-DEB-installer-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-x64.deb.sha +[linux-RPM-installer-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-x64.rpm +[linux-RPM-installer-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-x64.rpm.sha +[linux-targz-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-linux-x64.tar.gz +[linux-targz-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-linux-x64.tar.gz.sha [linux-badge-2.2.3xx]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/linux_x64_Release_version_badge.svg [linux-version-2.2.3xx]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/latest.version @@ -386,10 +380,10 @@ Reference notes: [linux-arm-targz-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-linux-arm.tar.gz [linux-arm-targz-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-linux-arm.tar.gz.sha -[linux-arm-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/linux_arm_Release_version_badge.svg -[linux-arm-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version -[linux-arm-targz-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-linux-arm.tar.gz -[linux-arm-targz-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-linux-arm.tar.gz.sha +[linux-arm-badge-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/linux_arm_Release_version_badge.svg +[linux-arm-version-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/latest.version +[linux-arm-targz-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-linux-arm.tar.gz +[linux-arm-targz-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-linux-arm.tar.gz.sha [linux-arm-badge-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/linux_arm_Release_version_badge.svg [linux-arm-version-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/latest.version @@ -436,10 +430,10 @@ Reference notes: [linux-arm64-targz-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-linux-arm64.tar.gz [linux-arm64-targz-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-linux-arm64.tar.gz.sha -[linux-arm64-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/linux_arm64_Release_version_badge.svg -[linux-arm64-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version -[linux-arm64-targz-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-linux-arm64.tar.gz -[linux-arm64-targz-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-linux-arm64.tar.gz.sha +[linux-arm64-badge-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/linux_arm64_Release_version_badge.svg +[linux-arm64-version-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/latest.version +[linux-arm64-targz-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-linux-arm64.tar.gz +[linux-arm64-targz-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-linux-arm64.tar.gz.sha [linux-arm64-badge-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/linux_arm64_Release_version_badge.svg [linux-arm64-version-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/latest.version @@ -486,10 +480,10 @@ Reference notes: [rhel-6-targz-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-rhel.6-x64.tar.gz [rhel-6-targz-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-rhel.6-x64.tar.gz.sha -[rhel-6-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/rhel.6_x64_Release_version_badge.svg -[rhel-6-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version -[rhel-6-targz-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-rhel.6-x64.tar.gz -[rhel-6-targz-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-rhel.6-x64.tar.gz.sha +[rhel-6-badge-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/rhel.6_x64_Release_version_badge.svg +[rhel-6-version-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/latest.version +[rhel-6-targz-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-rhel.6-x64.tar.gz +[rhel-6-targz-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-rhel.6-x64.tar.gz.sha [rhel-6-badge-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/rhel.6_x64_Release_version_badge.svg [rhel-6-version-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/latest.version @@ -536,10 +530,10 @@ Reference notes: [linux-musl-targz-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-linux-musl-x64.tar.gz [linux-musl-targz-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-linux-musl-x64.tar.gz.sha -[linux-musl-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/linux_musl_x64_Release_version_badge.svg -[linux-musl-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version -[linux-musl-targz-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-linux-musl-x64.tar.gz -[linux-musl-targz-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-linux-musl-x64.tar.gz.sha +[linux-musl-badge-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/linux_musl_x64_Release_version_badge.svg +[linux-musl-version-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/latest.version +[linux-musl-targz-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-linux-musl-x64.tar.gz +[linux-musl-targz-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-linux-musl-x64.tar.gz.sha [linux-musl-badge-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/linux_musl_x64_Release_version_badge.svg [linux-musl-version-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/latest.version @@ -586,10 +580,10 @@ Reference notes: [win-arm-zip-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-win-arm.zip [win-arm-zip-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-win-arm.zip.sha -[win-arm-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/win_arm_Release_version_badge.svg -[win-arm-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version -[win-arm-zip-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-arm.zip -[win-arm-zip-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-win-arm.zip.sha +[win-arm-badge-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/win_arm_Release_version_badge.svg +[win-arm-version-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/latest.version +[win-arm-zip-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-win-arm.zip +[win-arm-zip-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-win-arm.zip.sha [win-arm-badge-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/win_arm_Release_version_badge.svg [win-arm-version-2.2.3XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/2.2.3xx/latest.version @@ -621,10 +615,10 @@ Reference notes: [freebsd-x64-zip-3.0.1XX]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-freebsd-x64.tar.gz [freebsd-x64-zip-checksum-3.0.1XX]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.1xx/dotnet-sdk-latest-freebsd-x64.tar.gz.sha -[freebsd-x64-badge-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/freebsd_x64_Release_version_badge.svg -[freebsd-x64-version-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/latest.version -[freebsd-x64-zip-3.0.100-preview8]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-freebsd-x64.tar.gz -[freebsd-x64-zip-checksum-3.0.100-preview8]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview8/dotnet-sdk-latest-freebsd-x64.tar.gz.sha +[freebsd-x64-badge-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/freebsd_x64_Release_version_badge.svg +[freebsd-x64-version-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/latest.version +[freebsd-x64-zip-3.0.100-preview9]: https://dotnetcli.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-freebsd-x64.tar.gz +[freebsd-x64-zip-checksum-3.0.100-preview9]: https://dotnetclichecksums.blob.core.windows.net/dotnet/Sdk/release/3.0.100-preview9/dotnet-sdk-latest-freebsd-x64.tar.gz.sha [sdk-shas-2.2.1XX]: https://github.com/dotnet/versions/tree/master/build-info/dotnet/product/cli/release/2.2#built-repositories diff --git a/build.sh b/build.sh index 01aab3a14..7ff647c40 100755 --- a/build.sh +++ b/build.sh @@ -46,7 +46,7 @@ done dockerbuild() { - BUILD_COMMAND=/opt/code/run-build.sh $DIR/eng/dockerrun.sh --non-interactive "$@" + BUILD_COMMAND=$DIR/run-build.sh $DIR/eng/dockerrun.sh --non-interactive "$@" } # Check if we need to build in docker diff --git a/eng/Publishing.props b/eng/Publishing.props index f40cf64be..ed7bbcd19 100644 --- a/eng/Publishing.props +++ b/eng/Publishing.props @@ -9,9 +9,7 @@ $(Product) assets/$(Product) $(DotnetPublishChecksumsBlobFeedUrl) - $(DotNetPublishChecksumsBlobFeedKey) $(DotnetPublishSdkAssetsBlobFeedUrl) - $(DotNetPublishSdkAssetsBlobFeedKey) false true @@ -33,6 +31,9 @@ $(ArtifactsLogDir)AssetManifest\$(AssetManifestFileName).xml $(ArtifactsLogDir)AssetManifest\$(ChecksumsAssetManifestFileName).xml + + $(ArtifactsDir)..\DotnetAssetsTmpDir\$([System.Guid]::NewGuid()) + $(ArtifactsDir)..\ChecksumAssetsTmpDir\$([System.Guid]::NewGuid()) @@ -45,9 +46,7 @@ - - true - + @@ -74,9 +73,10 @@ - + + + + PublishFlatContainer="true" + AssetsTemporaryDirectory="$(DotnetTempWorkingDirectory)" /> - + PublishFlatContainer="true" + AssetsTemporaryDirectory="$(ChecksumTempWorkingDirectory)" /> + + + + + + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 982a554f9..c1536e0cf 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -6,14 +6,40 @@ https://github.com/dotnet/core-setup e5ea848cf4173815a04921132e163e9e8ee17587 + + https://github.com/dotnet/core-setup + e5ea848cf4173815a04921132e163e9e8ee17587 + https://github.com/dotnet/core-setup e5ea848cf4173815a04921132e163e9e8ee17587 - + https://github.com/dotnet/core-setup e5ea848cf4173815a04921132e163e9e8ee17587 + + https://github.com/dotnet/core-setup + e5ea848cf4173815a04921132e163e9e8ee17587 + + + https://github.com/dotnet/core-setup + e5ea848cf4173815a04921132e163e9e8ee17587 + + + https://github.com/dotnet/core-setup + e5ea848cf4173815a04921132e163e9e8ee17587 + + + + https://github.com/dotnet/core-setup + 7d57652f33493fa022125b7f63aad0d70c52d810 + + + + https://github.com/dotnet/corefx + 719c1be452ab63d28a2d4b7cb53d7b38e228a41a + https://github.com/aspnet/AspNetCore 1937c804fa83ee3adddc7e648c610f880c24188e @@ -65,9 +91,9 @@ - + https://github.com/dotnet/arcade - 8eb29ba860a3cfcfe68f9a8256caa7efc1f1aaba + 0e9ffd6464aff37aef2dc41dc2162d258f266e32 diff --git a/eng/Versions.props b/eng/Versions.props index bd6c5c4f8..f11fedb26 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -44,18 +44,21 @@ $(MicrosoftNETSdkPackageVersion) + 3.1.0-preview1.19477.22 3.1.0-preview1.19477.22 $(MicrosoftNETCoreAppPackageVersion) - $(MicrosoftNETCoreAppPackageVersion) - $(MicrosoftNETCoreAppPackageVersion) - $(MicrosoftNETCoreAppPackageVersion) - $(MicrosoftNETCoreAppPackageVersion) - $(MicrosoftNETCoreAppPackageVersion) - $(MicrosoftNETCoreAppPackageVersion) - 2.1.0-preview1.19477.22 - $(MicrosoftNETCoreAppPackageVersion) + 3.1.0-preview1.19477.22 + 3.1.0-preview1.19477.22 + $(MicrosoftNETCoreDotNetHostResolverPackageVersion) + $(MicrosoftNETCoreDotNetAppHostPackageVersion) + 3.1.0-preview1.19477.22 + $(MicrosoftNETCoreAppRefPackageVersion) + $(MicrosoftNETCoreDotNetAppHostPackageVersion) + 2.1.0 + $(MicrosoftNETCoreAppRefPackageVersion) $(MicrosoftAspNetCoreAppRuntimeWinX64PackageVersion) $(MicrosoftAspNetCoreAppRefPackageVersion) + 3.1.0-preview1.19477.22 3.1.0-preview1.19477.22 $(MicrosoftWindowsDesktopAppPackageVersion) @@ -70,7 +73,7 @@ $(AspNetCoreVersion) 4.8.0-rc2.19462.10 - 3.0.0-rc2.19459.11 + 3.0.0 1.6.3 2.0.0-preview8.19373.1 $(MicrosoftDotNetCommonItemTemplates30PackageVersion) diff --git a/eng/build.yml b/eng/build.yml index c47ccad98..07ca10348 100644 --- a/eng/build.yml +++ b/eng/build.yml @@ -14,18 +14,26 @@ parameters: # Job timeout timeoutInMinutes: 180 + # Publish using pipelines + enablePublishUsingPipelines: true + phases: - template: /eng/common/templates/job/job.yml parameters: name: ${{ parameters.agentOs }} ${{ if eq(parameters.agentOs, 'Windows_NT') }}: enableMicrobuild: true + enablePublishBuildArtifacts: true enablePublishBuildAssets: true + enablePublishTestResults: true + enablePublishUsingPipelines: ${{parameters.enablePublishUsingPipelines}} enableTelemetry: true helixRepo: dotnet/core-sdk pool: ${{ parameters.pool }} ${{ if ne(parameters.strategy, '') }}: strategy: ${{ parameters.strategy }} + workspace: + clean: all variables: - _AgentOSName: ${{ parameters.agentOs }} @@ -36,20 +44,22 @@ phases: - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - group: DotNet-Symbol-Server-PATs - group: DotNet-HelixApi-Access + - group: DotNet-Blob-Feed - _DotNetPublishToBlobFeed: true - _PushToVSFeed: true - _SignType: real - _BuildArgs: /p:OfficialBuildId=$(BUILD.BUILDNUMBER) /p:DotNetPublishToBlobFeed=$(_DotNetPublishToBlobFeed) + /p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1) + /p:DotNetPublishBlobFeedUrl=$(PB_PublishBlobFeedUrl) /p:DotnetPublishSdkAssetsBlobFeedUrl=$(_PublishBlobFeedUrl) - /p:DotNetPublishSdkAssetsBlobFeedKey=$(dotnetcli-storage-key) /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat) /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat) /p:PB_PublishType=blob /p:DotnetPublishChecksumsBlobFeedUrl=$(_PublishChecksumsBlobFeedUrl) - /p:DotNetPublishChecksumsBlobFeedKey=$(dotnetclichecksums-storage-key) /p:DotNetSignType=real /p:TeamName=$(_TeamName) + /p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines) steps: - checkout: self @@ -117,7 +127,7 @@ phases: testRunTitle: '$(_AgentOSName)_$(Agent.JobName)' platform: '$(BuildPlatform)' configuration: '$(_BuildConfig)' - condition: not(succeeded()) + condition: ne(variables['TestParameter'], '') - task: CopyFiles@2 displayName: Gather Logs @@ -128,7 +138,7 @@ phases: TestResults/$(_BuildConfig)/**/* TargetFolder: '$(Build.ArtifactStagingDirectory)' continueOnError: true - condition: not(succeeded()) + condition: always() - task: PublishBuildArtifacts@1 displayName: Publish Logs to VSTS @@ -137,4 +147,4 @@ phases: ArtifactName: '$(_AgentOSName)_$(Agent.JobName)_$(Build.BuildNumber)' publishLocation: Container continueOnError: true - condition: not(succeeded()) + condition: always() diff --git a/eng/common/enable-cross-org-publishing.ps1 b/eng/common/enable-cross-org-publishing.ps1 new file mode 100644 index 000000000..eccbf9f1b --- /dev/null +++ b/eng/common/enable-cross-org-publishing.ps1 @@ -0,0 +1,6 @@ +param( + [string] $token +) + +Write-Host "##vso[task.setvariable variable=VSS_NUGET_ACCESSTOKEN]$token" +Write-Host "##vso[task.setvariable variable=VSS_NUGET_URI_PREFIXES]https://dnceng.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/dnceng/;https://devdiv.pkgs.visualstudio.com/;https://pkgs.dev.azure.com/devdiv/" diff --git a/eng/common/sdl/extract-artifact-packages.ps1 b/eng/common/sdl/extract-artifact-packages.ps1 index 1fdbb1432..6e6825013 100644 --- a/eng/common/sdl/extract-artifact-packages.ps1 +++ b/eng/common/sdl/extract-artifact-packages.ps1 @@ -5,6 +5,13 @@ param( $ErrorActionPreference = "Stop" Set-StrictMode -Version 2.0 + +# `tools.ps1` checks $ci to perform some actions. Since the post-build +# scripts don't necessarily execute in the same agent that run the +# build.ps1/sh script this variable isn't automatically set. +$ci = $true +. $PSScriptRoot\..\tools.ps1 + $ExtractPackage = { param( [string] $PackagePath # Full path to a NuGet package diff --git a/eng/common/templates/post-build/channels/netcore-3-tools-validation.yml b/eng/common/templates/post-build/channels/netcore-3-tools-validation.yml new file mode 100644 index 000000000..cdb74031f --- /dev/null +++ b/eng/common/templates/post-build/channels/netcore-3-tools-validation.yml @@ -0,0 +1,95 @@ +parameters: + artifactsPublishingAdditionalParameters: '' + publishInstallersAndChecksums: false + +stages: +- stage: NetCore_3_Tools_Validation_Publish + dependsOn: validate + variables: + - template: ../common-variables.yml + displayName: .NET 3 Tools - Validation Publishing + jobs: + - template: ../setup-maestro-vars.yml + + - job: publish_assets + displayName: Publish Assets + dependsOn: setupMaestroVars + variables: + - group: DotNet-Blob-Feed + - group: AzureDevOps-Artifact-Feeds-Pats + - name: BARBuildId + value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ] + - name: IsStableBuild + value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ] + condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NETCore_3_Tools_Validation_Channel_Id)) + pool: + vmImage: 'windows-2019' + steps: + - task: DownloadBuildArtifacts@0 + displayName: Download Package Artifacts + inputs: + buildType: current + artifactName: PackageArtifacts + + - task: DownloadBuildArtifacts@0 + displayName: Download Blob Artifacts + inputs: + buildType: current + artifactName: BlobArtifacts + + - task: DownloadBuildArtifacts@0 + displayName: Download Asset Manifests + inputs: + buildType: current + artifactName: AssetManifests + + - task: NuGetToolInstaller@1 + displayName: 'Install NuGet.exe' + + # This is necessary whenever we want to publish/restore to an AzDO private feed + - task: NuGetAuthenticate@0 + displayName: 'Authenticate to AzDO Feeds' + + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + + - task: PowerShell@2 + displayName: Publish Assets + inputs: + filePath: eng\common\sdk-task.ps1 + arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet + /p:ArtifactsCategory=$(_DotNetValidationArtifactsCategory) + /p:IsStableBuild=$(IsStableBuild) + /p:IsInternalBuild=$(IsInternalBuild) + /p:RepositoryName=$(Build.Repository.Name) + /p:CommitSha=$(Build.SourceVersion) + /p:NugetPath=$(NuGetExeToolPath) + /p:AzdoTargetFeedPAT='$(dn-bot-dnceng-universal-packages-rw)' + /p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)' + /p:BARBuildId=$(BARBuildId) + /p:MaestroApiEndpoint='$(MaestroApiEndPoint)' + /p:BuildAssetRegistryToken='$(MaestroApiAccessToken)' + /p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/' + /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/' + /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts/' + /p:Configuration=Release + /p:PublishInstallersAndChecksums=${{ parameters.publishInstallersAndChecksums }} + /p:InstallersTargetStaticFeed=$(InstallersBlobFeedUrl) + /p:InstallersAzureAccountKey=$(dotnetcli-storage-key) + /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl) + /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key) + /p:PublishToAzureDevOpsNuGetFeeds=true + /p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' + /p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' + /p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' + /p:AzureDevOpsStaticTransportFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' + /p:AzureDevOpsStaticSymbolsFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-symbols/nuget/v3/index.json' + /p:AzureDevOpsStaticSymbolsFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' + ${{ parameters.artifactsPublishingAdditionalParameters }} + + - template: ../../steps/promote-build.yml + parameters: + ChannelId: ${{ variables.NETCore_3_Tools_Validation_Channel_Id }} diff --git a/eng/common/templates/post-build/channels/netcore-dev-30.yml b/eng/common/templates/post-build/channels/netcore-3-tools.yml similarity index 82% rename from eng/common/templates/post-build/channels/netcore-dev-30.yml rename to eng/common/templates/post-build/channels/netcore-3-tools.yml index 69f1a9013..70eec773e 100644 --- a/eng/common/templates/post-build/channels/netcore-dev-30.yml +++ b/eng/common/templates/post-build/channels/netcore-3-tools.yml @@ -4,18 +4,18 @@ parameters: publishInstallersAndChecksums: false stages: -- stage: NetCore_Dev30_Publish +- stage: NetCore_3_Tools_Publish dependsOn: validate variables: - template: ../common-variables.yml - displayName: .NET Core 3.0 Dev Publishing + displayName: .NET 3 Tools Publishing jobs: - template: ../setup-maestro-vars.yml - job: displayName: Symbol Publishing dependsOn: setupMaestroVars - condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicDevRelease_30_Channel_Id)) + condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_3_Tools_Channel_Id)) variables: - group: DotNet-Symbol-Server-Pats pool: @@ -56,7 +56,7 @@ stages: value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ] - name: IsStableBuild value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ] - condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicDevRelease_30_Channel_Id)) + condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_3_Tools_Channel_Id)) pool: vmImage: 'windows-2019' steps: @@ -85,42 +85,46 @@ stages: - task: NuGetAuthenticate@0 displayName: 'Authenticate to AzDO Feeds' + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + - task: PowerShell@2 displayName: Publish Assets - env: - AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 - arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet + arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet /p:ArtifactsCategory=$(_DotNetArtifactsCategory) /p:IsStableBuild=$(IsStableBuild) /p:IsInternalBuild=$(IsInternalBuild) /p:RepositoryName=$(Build.Repository.Name) /p:CommitSha=$(Build.SourceVersion) /p:NugetPath=$(NuGetExeToolPath) - /p:AzdoTargetFeedPAT='$(dn-bot-dnceng-universal-packages-rw)' - /p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)' - /p:BARBuildId=$(BARBuildId) - /p:MaestroApiEndpoint='$(MaestroApiEndPoint)' - /p:BuildAssetRegistryToken='$(MaestroApiAccessToken)' - /p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/' - /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/' - /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts/' - /p:Configuration=Release + /p:AzdoTargetFeedPAT='$(dn-bot-dnceng-universal-packages-rw)' + /p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)' + /p:BARBuildId=$(BARBuildId) + /p:MaestroApiEndpoint='$(MaestroApiEndPoint)' + /p:BuildAssetRegistryToken='$(MaestroApiAccessToken)' + /p:ManifestsBasePath='$(Build.ArtifactStagingDirectory)/AssetManifests/' + /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/' + /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts/' + /p:Configuration=Release /p:PublishInstallersAndChecksums=${{ parameters.publishInstallersAndChecksums }} /p:InstallersTargetStaticFeed=$(InstallersBlobFeedUrl) /p:InstallersAzureAccountKey=$(dotnetcli-storage-key) /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl) /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key) /p:PublishToAzureDevOpsNuGetFeeds=true - /p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3/nuget/v3/index.json' + /p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' /p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' - /p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3-transport/nuget/v3/index.json' + /p:AzureDevOpsStaticTransportFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' /p:AzureDevOpsStaticTransportFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' - /p:AzureDevOpsStaticSymbolsFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet3-symbols/nuget/v3/index.json' + /p:AzureDevOpsStaticSymbolsFeed='https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools-symbols/nuget/v3/index.json' /p:AzureDevOpsStaticSymbolsFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' ${{ parameters.artifactsPublishingAdditionalParameters }} - template: ../../steps/promote-build.yml parameters: - ChannelId: ${{ variables.PublicDevRelease_30_Channel_Id }} + ChannelId: ${{ variables.NetCore_3_Tools_Channel_Id }} \ No newline at end of file diff --git a/eng/common/templates/post-build/channels/netcore-dev-31.yml b/eng/common/templates/post-build/channels/netcore-dev-31.yml index 720a0ab08..db2125418 100644 --- a/eng/common/templates/post-build/channels/netcore-dev-31.yml +++ b/eng/common/templates/post-build/channels/netcore-dev-31.yml @@ -85,10 +85,14 @@ stages: - task: NuGetAuthenticate@0 displayName: 'Authenticate to AzDO Feeds' + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + - task: PowerShell@2 displayName: Publish Assets - env: - AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet diff --git a/eng/common/templates/post-build/channels/netcore-dev-5.yml b/eng/common/templates/post-build/channels/netcore-dev-5.yml index 9c81e39e9..c4f5a16ac 100644 --- a/eng/common/templates/post-build/channels/netcore-dev-5.yml +++ b/eng/common/templates/post-build/channels/netcore-dev-5.yml @@ -85,10 +85,14 @@ stages: - task: NuGetAuthenticate@0 displayName: 'Authenticate to AzDO Feeds' + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + - task: PowerShell@2 displayName: Publish Assets - env: - AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet diff --git a/eng/common/templates/post-build/channels/netcore-internal-30.yml b/eng/common/templates/post-build/channels/netcore-internal-30.yml index 594a1a9a7..177b38df3 100644 --- a/eng/common/templates/post-build/channels/netcore-internal-30.yml +++ b/eng/common/templates/post-build/channels/netcore-internal-30.yml @@ -84,10 +84,14 @@ stages: - task: NuGetAuthenticate@0 displayName: 'Authenticate to AzDO Feeds' + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + - task: PowerShell@2 displayName: Publish Assets - env: - AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet @@ -107,9 +111,9 @@ stages: /p:Configuration=Release /p:PublishInstallersAndChecksums=true /p:ChecksumsTargetStaticFeed=$(InternalChecksumsBlobFeedUrl) - /p:ChecksumsTargetStaticFeedKey=$(InternalChecksumsBlobFeedKey) + /p:ChecksumsAzureAccountKey=$(InternalChecksumsBlobFeedKey) /p:InstallersTargetStaticFeed=$(InternalInstallersBlobFeedUrl) - /p:InstallersTargetStaticFeedKey=$(InternalInstallersBlobFeedKey) + /p:InstallersAzureAccountKey=$(InternalInstallersBlobFeedKey) /p:PublishToAzureDevOpsNuGetFeeds=true /p:AzureDevOpsStaticShippingFeed='https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3-internal/nuget/v3/index.json' /p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' @@ -121,4 +125,4 @@ stages: - template: ../../steps/promote-build.yml parameters: - ChannelId: ${{ variables.InternalServicing_30_Channel_Id }} \ No newline at end of file + ChannelId: ${{ variables.InternalServicing_30_Channel_Id }} diff --git a/eng/common/templates/post-build/channels/netcore-release-30.yml b/eng/common/templates/post-build/channels/netcore-release-30.yml index 8ba9237ff..16ade0db2 100644 --- a/eng/common/templates/post-build/channels/netcore-release-30.yml +++ b/eng/common/templates/post-build/channels/netcore-release-30.yml @@ -85,10 +85,14 @@ stages: - task: NuGetAuthenticate@0 displayName: 'Authenticate to AzDO Feeds' + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + - task: PowerShell@2 displayName: Publish Assets - env: - AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet diff --git a/eng/common/templates/post-build/channels/netcore-release-31.yml b/eng/common/templates/post-build/channels/netcore-release-31.yml index d8270eada..01d56410c 100644 --- a/eng/common/templates/post-build/channels/netcore-release-31.yml +++ b/eng/common/templates/post-build/channels/netcore-release-31.yml @@ -85,10 +85,14 @@ stages: - task: NuGetAuthenticate@0 displayName: 'Authenticate to AzDO Feeds' + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + - task: PowerShell@2 displayName: Publish Assets - env: - AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet diff --git a/eng/common/templates/post-build/channels/netcore-tools-latest.yml b/eng/common/templates/post-build/channels/netcore-tools-latest.yml index c75d18673..157d2d4b9 100644 --- a/eng/common/templates/post-build/channels/netcore-tools-latest.yml +++ b/eng/common/templates/post-build/channels/netcore-tools-latest.yml @@ -85,10 +85,14 @@ stages: - task: NuGetAuthenticate@0 displayName: 'Authenticate to AzDO Feeds' + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + - task: PowerShell@2 displayName: Publish Assets - env: - AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet diff --git a/eng/common/templates/post-build/channels/public-validation-release.yml b/eng/common/templates/post-build/channels/netcore-tools-validation.yml similarity index 90% rename from eng/common/templates/post-build/channels/public-validation-release.yml rename to eng/common/templates/post-build/channels/netcore-tools-validation.yml index fb2c23d0f..d8447e49a 100644 --- a/eng/common/templates/post-build/channels/public-validation-release.yml +++ b/eng/common/templates/post-build/channels/netcore-tools-validation.yml @@ -21,7 +21,7 @@ stages: value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.BARBuildId'] ] - name: IsStableBuild value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.IsStableBuild'] ] - condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicValidationRelease_30_Channel_Id)) + condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.NetCore_Tools_Validation_Channel_Id)) pool: vmImage: 'windows-2019' steps: @@ -50,10 +50,14 @@ stages: - task: NuGetAuthenticate@0 displayName: 'Authenticate to AzDO Feeds' + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + - task: PowerShell@2 displayName: Publish Assets - env: - AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-universal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet @@ -88,4 +92,4 @@ stages: - template: ../../steps/promote-build.yml parameters: - ChannelId: ${{ variables.PublicValidationRelease_30_Channel_Id }} + ChannelId: ${{ variables.NetCore_Tools_Validation_Channel_Id }} diff --git a/eng/common/templates/post-build/common-variables.yml b/eng/common/templates/post-build/common-variables.yml index adb2a854f..b4eed6f18 100644 --- a/eng/common/templates/post-build/common-variables.yml +++ b/eng/common/templates/post-build/common-variables.yml @@ -3,10 +3,6 @@ variables: - group: DotNet-DotNetCli-Storage - group: DotNet-MSRC-Storage - # .NET Core 3 Dev - - name: PublicDevRelease_30_Channel_Id - value: 3 - # .NET Core 3.1 Dev - name: PublicDevRelease_31_Channel_Id value: 128 @@ -16,13 +12,21 @@ variables: value: 131 # .NET Tools - Validation - - name: PublicValidationRelease_30_Channel_Id + - name: NetCore_Tools_Validation_Channel_Id value: 9 # .NET Tools - Latest - name: NetCore_Tools_Latest_Channel_Id value: 2 + # .NET 3 Tools - Validation + - name: NETCore_3_Tools_Validation_Channel_Id + value: 390 + + # .NET 3 Tools - Latest + - name: NetCore_3_Tools_Channel_Id + value: 344 + # .NET Core 3.0 Internal Servicing - name: InternalServicing_30_Channel_Id value: 184 diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml index 5b9d0a5d9..7ee82d9ff 100644 --- a/eng/common/templates/post-build/post-build.yml +++ b/eng/common/templates/post-build/post-build.yml @@ -101,12 +101,6 @@ stages: artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} -- template: \eng\common\templates\post-build\channels\netcore-dev-30.yml - parameters: - symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} - artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} - publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} - - template: \eng\common\templates\post-build\channels\netcore-dev-31.yml parameters: symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} @@ -119,11 +113,22 @@ stages: artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} -- template: \eng\common\templates\post-build\channels\public-validation-release.yml +- template: \eng\common\templates\post-build\channels\netcore-tools-validation.yml parameters: artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} +- template: \eng\common\templates\post-build\channels\netcore-3-tools-validation.yml + parameters: + artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} + +- template: \eng\common\templates\post-build\channels\netcore-3-tools.yml + parameters: + symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} + artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} + - template: \eng\common\templates\post-build\channels\netcore-release-30.yml parameters: symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index bb5638930..91efea940 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -153,6 +153,16 @@ function InitializeDotNetCli([bool]$install) { # Make Sure that our bootstrapped dotnet cli is available in future steps of the Azure Pipelines build Write-PipelinePrependPath -Path $dotnetRoot + + # Work around issues with Azure Artifacts credential provider + # https://github.com/dotnet/arcade/issues/3932 + if ($ci) { + $env:NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS = 20 + $env:NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS = 20 + Write-PipelineSetVariable -Name 'NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS' -Value '20' + Write-PipelineSetVariable -Name 'NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS' -Value '20' + } + Write-PipelineSetVariable -Name 'DOTNET_MULTILEVEL_LOOKUP' -Value '0' Write-PipelineSetVariable -Name 'DOTNET_SKIP_FIRST_TIME_EXPERIENCE' -Value '1' @@ -365,7 +375,6 @@ function InitializeBuildTool() { Write-PipelineTelemetryError -Category "InitializeToolset" -Message "/global.json must specify 'tools.dotnet'." ExitWithExitCode 1 } - $buildTool = @{ Path = Join-Path $dotnetRoot "dotnet.exe"; Command = "msbuild"; Tool = "dotnet"; Framework = "netcoreapp2.1" } } elseif ($msbuildEngine -eq "vs") { try { @@ -490,6 +499,13 @@ function Stop-Processes() { function MSBuild() { if ($pipelinesLog) { $buildTool = InitializeBuildTool + + # Work around issues with Azure Artifacts credential provider + # https://github.com/dotnet/arcade/issues/3932 + if ($ci -and $buildTool.Tool -eq "dotnet") { + dotnet nuget locals http-cache -c + } + $toolsetBuildProject = InitializeToolset $path = Split-Path -parent $toolsetBuildProject $path = Join-Path $path (Join-Path $buildTool.Framework "Microsoft.DotNet.Arcade.Sdk.dll") diff --git a/eng/common/tools.sh b/eng/common/tools.sh index 94a1edd7d..757d5b9ea 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -152,6 +152,15 @@ function InitializeDotNetCli { # build steps from using anything other than what we've downloaded. Write-PipelinePrependPath -path "$dotnet_root" + # Work around issues with Azure Artifacts credential provider + # https://github.com/dotnet/arcade/issues/3932 + if [[ "$ci" == true ]]; then + export NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS=20 + export NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS=20 + Write-PipelineSetVariable -name "NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS" -value "20" + Write-PipelineSetVariable -name "NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS" -value "20" + fi + Write-PipelineSetVariable -name "DOTNET_MULTILEVEL_LOOKUP" -value "0" Write-PipelineSetVariable -name "DOTNET_SKIP_FIRST_TIME_EXPERIENCE" -value "1" @@ -328,6 +337,13 @@ function MSBuild { if [[ "$pipelines_log" == true ]]; then InitializeBuildTool InitializeToolset + + # Work around issues with Azure Artifacts credential provider + # https://github.com/dotnet/arcade/issues/3932 + if [[ "$ci" == true ]]; then + dotnet nuget locals http-cache -c + fi + local toolset_dir="${_InitializeToolset%/*}" local logger_path="$toolset_dir/$_InitializeBuildToolFramework/Microsoft.DotNet.Arcade.Sdk.dll" args=( "${args[@]}" "-logger:$logger_path" ) diff --git a/eng/configure-toolset.ps1 b/eng/configure-toolset.ps1 new file mode 100644 index 000000000..87375243e --- /dev/null +++ b/eng/configure-toolset.ps1 @@ -0,0 +1,4 @@ +# SdkTests do not currently work with globally installed CLI as they use dotnet-install.ps1 to install more runtimes + +$script:useInstalledDotNetCli = $false + diff --git a/eng/configure-toolset.sh b/eng/configure-toolset.sh new file mode 100644 index 000000000..d890b1b02 --- /dev/null +++ b/eng/configure-toolset.sh @@ -0,0 +1,3 @@ +# SdkTests do not currently work with globally installed CLI as they use dotnet-install.ps1 to install more runtimes + +useInstalledDotNetCli="false" \ No newline at end of file diff --git a/eng/core-sdk-build-env.sh b/eng/core-sdk-build-env.sh new file mode 100644 index 000000000..6b3974e46 --- /dev/null +++ b/eng/core-sdk-build-env.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash +# +# Copyright (c) .NET Foundation and contributors. All rights reserved. +# Licensed under the MIT license. See LICENSE file in the project root for full license information. +# + +SOURCE="${BASH_SOURCE[0]}" +while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink + DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" + SOURCE="$(readlink "$SOURCE")" + [[ "$SOURCE" != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located +done + +REPO_ROOT="$( cd -P "$( dirname "$SOURCE" )/../" && pwd )" + +arcade_partition= + +while [[ $# > 0 ]]; do + opt="$(echo "${1/#--/-}" | awk '{print tolower($0)}')" + case "$opt" in + -partition) + arcade_partition=$2 + shift + ;; + esac + + shift +done + +export ARCADE_PARTITION=$arcade_partition + +if [[ ! -z "$arcade_partition" ]]; then + arcade_partition_suffix="-$arcade_partition" +fi + +export PATH=$REPO_ROOT/.dotnet$arcade_partition_suffix:$PATH +export DOTNET_INSTALL_DIR=$REPO_ROOT/.dotnet$arcade_partition_suffix +export ArtifactsDir=$REPO_ROOT/artifacts$arcade_partition_suffix/ + +export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 +export DOTNET_MULTILEVEL_LOOKUP=0 \ No newline at end of file diff --git a/eng/docker/alpine.3.6/Dockerfile b/eng/docker/alpine.3.6/Dockerfile index 61bd7a5c8..ac6a7264b 100644 --- a/eng/docker/alpine.3.6/Dockerfile +++ b/eng/docker/alpine.3.6/Dockerfile @@ -21,6 +21,7 @@ RUN chmod -R a+rwx /home # Set user to the one we just created USER ${USER_ID} -# Set working directory -WORKDIR /opt/code +# Set working directory +ARG WORK_DIR +WORKDIR ${WORK_DIR} diff --git a/eng/docker/centos/Dockerfile b/eng/docker/centos/Dockerfile index 101c18973..eec66c48c 100644 --- a/eng/docker/centos/Dockerfile +++ b/eng/docker/centos/Dockerfile @@ -21,5 +21,6 @@ RUN chmod -R 755 /usr/bin/sudo # Set user to the one we just created USER ${USER_ID} -# Set working directory -WORKDIR /opt/code +# Set working directory +ARG WORK_DIR +WORKDIR ${WORK_DIR} diff --git a/eng/docker/debian/Dockerfile b/eng/docker/debian/Dockerfile index e8316daed..6511762c8 100644 --- a/eng/docker/debian/Dockerfile +++ b/eng/docker/debian/Dockerfile @@ -27,5 +27,6 @@ RUN chmod -R 755 /usr/lib/sudo # Set user to the one we just created USER ${USER_ID} -# Set working directory -WORKDIR /opt/code +# Set working directory +ARG WORK_DIR +WORKDIR ${WORK_DIR} diff --git a/eng/docker/fedora.23/Dockerfile b/eng/docker/fedora.23/Dockerfile index b8508bde7..0d156e137 100644 --- a/eng/docker/fedora.23/Dockerfile +++ b/eng/docker/fedora.23/Dockerfile @@ -26,5 +26,6 @@ RUN chmod -R a+rwx /home # Set user to the one we just created USER ${USER_ID} -# Set working directory -WORKDIR /opt/code +# Set working directory +ARG WORK_DIR +WORKDIR ${WORK_DIR} diff --git a/eng/docker/fedora.24/Dockerfile b/eng/docker/fedora.24/Dockerfile index bc33dd00c..ff1edb0a0 100644 --- a/eng/docker/fedora.24/Dockerfile +++ b/eng/docker/fedora.24/Dockerfile @@ -25,4 +25,5 @@ RUN chmod -R a+rwx /home USER ${USER_ID} # Set working directory -WORKDIR /opt/code +ARG WORK_DIR +WORKDIR ${WORK_DIR} diff --git a/eng/docker/fedora.27/Dockerfile b/eng/docker/fedora.27/Dockerfile index e0f6e851d..f6eaa8fbd 100644 --- a/eng/docker/fedora.27/Dockerfile +++ b/eng/docker/fedora.27/Dockerfile @@ -29,4 +29,5 @@ RUN chmod -R a+rwx /home USER ${USER_ID} # Set working directory -WORKDIR /opt/code \ No newline at end of file +ARG WORK_DIR +WORKDIR ${WORK_DIR} \ No newline at end of file diff --git a/eng/docker/fedora.28/Dockerfile b/eng/docker/fedora.28/Dockerfile index f910321b6..5e08f7a19 100644 --- a/eng/docker/fedora.28/Dockerfile +++ b/eng/docker/fedora.28/Dockerfile @@ -26,4 +26,5 @@ RUN chmod -R a+rwx /home USER ${USER_ID} # Set working directory -WORKDIR /opt/code \ No newline at end of file +ARG WORK_DIR +WORKDIR ${WORK_DIR} \ No newline at end of file diff --git a/eng/docker/fedora.29/Dockerfile b/eng/docker/fedora.29/Dockerfile index 0d4430378..a58f30b74 100644 --- a/eng/docker/fedora.29/Dockerfile +++ b/eng/docker/fedora.29/Dockerfile @@ -26,4 +26,5 @@ RUN chmod -R a+rwx /home USER ${USER_ID} # Set working directory -WORKDIR /opt/code \ No newline at end of file +ARG WORK_DIR +WORKDIR ${WORK_DIR} \ No newline at end of file diff --git a/eng/docker/opensuse.13.2/Dockerfile b/eng/docker/opensuse.13.2/Dockerfile index c3cb77eb4..bc8ff4617 100644 --- a/eng/docker/opensuse.13.2/Dockerfile +++ b/eng/docker/opensuse.13.2/Dockerfile @@ -21,5 +21,6 @@ RUN chmod -R 755 /usr/lib/sudo # Set user to the one we just created USER ${USER_ID} -# Set working directory -WORKDIR /opt/code +# Set working directory +ARG WORK_DIR +WORKDIR ${WORK_DIR} diff --git a/eng/docker/opensuse.42.1/Dockerfile b/eng/docker/opensuse.42.1/Dockerfile index d175339a4..fee6378a1 100644 --- a/eng/docker/opensuse.42.1/Dockerfile +++ b/eng/docker/opensuse.42.1/Dockerfile @@ -46,5 +46,6 @@ RUN chmod -R 755 /usr/lib/sudo # Set user to the one we just created USER ${USER_ID} -# Set working directory -WORKDIR /opt/code \ No newline at end of file +# Set working directory +ARG WORK_DIR +WORKDIR ${WORK_DIR} \ No newline at end of file diff --git a/eng/docker/opensuse.42.3/Dockerfile b/eng/docker/opensuse.42.3/Dockerfile index b128f8bc9..d92b408e7 100644 --- a/eng/docker/opensuse.42.3/Dockerfile +++ b/eng/docker/opensuse.42.3/Dockerfile @@ -45,5 +45,6 @@ RUN chmod -R 755 /usr/lib/sudo # Set user to the one we just created USER ${USER_ID} -# Set working directory -WORKDIR /opt/code \ No newline at end of file +# Set working directory +ARG WORK_DIR +WORKDIR ${WORK_DIR} \ No newline at end of file diff --git a/eng/docker/rhel.6/Dockerfile b/eng/docker/rhel.6/Dockerfile index 1275f3293..1895a1e30 100644 --- a/eng/docker/rhel.6/Dockerfile +++ b/eng/docker/rhel.6/Dockerfile @@ -26,6 +26,7 @@ USER ${USER_ID} # Set library path to make CURL and ICU libraries that are in /usr/local/lib visible ENV LD_LIBRARY_PATH /usr/local/lib -# Set working directory -WORKDIR /opt/code +# Set working directory +ARG WORK_DIR +WORKDIR ${WORK_DIR} diff --git a/eng/docker/rhel/Dockerfile b/eng/docker/rhel/Dockerfile index ec809ea73..cd3f4f029 100644 --- a/eng/docker/rhel/Dockerfile +++ b/eng/docker/rhel/Dockerfile @@ -19,5 +19,6 @@ RUN chown root:root /usr/bin/sudo && chmod 4755 /usr/bin/sudo # Set user to the one we just created USER ${USER_ID} -# Set working directory -WORKDIR /opt/code +# Set working directory +ARG WORK_DIR +WORKDIR ${WORK_DIR} diff --git a/eng/docker/ubuntu.14.04/Dockerfile b/eng/docker/ubuntu.14.04/Dockerfile index 995a74b3b..7e7cb6bdb 100644 --- a/eng/docker/ubuntu.14.04/Dockerfile +++ b/eng/docker/ubuntu.14.04/Dockerfile @@ -59,5 +59,6 @@ RUN chmod -R 755 /usr/lib/sudo # Set user to the one we just created USER ${USER_ID} -# Set working directory -WORKDIR /opt/code +# Set working directory +ARG WORK_DIR +WORKDIR ${WORK_DIR} diff --git a/eng/docker/ubuntu.16.04/Dockerfile b/eng/docker/ubuntu.16.04/Dockerfile index 093ade8a3..4713a4b23 100644 --- a/eng/docker/ubuntu.16.04/Dockerfile +++ b/eng/docker/ubuntu.16.04/Dockerfile @@ -52,5 +52,6 @@ RUN chmod -R 755 /usr/lib/sudo # Set user to the one we just created USER ${USER_ID} -# Set working directory -WORKDIR /opt/code +# Set working directory +ARG WORK_DIR +WORKDIR ${WORK_DIR} diff --git a/eng/docker/ubuntu.16.10/Dockerfile b/eng/docker/ubuntu.16.10/Dockerfile index dba98ed7b..0497a6fb5 100644 --- a/eng/docker/ubuntu.16.10/Dockerfile +++ b/eng/docker/ubuntu.16.10/Dockerfile @@ -59,5 +59,6 @@ RUN chmod -R 755 /usr/lib/sudo # Set user to the one we just created USER ${USER_ID} -# Set working directory -WORKDIR /opt/code \ No newline at end of file +# Set working directory +ARG WORK_DIR +WORKDIR ${WORK_DIR} \ No newline at end of file diff --git a/eng/docker/ubuntu.18.04/Dockerfile b/eng/docker/ubuntu.18.04/Dockerfile index 8bd7a99f2..39a9c0327 100644 --- a/eng/docker/ubuntu.18.04/Dockerfile +++ b/eng/docker/ubuntu.18.04/Dockerfile @@ -27,5 +27,6 @@ RUN chmod -R 755 /usr/lib/sudo # Set user to the one we just created USER ${USER_ID} -# Set working directory -WORKDIR /opt/code \ No newline at end of file +# Set working directory +ARG WORK_DIR +WORKDIR ${WORK_DIR} \ No newline at end of file diff --git a/eng/dockerrun.ps1 b/eng/dockerrun.ps1 index 48a79ffd9..e3b117258 100644 --- a/eng/dockerrun.ps1 +++ b/eng/dockerrun.ps1 @@ -19,7 +19,7 @@ Write-Host "Additional args: $additionalArgs" $dockerFile = Resolve-Path (Join-Path $RepoRoot "eng\docker\$dockerImageName") -docker build --build-arg USER_ID=1000 -t "$dockerContainerTag" $dockerFile +docker build --build-arg WORK_DIR=$RepoRoot --build-arg USER_ID=1000 -t "$dockerContainerTag" $dockerFile $interactiveFlag = "-i" if ($noninteractive) @@ -31,7 +31,7 @@ if ($noninteractive) docker run $interactiveFlag -t --rm --sig-proxy=true ` --name "$dockerContainerName" ` - -v "${RepoRoot}:/opt/code" ` + -v "${RepoRoot}:${RepoRoot}" ` -e DOTNET_CORESDK_IGNORE_TAR_EXIT_CODE=1 ` -e CHANNEL ` -e DOTNET_BUILD_SKIP_CROSSGEN ` @@ -55,7 +55,6 @@ docker run $interactiveFlag -t --rm --sig-proxy=true ` -e PB_PACKAGEVERSIONPROPSURL ` -e PB_PUBLISHBLOBFEEDURL ` -e EXTERNALRESTORESOURCES ` - -e ARCADE_DOTNET_DIR="/opt/code/artifacts/docker/${dockerImageName}/.dotnet" ` - -e ARCADE_ARTIFACTS_DIR="/opt/code/artifacts/docker/${dockerImageName}/" ` + -e ARCADE_PARTITION="${dockerImageName}" ` $dockerContainerTag ` - /opt/code/run-build.sh @additionalArgs \ No newline at end of file + ${RepoRoot}/run-build.sh @additionalArgs \ No newline at end of file diff --git a/eng/dockerrun.sh b/eng/dockerrun.sh index 1d5cb4618..b42852d87 100755 --- a/eng/dockerrun.sh +++ b/eng/dockerrun.sh @@ -39,7 +39,7 @@ while [[ $# > 0 ]]; do echo "Options:" echo " The path to the Dockerfile to use to create the build container" echo " The name of an existing Dockerfile folder under eng/docker to use as the Dockerfile" - echo " The command to run once inside the container (/opt/code is mapped to the repo root; defaults to nothing, which runs the default shell)" + echo " The command to run once inside the container (repo root is mapped to DOCKER_HOST_SHARE_DIR; defaults to nothing, which runs the default shell)" exit 0 ;; *) @@ -101,7 +101,7 @@ fi # Build the docker container (will be fast if it is already built) echo "Building Docker Container using Dockerfile: $DOCKERFILE" -docker build --build-arg USER_ID=$(id -u) -t $DOTNET_BUILD_CONTAINER_TAG $DOCKERFILE +docker build --build-arg WORK_DIR=$DOCKER_HOST_SHARE_DIR --build-arg USER_ID=$(id -u) -t $DOTNET_BUILD_CONTAINER_TAG $DOCKERFILE # Run the build in the container echo "Launching build in Docker Container" @@ -112,7 +112,7 @@ echo "Using code from: $DOCKER_HOST_SHARE_DIR" # Note: passwords/keys should not be passed in the environment docker run $INTERACTIVE -t --rm --sig-proxy=true \ --name $DOTNET_BUILD_CONTAINER_NAME \ - -v $DOCKER_HOST_SHARE_DIR:/opt/code \ + -v $DOCKER_HOST_SHARE_DIR:$DOCKER_HOST_SHARE_DIR \ -e CHANNEL \ -e DOTNET_BUILD_SKIP_CROSSGEN \ -e PUBLISH_TO_AZURE_BLOB \ diff --git a/global.json b/global.json index 3275aa5ff..0ae3965f1 100644 --- a/global.json +++ b/global.json @@ -1,8 +1,8 @@ { "tools": { - "dotnet": "3.0.100-preview6-012264" + "dotnet": "3.0.100" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19461.7" + "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19474.3" } } diff --git a/src/redist/targets/Branding.targets b/src/redist/targets/Branding.targets index a9acebcfd..08cbf6be8 100644 --- a/src/redist/targets/Branding.targets +++ b/src/redist/targets/Branding.targets @@ -5,12 +5,12 @@ Microsoft .NET Core SDK $(CliBrandingVersion) Microsoft .NET Core Toolset $(CliBrandingVersion) .NET Standard Support for Visual Studio 2015 - Microsoft .NET Core Runtime $(MicrosoftNETCoreAppPackageVersion) - Microsoft .NET Core Targeting Pack $(MicrosoftNETCoreAppPackageVersion) - Microsoft .NET Standard 2.1 Targeting Pack $(MicrosoftNETCoreAppPackageVersion) - Microsoft .NET AppHost Pack $(MicrosoftNETCoreAppPackageVersion) - Microsoft .NET Core Host $(MicrosoftNETCoreAppPackageVersion) - Microsoft .NET Core Host FX Resolver $(MicrosoftNETCoreAppPackageVersion) + Microsoft .NET Core Runtime $(MicrosoftNETCoreAppRuntimewinx64PackageVersion) + Microsoft .NET Core Targeting Pack $(MicrosoftNETCoreAppRefPackageVersion) + Microsoft .NET Standard 2.1 Targeting Pack $(NETStandardLibraryRefPackageVersion) + Microsoft .NET AppHost Pack $(MicrosoftNETCoreDotNetAppHostPackageVersion) + Microsoft .NET Core Host $(MicrosoftNETCoreDotNetAppHostPackageVersion) + Microsoft .NET Core Host FX Resolver $(MicrosoftNETCoreDotNetAppHostPackageVersion) Microsoft.NETCore.App $(SharedFrameworkName) Microsoft .NET Core 3.1 Templates $(CliBrandingVersion) diff --git a/src/redist/targets/BundledTemplates.targets b/src/redist/targets/BundledTemplates.targets index 5c5c545ca..5a122dd61 100644 --- a/src/redist/targets/BundledTemplates.targets +++ b/src/redist/targets/BundledTemplates.targets @@ -115,7 +115,33 @@ - + + + + + + + + + + + + diff --git a/src/redist/targets/Crossgen.targets b/src/redist/targets/Crossgen.targets index 428e3c261..3f9abbe7b 100644 --- a/src/redist/targets/Crossgen.targets +++ b/src/redist/targets/Crossgen.targets @@ -14,7 +14,7 @@ x86_arm x64_arm $(NuGetPackageRoot)/$(RuntimeNETCoreAppPackageName)/$(MicrosoftNETCoreAppPackageVersion)/runtimes/$(LibCLRJitRid)/native/$(DynamicLibPrefix)clrjit$(DynamicLibExtension) - $(RedistLayoutPath)shared/$(SharedFrameworkName)/$(MicrosoftNETCoreAppPackageVersion) + $(RedistLayoutPath)shared/$(SharedFrameworkName)/$(MicrosoftNETCoreAppRuntimewinx64PackageVersion) * x86 diff --git a/src/redist/targets/GenerateBundledVersions.targets b/src/redist/targets/GenerateBundledVersions.targets index 278a1250c..e6966995c 100644 --- a/src/redist/targets/GenerateBundledVersions.targets +++ b/src/redist/targets/GenerateBundledVersions.targets @@ -26,23 +26,23 @@ Text="Failed to determine the Microsoft.NETCore.Platforms version pulled in Microsoft.NETCore.App" /> - <_NETCoreAppPackageVersion>$(MicrosoftNETCoreAppPackageVersion) + <_NETCoreAppPackageVersion>$(MicrosoftNETCoreAppRuntimewinx64PackageVersion) <_NETStandardLibraryPackageVersion>@(_NETStandardLibraryPackageVersions->Distinct()) <_NETCorePlatformsPackageVersion>@(_NETCorePlatformsPackageVersions->Distinct()) - <_NETCoreApp30PackageVersion>3.0.0-rc1-19456-20 + <_NETCoreApp30PackageVersion>3.0.0 <_NETCoreApp30TargetingPackVersion>$(_NETCoreApp30PackageVersion) <_MicrosoftWindowsDesktop30PackageVersion>$(_NETCoreApp30PackageVersion) <_MicrosoftWindowsDesktop30TargetingPackVersion>$(_NETCoreApp30TargetingPackVersion) - <_MicrosoftAspNetCoreApp30PackageVersion>3.0.0-rc2.19461.12 + <_MicrosoftAspNetCoreApp30PackageVersion>3.0.0 <_AspNet30TargetingPackVersion>$(_MicrosoftAspNetCoreApp30PackageVersion) <_NETCoreAppTargetFrameworkVersion>$(_NETCoreAppPackageVersion.Split('.')[0]).$(_NETCoreAppPackageVersion.Split('.')[1]) <_NETStandardTargetFrameworkVersion>$(_NETStandardLibraryPackageVersion.Split('.')[0]).$(_NETStandardLibraryPackageVersion.Split('.')[1]) - <_NETCoreSdkIsPreview Condition=" '$(DropSuffix)' != 'true' ">true + true + $(MicrosoftAspNetCoreDeveloperCertificatesXPlatPackageVersion) + + $(RedistLayoutPath)sdk\$(SdkVersion)\ @@ -36,9 +43,9 @@ x86 dotnet-host$(InstallerStartSuffix)-$(SharedHostVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) dotnet-hostfxr$(InstallerStartSuffix)-$(HostFxrVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) - dotnet-runtime$(InstallerStartSuffix)-$(MicrosoftNETCoreAppPackageVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) + dotnet-runtime$(InstallerStartSuffix)-$(MicrosoftNETCoreAppRuntimewinx64PackageVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) dotnet-runtime-deps-$(SharedHostVersion)-$(RuntimeDepsInstallerFileRid)$(InstallerExtension) - windowsdesktop-runtime-$(MicrosoftWindowsDesktopPackageVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) + windowsdesktop-runtime-$(MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) dotnet-targeting-pack-$(NetCoreAppTargetingPackVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) dotnet-apphost-pack-$(NetCoreAppHostPackVersion)-$(SharedFrameworkInstallerFileRid)$(InstallerExtension) dotnet-apphost-pack-$(NetCoreAppHostPackVersion)-$(SharedFrameworkInstallerFileRid)_$(AlternateArchitecture)$(InstallerExtension) @@ -52,10 +59,10 @@ $(CoreSetupRid) $(ProductMonikerRid) linux-$(Architecture) - dotnet-runtime-$(MicrosoftNETCoreAppPackageVersion)-$(SharedFrameworkRid)$(ArchiveExtension) - windowsdesktop-runtime-$(MicrosoftWindowsDesktopPackageVersion)-$(SharedFrameworkRid)$(ArchiveExtension) + dotnet-runtime-$(MicrosoftNETCoreAppRuntimewinx64PackageVersion)-$(SharedFrameworkRid)$(ArchiveExtension) + windowsdesktop-runtime-$(MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion)-$(SharedFrameworkRid)$(ArchiveExtension) - $(SharedFrameworkRid) + $(SharedFrameworkRid) linux-x64 $(AspNetCoreSharedFxInstallerRid) x64 @@ -77,7 +84,7 @@ $(CoreSetupBlobRootUrl)Runtime/ $(CoreSetupBlobRootUrl)aspnetcore/Runtime/ $(CoreSetupRootUrl) - $(IntermediateDirectory)/coreSetupDownload/$(MicrosoftNETCoreAppPackageVersion) + $(IntermediateDirectory)/coreSetupDownload/$(MicrosoftNETCoreAppRuntimewinx64PackageVersion) $(CoreSetupDownloadDirectory)/combinedSharedHostAndFrameworkArchive$(ArchiveExtension) @@ -89,7 +96,7 @@ - $(CoreSetupRootUrl)$(MicrosoftNETCoreAppPackageVersion) + $(CoreSetupRootUrl)$(MicrosoftNETCoreAppRuntimewinx64PackageVersion) $(CombinedFrameworkHostArchiveFileName) $(CoreSetupBlobAccessTokenParam) @@ -146,14 +153,14 @@ - $(CoreSetupRootUrl)$(MicrosoftNETCoreAppPackageVersion) + $(CoreSetupRootUrl)$(MicrosoftNETCoreAppRuntimewinx64PackageVersion) $(DownloadedRuntimeDepsInstallerFileName) $(CoreSetupBlobAccessTokenParam) - $(CoreSetupRootUrl)$(MicrosoftNETCoreAppPackageVersion) + $(CoreSetupRootUrl)$(MicrosoftNETCoreAppRuntimewinx64PackageVersion) $(DownloadedSharedFrameworkInstallerFileName) $(CoreSetupBlobAccessTokenParam) @@ -181,14 +188,15 @@ - $(CoreSetupRootUrl)$(MicrosoftNETCoreAppPackageVersion) + + $(CoreSetupRootUrl)3.0.0 $(DownloadedNetStandardTargetingPackInstallerFileName) $(CoreSetupBlobAccessTokenParam) - $(CoreSetupRootUrl)$(MicrosoftNETCoreAppPackageVersion) + $(CoreSetupRootUrl)$(MicrosoftNETCoreAppRuntimewinx64PackageVersion) $(DownloadedNetCoreAppHostPackInstallerFileName) $(CoreSetupBlobAccessTokenParam) @@ -231,7 +239,7 @@ - $(AspNetCoreSharedFxRootUrl)$(AspNetCoreVersion) + $(AspNetCoreSharedFxRootUrl)$(AspNetCoreBlobDirectory) $(AspNetCoreSharedFxArchiveFileName) $(CoreSetupBlobAccessTokenParam) @@ -241,7 +249,7 @@ https://github.com/aspnet/AspNetCore/issues/8806 --> - $(AspNetCoreSharedFxRootUrl)$(AspNetCoreVersion) + $(AspNetCoreSharedFxRootUrl)$(AspNetCoreBlobDirectory) $(AspNetTargetingPackArchiveFileName) $(CoreSetupBlobAccessTokenParam) @@ -249,35 +257,35 @@ - $(AspNetCoreSharedFxRootUrl)$(AspNetTargetingPackVersion) + $(AspNetCoreSharedFxRootUrl)$(AspNetCoreBlobDirectory) $(DownloadedAspNetTargetingPackInstallerFileName) $(CoreSetupBlobAccessTokenParam) - $(AspNetCoreSharedFxRootUrl)$(AspNetCoreVersion) + $(AspNetCoreSharedFxRootUrl)$(AspNetCoreBlobDirectory) $(DownloadedAspNetCoreSharedFxInstallerFileName) $(CoreSetupBlobAccessTokenParam) - $(AspNetCoreSharedFxRootUrl)$(AspNetCoreVersion) + $(AspNetCoreSharedFxRootUrl)$(AspNetCoreBlobDirectory) $(DownloadedAspNetCoreSharedFxWixLibFileName) $(CoreSetupBlobAccessTokenParam) - $(AspNetCoreSharedFxRootUrl)$(AspNetCoreVersion) + $(AspNetCoreSharedFxRootUrl)$(AspNetCoreBlobDirectory) $(DownloadedAspNetCoreV2ModuleInstallerFileName) $(CoreSetupBlobAccessTokenParam) - $(AspNetCoreSharedFxRootUrl)$(AspNetCoreVersion) + $(AspNetCoreSharedFxRootUrl)$(AspNetCoreBlobDirectory) $(AspNetCoreSharedFxBaseRuntimeVersionFileName) $(CoreSetupBlobAccessTokenParam) @@ -298,14 +306,14 @@ - $(WinFormsAndWpfSharedFxRootUrl)$(MicrosoftWindowsDesktopPackageVersion) + $(WinFormsAndWpfSharedFxRootUrl)$(MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion) $(WinFormsAndWpfSharedFxArchiveFileName) $(CoreSetupBlobAccessTokenParam) - $(WinFormsAndWpfSharedFxRootUrl)$(MicrosoftWindowsDesktopPackageVersion) + $(WinFormsAndWpfSharedFxRootUrl)$(MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion) $(DownloadedWinFormsAndWpfSharedFrameworkInstallerFileName) $(CoreSetupBlobAccessTokenParam) @@ -397,7 +405,7 @@ "version": ".*" - "version": "$(MicrosoftNETCoreAppPackageVersion)" + "version": "$(MicrosoftNETCoreAppRuntimewinx64PackageVersion)" diff --git a/src/redist/targets/GenerateMSIs.targets b/src/redist/targets/GenerateMSIs.targets index e7ba57667..d8d3fed72 100644 --- a/src/redist/targets/GenerateMSIs.targets +++ b/src/redist/targets/GenerateMSIs.targets @@ -265,11 +265,11 @@ '$(MsiVersion)' ^ '$(SDKBundleVersion)' ^ '$(NugetVersion)' ^ - '$(MicrosoftWindowsDesktopPackageVersion)' ^ + '$(MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion)' ^ '$(CombinedFrameworkSDKHostInstallerUpgradeCode)' ^ '$(SdkDependencyKeyName)' ^ '$(Architecture)' ^ - '$(MicrosoftNETCoreAppPackageVersion)' ^ + '$(MicrosoftNETCoreAppRuntimewinx64PackageVersion)' ^ '$(AspNetCoreVersion)' ^ '$(CliProductBandVersion)' ^ -InformationAction Continue " /> diff --git a/src/redist/targets/GeneratePKG.targets b/src/redist/targets/GeneratePKG.targets index 8f1cf9d65..6c88d2edb 100644 --- a/src/redist/targets/GeneratePKG.targets +++ b/src/redist/targets/GeneratePKG.targets @@ -94,7 +94,7 @@ $(SdkVersion) - $(MicrosoftNETCoreAppPackageVersion) + $(MicrosoftNETCoreAppRuntimewinx64PackageVersion) $(AspNetCoreVersion) diff --git a/src/redist/targets/LinuxNativeInstallerDependencyVersions.targets b/src/redist/targets/LinuxNativeInstallerDependencyVersions.targets index 41858080c..324bcdc37 100644 --- a/src/redist/targets/LinuxNativeInstallerDependencyVersions.targets +++ b/src/redist/targets/LinuxNativeInstallerDependencyVersions.targets @@ -2,25 +2,25 @@ - $([MSBuild]::Add($(MicrosoftNETCoreAppPackageVersion.IndexOf('.')), 1)) - $(MicrosoftNETCoreAppPackageVersion.IndexOf('.', $(MicrosoftNETCoreAppPatchSeparatorIndex))) - $(MicrosoftNETCoreAppPackageVersion.Substring(0, $(MicrosoftNETCoreAppPatchSeparatorIndex))) + $([MSBuild]::Add($(MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion.IndexOf('.')), 1)) + $(MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion.IndexOf('.', $(MicrosoftNETCoreAppPatchSeparatorIndex))) + $(MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion.Substring(0, $(MicrosoftNETCoreAppPatchSeparatorIndex))) - $(MicrosoftNETCoreAppPackageVersion.IndexOf('-')) - $(MicrosoftNETCoreAppPackageVersion) - $(MicrosoftNETCoreAppPackageVersion.Substring(0, $(MicrosoftNETCoreAppVersionPreReleaseSeparator))) + $(MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion.IndexOf('-')) + $(MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion) + $(MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion.Substring(0, $(MicrosoftNETCoreAppVersionPreReleaseSeparator))) $([MSBuild]::Add($(MicrosoftNETCoreAppVersionPreReleaseSeparator), 1)) - $(MicrosoftNETCoreAppPackageVersion.Substring($(MicrosoftNETCoreAppVersionPreReleaseSeparatorStartIndex))) - $(MicrosoftNETCoreAppMajorMinorPatchVersion) - $(MicrosoftNETCoreAppMajorMinorPatchVersion)~$(MicrosoftNETCoreVersionSuffix) + $(MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion.Substring($(MicrosoftNETCoreAppVersionPreReleaseSeparatorStartIndex))) + $(MicrosoftNETCoreAppMajorMinorPatchVersion) + $(MicrosoftNETCoreAppMajorMinorPatchVersion)~$(MicrosoftNETCoreVersionSuffix) $(NETStandardLibraryRefPackageVersion.IndexOf('-')) $(NETStandardLibraryRefPackageVersion) $(NETStandardLibraryRefPackageVersion.Substring(0, $(NetStandardTargetingPackVersionPreReleaseSeparator))) $([MSBuild]::Add($(NetStandardTargetingPackVersionPreReleaseSeparator), 1)) $(NETStandardLibraryRefPackageVersion.Substring($(NetStandardTargetingPackVersionPreReleaseSeparatorStartIndex))) - $(NetStandardTargetingPackMajorMinorPatchVersion) - $(NetStandardTargetingPackMajorMinorPatchVersion)~$(NetStandardTargetingPackVersionSuffix) + $(NetStandardTargetingPackMajorMinorPatchVersion) + $(NetStandardTargetingPackMajorMinorPatchVersion)~$(NetStandardTargetingPackVersionSuffix) $([MSBuild]::Add($(AspNetCoreVersion.IndexOf('.')), 1)) $(AspNetCoreVersion.IndexOf('.', $(AspNetCoreVersionPatchSeparatorIndex))) @@ -31,8 +31,8 @@ $(AspNetCoreVersion.Substring(0, $(AspNetCoreVersionPreReleaseSeparator))) $([MSBuild]::Add($(AspNetCoreVersionPreReleaseSeparator), 1)) $(AspNetCoreVersion.Substring($(AspNetCoreVersionPreReleaseSeparatorStartIndex))) - $(AspNetCoreMajorMinorPatchVersion) - $(AspNetCoreMajorMinorPatchVersion)~$(AspNetCoreVersionSuffix) + $(AspNetCoreMajorMinorPatchVersion) + $(AspNetCoreMajorMinorPatchVersion)~$(AspNetCoreVersionSuffix) $([MSBuild]::Add($(HostFxrVersion.IndexOf('.')), 1)) $(HostFxrVersion.IndexOf('.', $(HostFxrVersionPatchSeparatorIndex))) diff --git a/src/redist/targets/Versions.targets b/src/redist/targets/Versions.targets index cb5b34976..e174f99df 100644 --- a/src/redist/targets/Versions.targets +++ b/src/redist/targets/Versions.targets @@ -5,6 +5,10 @@ 1 00 preview1 + + false diff --git a/src/redist/targets/packaging/windows/clisdk/LCID/1028/bundle.wxl b/src/redist/targets/packaging/windows/clisdk/LCID/1028/bundle.wxl index 94e4d025b..b0a8a414f 100644 --- a/src/redist/targets/packaging/windows/clisdk/LCID/1028/bundle.wxl +++ b/src/redist/targets/packaging/windows/clisdk/LCID/1028/bundle.wxl @@ -51,9 +51,9 @@ 下列項目已安裝在: '[DOTNETHOME]' • .NET Core SDK [DOTNETSDKVERSION] - • .NET Core 執行階段 [DOTNETRUNTIMEVERSION] - • ASP.NET Core 執行階段 [ASPNETCOREVERSION] - • .NET Core Windows Desktop 執行階段 [WINFORMSANDWPFVERSION] + • .NET Core Runtime [DOTNETRUNTIMEVERSION] + • ASP.NET Core Runtime [ASPNETCOREVERSION] + • .NET Core Windows Desktop Runtime [WINFORMSANDWPFVERSION] 此產品會收集使用方式資料 • 如需詳細資訊或退出,請前往 https://aka.ms/dotnet-cli-telemetry diff --git a/src/redist/targets/packaging/windows/clisdk/LCID/1046/bundle.wxl b/src/redist/targets/packaging/windows/clisdk/LCID/1046/bundle.wxl index 5960557c9..d5778532a 100644 --- a/src/redist/targets/packaging/windows/clisdk/LCID/1046/bundle.wxl +++ b/src/redist/targets/packaging/windows/clisdk/LCID/1046/bundle.wxl @@ -1,80 +1,80 @@ - - - Instalador do [WixBundleName] - [BUNDLEMONIKER] - Tem certeza de que deseja cancelar? - Versão anterior - Ajuda de Instalação - /install | /repair | /uninstall | /layout [\[]"directory"[\]] – instala, repara, desinstala - ou cria uma cópia local completa do pacote no diretório. '/install' é o padrão - -/passive | /quiet – exibe a interface do usuário mínima sem nenhum prompt ou não exibe nenhuma interface do usuário e - nenhum prompt. Por padrão, a interface do usuário e todos os prompts são exibidos. - -/norestart – suprime qualquer tentativa de reiniciar. Por padrão, a interface do usuário perguntará antes de reiniciar. -/log [\[]"log.txt"[\]] – registra em um arquivo específico. Por padrão, um arquivo de log é criado em %TEMP%. - &Fechar - &Concordo com os termos e condições da licença - &Opções - &Instalar - &Fechar - Progresso da Instalação - Processando: - Inicializando... - &Cancelar - Modificar Instalação - &Reparar - &Desinstalar - &Fechar - Reparação Concluída com Êxito - Desinstalação Concluída com Êxito - Instalação com Êxito - &Iniciar - É necessário reiniciar o computador para concluir a instalação do software. - &Reiniciar - &Fechar - Falha na Instalação - Falha na Instalação - Falha na Desinstalação - Falha na Reparação - Um ou mais problemas causaram falha na instalação. Corrija-os e tente instalar novamente. Para obter mais informações, consulte o <a href="#">arquivo de log</a>. - Você deve reiniciar seu computador para concluir a reversão do software. - &Reiniciar - &Fechar - Arquivos em Uso - Os aplicativos a seguir estão usando arquivos que precisam ser atualizados: - Feche os &aplicativos e tente reiniciá-los. - &Não feche os aplicativos. Será necessária uma reinicialização. - &OK - &Cancelar - A instalação foi bem-sucedida. - -O seguinte foi instalado em: '[DOTNETHOME]' - • SDK do .NET Core [DOTNETSDKVERSION] - • Tempo de Execução do .NET Core [DOTNETRUNTIMEVERSION] - • Tempo de Execução do ASP.NET Core [ASPNETCOREVERSION] - • Tempo de Execução da Área de Trabalho do Windows do .NET Core [WINFORMSANDWPFVERSION] - -Este produto coleta dados de uso - • Para obter mais informações e recusar, acesse https://aka.ms/dotnet-cli-telemetry - -Recursos - • Documentação do .NET Core: https://aka.ms/dotnet-docs - • Documentação do SDK: https://aka.ms/dotnet-sdk-docs - • Notas sobre a Versão: https://aka.ms/netcore3releasenotes - • Tutoriais: https://aka.ms/dotnet-tutorials - SDK do .NET Core - - O .NET Core é um software livre, multiplataforma e com suporte da Microsoft. Você pode usá-lo para criar seu próximo aplicativo, com C#, F# ou VB. Esperamos que você goste! - Saiba mais sobre o .NET Core - Recursos - <A HREF="https://aka.ms/dotnet-docs">Documentação Principal</A> - <A HREF="https://aka.ms/dotnet-cli-docs">Documentação do SDK</A> - <A HREF="https://aka.ms/dev-privacy">Política de Privacidade</A> - <A HREF="https://go.microsoft.com/fwlink/?LinkId=329770">Termos de licença da Biblioteca do .NET</A> - Nota de instalação - Um comando será executado durante o processo de instalação que melhorará a velocidade de restauração do projeto e habilitará o acesso offline. Isso levará até um minuto para ser concluído. - - Se você planeja usar o .NET Core 3.0 com o Visual Studio, o Visual Studio 2019 ou mais recente será necessário. <A HREF="https://go.microsoft.com/fwlink/?linkid=866799">Saiba mais</A>. - - + + + Instalador do [WixBundleName] + [BUNDLEMONIKER] + Tem certeza de que deseja cancelar? + Versão anterior + Ajuda de Instalação + /install | /repair | /uninstall | /layout [\[]"directory"[\]] – instala, repara, desinstala + ou cria uma cópia local completa do pacote no diretório. '/install' é o padrão + +/passive | /quiet – exibe a interface do usuário mínima sem nenhum prompt ou não exibe nenhuma interface do usuário e + nenhum prompt. Por padrão, a interface do usuário e todos os prompts são exibidos. + +/norestart – suprime qualquer tentativa de reiniciar. Por padrão, a interface do usuário perguntará antes de reiniciar. +/log [\[]"log.txt"[\]] – registra em um arquivo específico. Por padrão, um arquivo de log é criado em %TEMP%. + &Fechar + &Concordo com os termos e condições da licença + &Opções + &Instalar + &Fechar + Progresso da Instalação + Processando: + Inicializando... + &Cancelar + Modificar Instalação + &Reparar + &Desinstalar + &Fechar + Reparação Concluída com Êxito + Desinstalação Concluída com Êxito + Instalação com Êxito + &Iniciar + É necessário reiniciar o computador para concluir a instalação do software. + &Reiniciar + &Fechar + Falha na Instalação + Falha na Instalação + Falha na Desinstalação + Falha na Reparação + Um ou mais problemas causaram falha na instalação. Corrija-os e tente instalar novamente. Para obter mais informações, consulte o <a href="#">arquivo de log</a>. + Você deve reiniciar seu computador para concluir a reversão do software. + &Reiniciar + &Fechar + Arquivos em Uso + Os aplicativos a seguir estão usando arquivos que precisam ser atualizados: + Feche os &aplicativos e tente reiniciá-los. + &Não feche os aplicativos. Será necessária uma reinicialização. + &OK + &Cancelar + A instalação foi bem-sucedida. + +O seguinte foi instalado em: '[DOTNETHOME]' + • SDK do .NET Core [DOTNETSDKVERSION] + • Runtime do .NET Core [DOTNETRUNTIMEVERSION] + • Runtime do ASP.NET Core [ASPNETCOREVERSION] + • Runtime da Área de Trabalho do Windows do .NET Core [WINFORMSANDWPFVERSION] + +Este produto coleta dados de uso + • Para obter mais informações e recusar, acesse https://aka.ms/dotnet-cli-telemetry + +Recursos + • Documentação do .NET Core: https://aka.ms/dotnet-docs + • Documentação do SDK: https://aka.ms/dotnet-sdk-docs + • Notas sobre a Versão: https://aka.ms/netcore3releasenotes + • Tutoriais: https://aka.ms/dotnet-tutorials + SDK do .NET Core + + O .NET Core é um software livre, multiplataforma e com suporte da Microsoft. Você pode usá-lo para criar seu próximo aplicativo, com C#, F# ou VB. Esperamos que você goste! + Saiba mais sobre o .NET Core + Recursos + <A HREF="https://aka.ms/dotnet-docs">Documentação Principal</A> + <A HREF="https://aka.ms/dotnet-cli-docs">Documentação do SDK</A> + <A HREF="https://aka.ms/dev-privacy">Política de Privacidade</A> + <A HREF="https://go.microsoft.com/fwlink/?LinkId=329770">Termos de licença da Biblioteca do .NET</A> + Nota de instalação + Um comando será executado durante o processo de instalação que melhorará a velocidade de restauração do projeto e habilitará o acesso offline. Isso levará até um minuto para ser concluído. + + Se você planeja usar o .NET Core 3.0 com o Visual Studio, o Visual Studio 2019 ou mais recente será necessário. <A HREF="https://go.microsoft.com/fwlink/?linkid=866799">Saiba mais</A>. + + diff --git a/src/redist/targets/packaging/windows/clisdk/LCID/2052/bundle.wxl b/src/redist/targets/packaging/windows/clisdk/LCID/2052/bundle.wxl index 421ed4114..37256afbf 100644 --- a/src/redist/targets/packaging/windows/clisdk/LCID/2052/bundle.wxl +++ b/src/redist/targets/packaging/windows/clisdk/LCID/2052/bundle.wxl @@ -2,7 +2,7 @@ [WixBundleName] 安装程序 [BUNDLEMONIKER] - 是否确实要取消? + 您确定要取消吗? 上一版本 安装程序帮助 /install | /repair | /uninstall | /layout [\[]"directory"[\]] - 安装、修复、卸载 @@ -56,16 +56,16 @@ • .NET Core Windows Desktop Runtime [WINFORMSANDWPFVERSION] 此产品会收集用法数据 - •详细信息和选择退出选项: https://aka.ms/dotnet-cli-telemetry + • 详细信息和选择退出选项: https://aka.ms/dotnet-cli-telemetry 资源 • .NET Core 文档: https://aka.ms/dotnet-docs • SDK 文档: https://aka.ms/dotnet-sdk-docs - •发行说明: https://aka.ms/netcore3releasenotes + • 发行说明: https://aka.ms/netcore3releasenotes • 教程: https://aka.ms/dotnet-tutorials .NET Core SDK - .NET Core 是开源、跨平台的,且由 Microsoft 提供支持。通过它,可使用 C#、F# 或 VB 构建你的下一个应用。喜欢你喜欢它! + .NET Core 是开源、跨平台的,且由 Microsoft 提供支持。通过它,可使用 C#、F# 或 VB 构建你的下一个应用。希望你喜欢它! 了解有关 .NET Core 的详细信息 资源 <A HREF="https://aka.ms/dotnet-docs">Core 文档</A> diff --git a/src/redist/targets/packaging/windows/clisdk/bundle.thm b/src/redist/targets/packaging/windows/clisdk/bundle.thm index 4df41b683..a0271d416 100644 --- a/src/redist/targets/packaging/windows/clisdk/bundle.thm +++ b/src/redist/targets/packaging/windows/clisdk/bundle.thm @@ -92,7 +92,7 @@ #(loc.FailureRepairHeader) #(loc.FailureHyperlinkLogText) - #(loc.FailureRestartText) + #(loc.FailureRestartText) diff --git a/test/SdkTests/SdkTests.csproj b/test/SdkTests/SdkTests.csproj new file mode 100644 index 000000000..d33fe2504 --- /dev/null +++ b/test/SdkTests/SdkTests.csproj @@ -0,0 +1,291 @@ + + + + false + false + Library + false + false + false + true + true + true + + + + + + $(MSBuildToolsPath)\Microsoft.CSharp.targets + + false + + false + $(CoreSdkTargetFramework) + + + + $(ArtifactsBinDir)redist\$(Configuration)\dotnet\ + $(ArtifactsBinDir)redist\$(Configuration)\dotnet-with-previous-runtimes\ + $([MSBuild]::NormalizePath($(ArtifactsTmpDir), 'dotnetSdkTests')) + $(ArtifactsTmpDir)DOTNET_CLI_HOME\ + + + + + + + + + + + + + + + true + + + + + + + + + Windows + + + + false + + + + false + + + + false + + + + false + + + + + false + + + + + + + + + + + + + + + + + + $(DotnetToTestPath)%(RecursiveDir)%(Filename)%(Extension) + + + + + + + + + + $(DotnetToTestPath)shared\Microsoft.NETCore.App\$(RuntimeVersionToInstall) + + + powershell -NoLogo -NoProfile -ExecutionPolicy ByPass + $(InstallRuntimeCommand) "$(_DotNetRoot)dotnet-install.ps1" + $(InstallRuntimeCommand) -Version $(RuntimeVersionToInstall) + $(InstallRuntimeCommand) -InstallDir $(DotnetToTestPath) + $(InstallRuntimeCommand) -Runtime "dotnet" + $(InstallRuntimeCommand) -Architecture "$(Architecture)" + + + /bin/bash + $(InstallRuntimeCommand) "$(_DotNetRoot)dotnet-install.sh" + $(InstallRuntimeCommand) --version $(RuntimeVersionToInstall) + $(InstallRuntimeCommand) --install-dir "$(DotnetToTestPath)" + $(InstallRuntimeCommand) --runtime "dotnet" + $(InstallRuntimeCommand) --architecture "$(Architecture)" + + + + + + + + + + + + + $(TestExecutionDirectory)\NuGet.config + + + + + + + + + + + + ]]> + + + + + + + + + + + + + + ToolTestName=%(SdkTest.Identity) + + + + + + + + + testSdk$(ToolTestName) + Microsoft.NET.$(ToolTestName).Tests + $(ArtifactsTmpDir)$(ToolCommandName)\ + + + + + + + + + $(ToolRunPrefix)set MSBuildSDKsPath=&& + $(ToolRunPrefix)set DOTNET_HOST_PATH=&& + $(ToolRunPrefix)set DOTNET_INSTALLDIR=&& + + + $(ToolRunPrefix)unset MSBuildSDKsPath && + $(ToolRunPrefix)unset DOTNET_HOST_PATH && + $(ToolRunPrefix)unset DOTNET_INSTALLDIR && + + + + + + $(MicrosoftNETSdkPackageVersion) + https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json + + dotnet tool install --local $(ToolCommandName) + + $(InstallToolCommand) --version $(SdkTestPackageVersion) + $(InstallToolCommand) --add-source $(SdkTestPackageFeed) + + + + + + + + $(ArtifactsTestResultsDir)$(TestProjectName).xml + $(ArtifactsTestResultsDir)$(TestProjectName).html + $(ArtifactsLogDir)$(TestProjectName).log + + -noautoreporters -noRepoInference + $(TestArgs) -dotnetPath $(DotnetToTestPath)\dotnet + $(TestArgs) -testExecutionDirectory $(TestExecutionDirectory) + $(TestArgs) -testConfigFile "$(MSBuildThisFileDirectory)TestConfig.xml" + $(TestArgs) -xml "$(ResultsXmlPath)" + $(TestArgs) -html "$(ResultsHtmlPath)" $(TestRunnerAdditionalArguments) + $(TestArgs) > $(ResultsStdOutPath) 2>&1 + $(TestArgs) -testList SdkIntegrationTests + + + + + + $(TestArgs) -testConfigFile "$(MSBuildThisFileDirectory)TestsToSkipx86.xml" + + + + + $(TestArgs) -testConfigFile "$(MSBuildThisFileDirectory)TestsToSkipPortableLinux.xml" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/SdkTests/TestConfig.xml b/test/SdkTests/TestConfig.xml new file mode 100644 index 000000000..13c5859e5 --- /dev/null +++ b/test/SdkTests/TestConfig.xml @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/SdkTests/TestsToSkipPortableLinux.xml b/test/SdkTests/TestsToSkipPortableLinux.xml new file mode 100644 index 000000000..d0ea16a8d --- /dev/null +++ b/test/SdkTests/TestsToSkipPortableLinux.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/test/SdkTests/TestsToSkipx86.xml b/test/SdkTests/TestsToSkipx86.xml new file mode 100644 index 000000000..c4cde72c5 --- /dev/null +++ b/test/SdkTests/TestsToSkipx86.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + +