From df25836f2e3ecce192b063c8d468cacc8533f07d Mon Sep 17 00:00:00 2001 From: John Luo Date: Thu, 5 Sep 2019 16:35:34 -0700 Subject: [PATCH 1/7] Update branding (#13737) --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index ebee38d126..7a261b6352 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -9,7 +9,7 @@ 3 0 0 - 1 + 2 rc$(PreReleasePreviewNumber) Release Candidate $(PreReleasePreviewNumber) From eb0ff129fddcef13460b13ffae5c7eb277ecdc7a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 5 Sep 2019 16:44:57 -0700 Subject: [PATCH 2/7] [release/3.0] Update dependencies from dotnet/arcade aspnet/EntityFrameworkCore (#13702) * Update dependencies from https://github.com/dotnet/arcade build 20190904.31 - Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19454.31 - Microsoft.DotNet.GenAPI - 1.0.0-beta.19454.31 - Microsoft.DotNet.Helix.Sdk - 2.0.0-beta.19454.31 * Update dependencies from https://github.com/aspnet/EntityFrameworkCore build 20190905.2 - Microsoft.EntityFrameworkCore.Tools - 3.0.0-rc1.19455.2 - Microsoft.EntityFrameworkCore.SqlServer - 3.0.0-rc1.19455.2 - dotnet-ef - 3.0.0-rc1.19455.2 - Microsoft.EntityFrameworkCore - 3.0.0-rc1.19455.2 - Microsoft.EntityFrameworkCore.InMemory - 3.0.0-rc1.19455.2 - Microsoft.EntityFrameworkCore.Relational - 3.0.0-rc1.19455.2 - Microsoft.EntityFrameworkCore.Sqlite - 3.0.0-rc1.19455.2 Dependency coherency updates - Microsoft.AspNetCore.Analyzer.Testing - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ActivatorUtilities.Sources - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Abstractions - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.Memory - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.SqlServer - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Caching.StackExchangeRedis - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.CommandLineUtils.Sources - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Abstractions - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.AzureKeyVault - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Binder - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.CommandLine - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.EnvironmentVariables - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.FileExtensions - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Ini - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Json - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.KeyPerFile - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.UserSecrets - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration.Xml - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Configuration - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection.Abstractions - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DependencyInjection - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.DiagnosticAdapter - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Diagnostics.HealthChecks - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Abstractions - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Composite - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Embedded - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileProviders.Physical - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.FileSystemGlobbing - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HashCodeCombiner.Sources - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting.Abstractions - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Hosting - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.HostFactoryResolver.Sources - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Http - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization.Abstractions - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Localization - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Abstractions - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.AzureAppServices - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Configuration - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Console - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Debug - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventSource - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.EventLog - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.TraceSource - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Logging.Testing - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ObjectPool - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.ConfigurationExtensions - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options.DataAnnotations - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Options - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ParameterDefaultValue.Sources - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.Primitives - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.TypeNameHelper.Sources - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.ValueStopwatch.Sources - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Extensions.WebEncoders - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Internal.Extensions.Refs - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.JSInterop - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Mono.WebAssembly.Interop - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.Bcl.AsyncInterfaces - 1.0.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.NETCore.App.Runtime.win-x64 - 3.0.0-rc1-19453-06 (parent: Microsoft.Extensions.Logging) - Microsoft.Extensions.Logging - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.CSharp - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Win32.Registry - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Win32.SystemEvents - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.ComponentModel.Annotations - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Diagnostics.EventLog - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Drawing.Common - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.IO.Pipelines - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Net.Http.WinHttpHandler - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Net.WebSockets.WebSocketProtocol - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Reflection.Metadata - 1.7.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Runtime.CompilerServices.Unsafe - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Cng - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Pkcs - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Cryptography.Xml - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Permissions - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Security.Principal.Windows - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.ServiceProcess.ServiceController - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Text.Encodings.Web - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Text.Json - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Threading.Channels - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - System.Windows.Extensions - 4.6.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Microsoft.Extensions.DependencyModel - 3.0.0-rc1-19453-06 (parent: Microsoft.Extensions.Logging) - Microsoft.NETCore.App.Ref - 3.0.0-rc1-19453-06 (parent: Microsoft.Extensions.Logging) - NETStandard.Library.Ref - 2.1.0-rc1-19453-06 (parent: Microsoft.Extensions.Logging) - Microsoft.NETCore.Platforms - 3.0.0-rc1.19453.4 (parent: Microsoft.NETCore.App.Runtime.win-x64) - Internal.AspNetCore.Analyzers - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) - Microsoft.AspNetCore.Testing - 3.0.0-rc1.19454.1 (parent: Microsoft.EntityFrameworkCore) --- eng/Version.Details.xml | 392 +++++++++--------- eng/Versions.props | 192 ++++----- eng/common/sdl/execute-all-sdl-tools.ps1 | 17 +- ...lic-dev-release.yml => netcore-dev-30.yml} | 44 +- .../post-build/channels/netcore-dev-31.yml | 165 ++++++++ .../post-build/channels/netcore-dev-5.yml | 40 +- ...-servicing.yml => netcore-internal-30.yml} | 36 +- ...lic-release.yml => netcore-release-30.yml} | 39 +- .../channels/netcore-release-31.yml | 160 +++++++ .../channels/netcore-tools-latest.yml | 45 +- .../channels/public-validation-release.yml | 37 +- .../templates/post-build/common-variables.yml | 8 + .../templates/post-build/post-build.yml | 21 +- global.json | 4 +- 14 files changed, 782 insertions(+), 418 deletions(-) rename eng/common/templates/post-build/channels/{public-dev-release.yml => netcore-dev-30.yml} (91%) create mode 100644 eng/common/templates/post-build/channels/netcore-dev-31.yml rename eng/common/templates/post-build/channels/{internal-servicing.yml => netcore-internal-30.yml} (91%) rename eng/common/templates/post-build/channels/{public-release.yml => netcore-release-30.yml} (87%) create mode 100644 eng/common/templates/post-build/channels/netcore-release-31.yml diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 77b1f9f783..c42869be45 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -29,404 +29,404 @@ https://github.com/aspnet/AspNetCore-Tooling 3187623392c21b80c33e3f4df1d135aaae66d530 - + https://github.com/aspnet/EntityFrameworkCore - b9f518ead6bf4c4b03037413a541adf91e740f4c + f04da30dd101d42d89f22d8578ceebecb2bc7bbb - + https://github.com/aspnet/EntityFrameworkCore - b9f518ead6bf4c4b03037413a541adf91e740f4c + f04da30dd101d42d89f22d8578ceebecb2bc7bbb - + https://github.com/aspnet/EntityFrameworkCore - b9f518ead6bf4c4b03037413a541adf91e740f4c + f04da30dd101d42d89f22d8578ceebecb2bc7bbb - + https://github.com/aspnet/EntityFrameworkCore - b9f518ead6bf4c4b03037413a541adf91e740f4c + f04da30dd101d42d89f22d8578ceebecb2bc7bbb - + https://github.com/aspnet/EntityFrameworkCore - b9f518ead6bf4c4b03037413a541adf91e740f4c + f04da30dd101d42d89f22d8578ceebecb2bc7bbb - + https://github.com/aspnet/EntityFrameworkCore - b9f518ead6bf4c4b03037413a541adf91e740f4c + f04da30dd101d42d89f22d8578ceebecb2bc7bbb - + https://github.com/aspnet/EntityFrameworkCore - b9f518ead6bf4c4b03037413a541adf91e740f4c + f04da30dd101d42d89f22d8578ceebecb2bc7bbb - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/dotnet/core-setup - 44e933b12f176895fae723d1f03c8424070880fc + b9dd6c969c15a2734aecbd3e2aa83afed02040e4 - + https://github.com/dotnet/core-setup - 44e933b12f176895fae723d1f03c8424070880fc + b9dd6c969c15a2734aecbd3e2aa83afed02040e4 - + https://github.com/dotnet/core-setup - 44e933b12f176895fae723d1f03c8424070880fc + b9dd6c969c15a2734aecbd3e2aa83afed02040e4 - + https://github.com/dotnet/core-setup - 44e933b12f176895fae723d1f03c8424070880fc + b9dd6c969c15a2734aecbd3e2aa83afed02040e4 - + https://github.com/dotnet/corefx - d341fd37dcb2c22e382adccdc06770cf8f160577 + ae488157a419935918d3364e843cf1632a2b4299 - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe - + https://github.com/dotnet/arcade - 316c80d0c373be63f991cc4d586db85273c1c553 + 00d8aa82b488f321204a0e69a81399af9df276a1 - + https://github.com/dotnet/arcade - 316c80d0c373be63f991cc4d586db85273c1c553 + 00d8aa82b488f321204a0e69a81399af9df276a1 - + https://github.com/dotnet/arcade - 316c80d0c373be63f991cc4d586db85273c1c553 + 00d8aa82b488f321204a0e69a81399af9df276a1 - + https://github.com/aspnet/Extensions - d453b777ba7f342cd3c5397003fafc96ec9a6e06 + 90d30da805950d7928fa2fbe876cae2c8f3482fe https://github.com/dotnet/roslyn diff --git a/eng/Versions.props b/eng/Versions.props index 7a261b6352..0a1b40ee16 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -53,111 +53,111 @@ --> - 1.0.0-beta.19430.3 + 1.0.0-beta.19454.31 3.3.1-beta3-19430-03 - 3.0.0-rc1-19430-09 - 3.0.0-rc1-19430-09 - 3.0.0-rc1-19430-09 - 2.1.0-rc1-19430-09 + 3.0.0-rc1-19453-06 + 3.0.0-rc1-19453-06 + 3.0.0-rc1-19453-06 + 2.1.0-rc1-19453-06 - 1.0.0-rc1.19420.10 - 4.6.0-rc1.19420.10 - 4.6.0-rc1.19420.10 - 4.6.0-rc1.19420.10 - 4.6.0-rc1.19420.10 - 4.6.0-rc1.19420.10 - 4.6.0-rc1.19420.10 - 4.6.0-rc1.19420.10 - 4.6.0-rc1.19420.10 - 4.6.0-rc1.19420.10 - 1.7.0-rc1.19420.10 - 4.6.0-rc1.19420.10 - 4.6.0-rc1.19420.10 - 4.6.0-rc1.19420.10 - 4.6.0-rc1.19420.10 - 4.6.0-rc1.19420.10 - 4.6.0-rc1.19420.10 - 4.6.0-rc1.19420.10 - 4.6.0-rc1.19420.10 - 4.6.0-rc1.19420.10 - 4.6.0-rc1.19420.10 - 4.6.0-rc1.19420.10 + 1.0.0-rc1.19453.4 + 4.6.0-rc1.19453.4 + 4.6.0-rc1.19453.4 + 4.6.0-rc1.19453.4 + 4.6.0-rc1.19453.4 + 4.6.0-rc1.19453.4 + 4.6.0-rc1.19453.4 + 4.6.0-rc1.19453.4 + 4.6.0-rc1.19453.4 + 4.6.0-rc1.19453.4 + 1.7.0-rc1.19453.4 + 4.6.0-rc1.19453.4 + 4.6.0-rc1.19453.4 + 4.6.0-rc1.19453.4 + 4.6.0-rc1.19453.4 + 4.6.0-rc1.19453.4 + 4.6.0-rc1.19453.4 + 4.6.0-rc1.19453.4 + 4.6.0-rc1.19453.4 + 4.6.0-rc1.19453.4 + 4.6.0-rc1.19453.4 + 4.6.0-rc1.19453.4 - 3.0.0-rc1.19420.10 + 3.0.0-rc1.19453.4 3.0.0-preview9.19452.1 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 - 3.0.0-rc1.19452.2 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 + 3.0.0-rc1.19454.1 - 3.0.0-rc1.19453.10 - 3.0.0-rc1.19453.10 - 3.0.0-rc1.19453.10 - 3.0.0-rc1.19453.10 - 3.0.0-rc1.19453.10 - 3.0.0-rc1.19453.10 - 3.0.0-rc1.19453.10 + 3.0.0-rc1.19455.2 + 3.0.0-rc1.19455.2 + 3.0.0-rc1.19455.2 + 3.0.0-rc1.19455.2 + 3.0.0-rc1.19455.2 + 3.0.0-rc1.19455.2 + 3.0.0-rc1.19455.2 3.0.0-rc1.19452.2 3.0.0-rc1.19452.2 diff --git a/eng/common/sdl/execute-all-sdl-tools.ps1 b/eng/common/sdl/execute-all-sdl-tools.ps1 index fa239484f2..01799d63ff 100644 --- a/eng/common/sdl/execute-all-sdl-tools.ps1 +++ b/eng/common/sdl/execute-all-sdl-tools.ps1 @@ -45,6 +45,7 @@ if ($GuardianPackageName) { $guardianCliLocation = $GuardianCliLocation } +$workingDirectory = (Split-Path $SourceDirectory -Parent) $ValidPath = Test-Path $guardianCliLocation if ($ValidPath -eq $False) @@ -53,13 +54,13 @@ if ($ValidPath -eq $False) exit 1 } -& $(Join-Path $PSScriptRoot "init-sdl.ps1") -GuardianCliLocation $guardianCliLocation -Repository $RepoName -BranchName $BranchName -WorkingDirectory (Split-Path $SourceDirectory -Parent) -AzureDevOpsAccessToken $AzureDevOpsAccessToken -GuardianLoggerLevel $GuardianLoggerLevel -$gdnFolder = Join-Path (Split-Path $SourceDirectory -Parent) ".gdn" +& $(Join-Path $PSScriptRoot "init-sdl.ps1") -GuardianCliLocation $guardianCliLocation -Repository $RepoName -BranchName $BranchName -WorkingDirectory $workingDirectory -AzureDevOpsAccessToken $AzureDevOpsAccessToken -GuardianLoggerLevel $GuardianLoggerLevel +$gdnFolder = Join-Path $workingDirectory ".gdn" if ($TsaOnboard) { if ($TsaCodebaseName -and $TsaNotificationEmail -and $TsaCodebaseAdmin -and $TsaBugAreaPath) { - Write-Host "$guardianCliLocation tsa-onboard --codebase-name `"$TsaCodebaseName`" --notification-alias `"$TsaNotificationEmail`" --codebase-admin `"$TsaCodebaseAdmin`" --instance-url `"$TsaInstanceUrl`" --project-name `"$TsaProjectName`" --area-path `"$TsaBugAreaPath`" --iteration-path `"$TsaIterationPath`" --working-directory $ArtifactsDirectory --logger-level $GuardianLoggerLevel" - & $guardianCliLocation tsa-onboard --codebase-name "$TsaCodebaseName" --notification-alias "$TsaNotificationEmail" --codebase-admin "$TsaCodebaseAdmin" --instance-url "$TsaInstanceUrl" --project-name "$TsaProjectName" --area-path "$TsaBugAreaPath" --iteration-path "$TsaIterationPath" --working-directory $ArtifactsDirectory --logger-level $GuardianLoggerLevel + Write-Host "$guardianCliLocation tsa-onboard --codebase-name `"$TsaCodebaseName`" --notification-alias `"$TsaNotificationEmail`" --codebase-admin `"$TsaCodebaseAdmin`" --instance-url `"$TsaInstanceUrl`" --project-name `"$TsaProjectName`" --area-path `"$TsaBugAreaPath`" --iteration-path `"$TsaIterationPath`" --working-directory $workingDirectory --logger-level $GuardianLoggerLevel" + & $guardianCliLocation tsa-onboard --codebase-name "$TsaCodebaseName" --notification-alias "$TsaNotificationEmail" --codebase-admin "$TsaCodebaseAdmin" --instance-url "$TsaInstanceUrl" --project-name "$TsaProjectName" --area-path "$TsaBugAreaPath" --iteration-path "$TsaIterationPath" --working-directory $workingDirectory --logger-level $GuardianLoggerLevel if ($LASTEXITCODE -ne 0) { Write-Host "Guardian tsa-onboard failed with exit code $LASTEXITCODE." exit $LASTEXITCODE @@ -71,10 +72,10 @@ if ($TsaOnboard) { } if ($ArtifactToolsList -and $ArtifactToolsList.Count -gt 0) { - & $(Join-Path $PSScriptRoot "run-sdl.ps1") -GuardianCliLocation $guardianCliLocation -WorkingDirectory $ArtifactsDirectory -TargetDirectory $ArtifactsDirectory -GdnFolder $gdnFolder -ToolsList $ArtifactToolsList -AzureDevOpsAccessToken $AzureDevOpsAccessToken -UpdateBaseline $UpdateBaseline -GuardianLoggerLevel $GuardianLoggerLevel -CrScanAdditionalRunConfigParams $CrScanAdditionalRunConfigParams -PoliCheckAdditionalRunConfigParams $PoliCheckAdditionalRunConfigParams + & $(Join-Path $PSScriptRoot "run-sdl.ps1") -GuardianCliLocation $guardianCliLocation -WorkingDirectory $workingDirectory -TargetDirectory $ArtifactsDirectory -GdnFolder $gdnFolder -ToolsList $ArtifactToolsList -AzureDevOpsAccessToken $AzureDevOpsAccessToken -UpdateBaseline $UpdateBaseline -GuardianLoggerLevel $GuardianLoggerLevel -CrScanAdditionalRunConfigParams $CrScanAdditionalRunConfigParams -PoliCheckAdditionalRunConfigParams $PoliCheckAdditionalRunConfigParams } if ($SourceToolsList -and $SourceToolsList.Count -gt 0) { - & $(Join-Path $PSScriptRoot "run-sdl.ps1") -GuardianCliLocation $guardianCliLocation -WorkingDirectory $ArtifactsDirectory -TargetDirectory $SourceDirectory -GdnFolder $gdnFolder -ToolsList $SourceToolsList -AzureDevOpsAccessToken $AzureDevOpsAccessToken -UpdateBaseline $UpdateBaseline -GuardianLoggerLevel $GuardianLoggerLevel -CrScanAdditionalRunConfigParams $CrScanAdditionalRunConfigParams -PoliCheckAdditionalRunConfigParams $PoliCheckAdditionalRunConfigParams + & $(Join-Path $PSScriptRoot "run-sdl.ps1") -GuardianCliLocation $guardianCliLocation -WorkingDirectory $workingDirectory -TargetDirectory $SourceDirectory -GdnFolder $gdnFolder -ToolsList $SourceToolsList -AzureDevOpsAccessToken $AzureDevOpsAccessToken -UpdateBaseline $UpdateBaseline -GuardianLoggerLevel $GuardianLoggerLevel -CrScanAdditionalRunConfigParams $CrScanAdditionalRunConfigParams -PoliCheckAdditionalRunConfigParams $PoliCheckAdditionalRunConfigParams } if ($UpdateBaseline) { @@ -86,8 +87,8 @@ if ($TsaPublish) { if (-not $TsaRepositoryName) { $TsaRepositoryName = "$($Repository)-$($BranchName)" } - Write-Host "$guardianCliLocation tsa-publish --all-tools --repository-name `"$TsaRepositoryName`" --branch-name `"$TsaBranchName`" --build-number `"$BuildNumber`" --codebase-name `"$TsaCodebaseName`" --notification-alias `"$TsaNotificationEmail`" --codebase-admin `"$TsaCodebaseAdmin`" --instance-url `"$TsaInstanceUrl`" --project-name `"$TsaProjectName`" --area-path `"$TsaBugAreaPath`" --iteration-path `"$TsaIterationPath`" --working-directory $ArtifactsDirectory --logger-level $GuardianLoggerLevel" - & $guardianCliLocation tsa-publish --all-tools --repository-name "$TsaRepositoryName" --branch-name "$TsaBranchName" --build-number "$BuildNumber" --onboard $True --codebase-name "$TsaCodebaseName" --notification-alias "$TsaNotificationEmail" --codebase-admin "$TsaCodebaseAdmin" --instance-url "$TsaInstanceUrl" --project-name "$TsaProjectName" --area-path "$TsaBugAreaPath" --iteration-path "$TsaIterationPath" --working-directory $ArtifactsDirectory --logger-level $GuardianLoggerLevel + Write-Host "$guardianCliLocation tsa-publish --all-tools --repository-name `"$TsaRepositoryName`" --branch-name `"$TsaBranchName`" --build-number `"$BuildNumber`" --codebase-name `"$TsaCodebaseName`" --notification-alias `"$TsaNotificationEmail`" --codebase-admin `"$TsaCodebaseAdmin`" --instance-url `"$TsaInstanceUrl`" --project-name `"$TsaProjectName`" --area-path `"$TsaBugAreaPath`" --iteration-path `"$TsaIterationPath`" --working-directory $workingDirectory --logger-level $GuardianLoggerLevel" + & $guardianCliLocation tsa-publish --all-tools --repository-name "$TsaRepositoryName" --branch-name "$TsaBranchName" --build-number "$BuildNumber" --onboard $True --codebase-name "$TsaCodebaseName" --notification-alias "$TsaNotificationEmail" --codebase-admin "$TsaCodebaseAdmin" --instance-url "$TsaInstanceUrl" --project-name "$TsaProjectName" --area-path "$TsaBugAreaPath" --iteration-path "$TsaIterationPath" --working-directory $workingDirectory --logger-level $GuardianLoggerLevel if ($LASTEXITCODE -ne 0) { Write-Host "Guardian tsa-publish failed with exit code $LASTEXITCODE." exit $LASTEXITCODE diff --git a/eng/common/templates/post-build/channels/public-dev-release.yml b/eng/common/templates/post-build/channels/netcore-dev-30.yml similarity index 91% rename from eng/common/templates/post-build/channels/public-dev-release.yml rename to eng/common/templates/post-build/channels/netcore-dev-30.yml index afa9542148..3ce7ce4d6e 100644 --- a/eng/common/templates/post-build/channels/public-dev-release.yml +++ b/eng/common/templates/post-build/channels/netcore-dev-30.yml @@ -5,11 +5,11 @@ parameters: publishInstallersAndChecksums: false stages: -- stage: Publish +- stage: NetCore_Dev30_Publish dependsOn: validate variables: - template: ../common-variables.yml - displayName: Developer Channel + displayName: .NET Core 3.0 Dev Publishing jobs: - template: ../setup-maestro-vars.yml @@ -39,8 +39,8 @@ stages: inputs: filePath: eng\common\sdk-task.ps1 arguments: -task PublishToSymbolServers -restore -msbuildEngine dotnet - /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat) - /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat) + /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat) + /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat) /p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/' /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/' /p:SymbolPublishingExclusionsFile='$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt' @@ -85,7 +85,7 @@ stages: AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 - arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet + arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet /p:ChannelId=$(PublicDevRelease_30_Channel_Id) /p:ArtifactsCategory=$(_DotNetArtifactsCategory) /p:IsStableBuild=$(IsStableBuild) @@ -93,23 +93,23 @@ stages: /p:RepositoryName=$(Build.Repository.Name) /p:CommitSha=$(Build.SourceVersion) /p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe - /p:AzdoTargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)' - /p:TargetFeedPAT='$(dn-bot-dnceng-unviersal-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-unviersal-packages-rw)' + /p:TargetFeedPAT='$(dn-bot-dnceng-unviersal-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) ${{ parameters.artifactsPublishingAdditionalParameters }} - + - task: NuGetCommand@2 displayName: Publish Packages to AzDO Feed condition: contains(variables['TargetAzDOFeed'], 'pkgs.visualstudio.com') @@ -123,16 +123,16 @@ stages: displayName: Publish Blobs to AzDO Feed inputs: filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1 - arguments: -FeedName $(AzDoFeedName) + arguments: -FeedName $(AzDoFeedName) -SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/ -PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw) enabled: false -- stage: PublishValidation - displayName: Publish Validation +- stage: NetCore_Dev30_Publish_Validation + displayName: .NET Core 3.0 Dev Publish Validation variables: - - template: ../common-variables.yml + - template: ../common-variables.yml jobs: - template: ../setup-maestro-vars.yml @@ -160,6 +160,6 @@ stages: parameters: ChannelId: ${{ variables.PublicDevRelease_30_Channel_Id }} - - template: ../promote-build.yml - parameters: + - template: ../promote-build.yml + parameters: ChannelId: ${{ variables.PublicDevRelease_30_Channel_Id }} diff --git a/eng/common/templates/post-build/channels/netcore-dev-31.yml b/eng/common/templates/post-build/channels/netcore-dev-31.yml new file mode 100644 index 0000000000..d40aaacc4f --- /dev/null +++ b/eng/common/templates/post-build/channels/netcore-dev-31.yml @@ -0,0 +1,165 @@ +parameters: + enableSymbolValidation: true + symbolPublishingAdditionalParameters: '' + artifactsPublishingAdditionalParameters: '' + publishInstallersAndChecksums: false + +stages: +- stage: NetCore_Dev31_Publish + dependsOn: validate + variables: + - template: ../common-variables.yml + displayName: .NET Core 3.1 Dev Publishing + jobs: + - template: ../setup-maestro-vars.yml + + - job: + displayName: Symbol Publishing + dependsOn: setupMaestroVars + condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicDevRelease_31_Channel_Id)) + variables: + - group: DotNet-Symbol-Server-Pats + pool: + vmImage: 'windows-2019' + steps: + - task: DownloadBuildArtifacts@0 + displayName: Download Blob Artifacts + inputs: + artifactName: 'BlobArtifacts' + continueOnError: true + + - task: DownloadBuildArtifacts@0 + displayName: Download PDB Artifacts + inputs: + artifactName: 'PDBArtifacts' + continueOnError: true + + - task: PowerShell@2 + displayName: Publish + inputs: + filePath: eng\common\sdk-task.ps1 + arguments: -task PublishToSymbolServers -restore -msbuildEngine dotnet + /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat) + /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat) + /p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/' + /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/' + /p:SymbolPublishingExclusionsFile='$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt' + /p:Configuration=Release + ${{ parameters.symbolPublishingAdditionalParameters }} + + - job: + 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.PublicDevRelease_31_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: PowerShell@2 + displayName: Add Assets Location + env: + AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw) + inputs: + filePath: eng\common\sdk-task.ps1 + arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet + /p:ChannelId=$(PublicDevRelease_31_Channel_Id) + /p:ArtifactsCategory=$(_DotNetArtifactsCategory) + /p:IsStableBuild=$(IsStableBuild) + /p:IsInternalBuild=$(IsInternalBuild) + /p:RepositoryName=$(Build.Repository.Name) + /p:CommitSha=$(Build.SourceVersion) + /p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe + /p:AzdoTargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)' + /p:TargetFeedPAT='$(dn-bot-dnceng-unviersal-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) + ${{ parameters.artifactsPublishingAdditionalParameters }} + + - task: NuGetCommand@2 + displayName: Publish Packages to AzDO Feed + condition: contains(variables['TargetAzDOFeed'], 'pkgs.visualstudio.com') + inputs: + command: push + vstsFeed: $(AzDoFeedName) + packagesToPush: $(Build.ArtifactStagingDirectory)\PackageArtifacts\*.nupkg + publishVstsFeed: $(AzDoFeedName) + + - task: PowerShell@2 + displayName: Publish Blobs to AzDO Feed + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1 + arguments: -FeedName $(AzDoFeedName) + -SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/ + -PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw) + enabled: false + + +- stage: NetCore_Dev31_Publish_Validation + displayName: .NET Core 3.1 Dev Publish Validation + variables: + - template: ../common-variables.yml + jobs: + - template: ../setup-maestro-vars.yml + + - ${{ if eq(parameters.enableSymbolValidation, 'true') }}: + - job: + displayName: Symbol Availability + dependsOn: setupMaestroVars + condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicDevRelease_31_Channel_Id)) + pool: + vmImage: 'windows-2019' + steps: + - task: DownloadBuildArtifacts@0 + displayName: Download Package Artifacts + inputs: + buildType: current + artifactName: PackageArtifacts + + - task: PowerShell@2 + displayName: Check Symbol Availability + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/symbols-validation.ps1 + arguments: -InputPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ -ExtractPath $(Agent.BuildDirectory)/Temp/ -DotnetSymbolVersion $(SymbolToolVersion) + + - template: ../darc-gather-drop.yml + parameters: + ChannelId: ${{ variables.PublicDevRelease_31_Channel_Id }} + + - template: ../promote-build.yml + parameters: + ChannelId: ${{ variables.PublicDevRelease_31_Channel_Id }} 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 812def3154..584185c2a7 100644 --- a/eng/common/templates/post-build/channels/netcore-dev-5.yml +++ b/eng/common/templates/post-build/channels/netcore-dev-5.yml @@ -9,7 +9,7 @@ stages: dependsOn: validate variables: - template: ../common-variables.yml - displayName: .NET Core 5 Dev Channel + displayName: .NET Core 5 Dev Publishing jobs: - template: ../setup-maestro-vars.yml @@ -39,8 +39,8 @@ stages: inputs: filePath: eng\common\sdk-task.ps1 arguments: -task PublishToSymbolServers -restore -msbuildEngine dotnet - /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat) - /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat) + /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat) + /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat) /p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/' /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/' /p:SymbolPublishingExclusionsFile='$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt' @@ -85,7 +85,7 @@ stages: AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 - arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet + arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet /p:ChannelId=$(NetCore_5_Dev_Channel_Id) /p:ArtifactsCategory=$(_DotNetArtifactsCategory) /p:IsStableBuild=$(IsStableBuild) @@ -93,15 +93,15 @@ stages: /p:RepositoryName=$(Build.Repository.Name) /p:CommitSha=$(Build.SourceVersion) /p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe - /p:AzdoTargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)' - /p:TargetFeedPAT='$(dn-bot-dnceng-unviersal-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:AzdoTargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)' + /p:TargetFeedPAT='$(dn-bot-dnceng-unviersal-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:InstallersTargetStaticFeed=$(InstallersBlobFeedUrl) /p:InstallersAzureAccountKey=$(dotnetcli-storage-key) @@ -109,7 +109,7 @@ stages: /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl) /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key) ${{ parameters.artifactsPublishingAdditionalParameters }} - + - task: NuGetCommand@2 displayName: Publish Packages to AzDO Feed condition: contains(variables['TargetAzDOFeed'], 'pkgs.visualstudio.com') @@ -123,16 +123,16 @@ stages: displayName: Publish Blobs to AzDO Feed inputs: filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1 - arguments: -FeedName $(AzDoFeedName) + arguments: -FeedName $(AzDoFeedName) -SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/ -PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw) enabled: false -- stage: NetCore_Dev5_PublishValidation - displayName: Publish Validation +- stage: NetCore_Dev5_Publish_Validation + displayName: .NET Core 5 Dev Publish Validation variables: - - template: ../common-variables.yml + - template: ../common-variables.yml jobs: - template: ../setup-maestro-vars.yml @@ -160,6 +160,6 @@ stages: parameters: ChannelId: ${{ variables.NetCore_5_Dev_Channel_Id }} - - template: ../promote-build.yml - parameters: + - template: ../promote-build.yml + parameters: ChannelId: ${{ variables.NetCore_5_Dev_Channel_Id }} diff --git a/eng/common/templates/post-build/channels/internal-servicing.yml b/eng/common/templates/post-build/channels/netcore-internal-30.yml similarity index 91% rename from eng/common/templates/post-build/channels/internal-servicing.yml rename to eng/common/templates/post-build/channels/netcore-internal-30.yml index 4ca36358d9..8bf88fd49e 100644 --- a/eng/common/templates/post-build/channels/internal-servicing.yml +++ b/eng/common/templates/post-build/channels/netcore-internal-30.yml @@ -4,11 +4,11 @@ parameters: artifactsPublishingAdditionalParameters: '' stages: -- stage: IS_Publish +- stage: NetCore_30_Internal_Servicing_Publishing dependsOn: validate variables: - template: ../common-variables.yml - displayName: Internal Servicing + displayName: .NET Core 3.0 Internal Servicing Publishing jobs: - template: ../setup-maestro-vars.yml @@ -38,8 +38,8 @@ stages: inputs: filePath: eng\common\sdk-task.ps1 arguments: -task PublishToSymbolServers -restore -msbuildEngine dotnet - /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat) - /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat) + /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat) + /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat) /p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/' /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/' /p:SymbolPublishingExclusionsFile='$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt' @@ -84,7 +84,7 @@ stages: AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 - arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet + arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet /p:ChannelId=$(InternalServicing_30_Channel_Id) /p:IsStableBuild=$(IsStableBuild) /p:IsInternalBuild=$(IsInternalBuild) @@ -95,15 +95,15 @@ stages: /p:AzureDevOpsFeedsBaseUrl=$(dotnetfeed-internal-private-feed-url) /p:StaticInternalFeed=$(dotnetfeed-internal-nonstable-feed-url) /p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe - /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: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 ${{ parameters.artifactsPublishingAdditionalParameters }} - + - task: NuGetCommand@2 displayName: Publish Packages to AzDO Feed condition: contains(variables['TargetAzDOFeed'], 'pkgs.visualstudio.com') @@ -117,7 +117,7 @@ stages: displayName: Publish Blobs to AzDO Feed inputs: filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1 - arguments: -FeedName $(AzDoFeedName) + arguments: -FeedName $(AzDoFeedName) -SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/ -PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw) enabled: false @@ -125,11 +125,11 @@ stages: - template: ../trigger-subscription.yml parameters: ChannelId: ${{ variables.InternalServicing_30_Channel_Id }} - -- stage: IS_PublishValidation - displayName: Publish Validation + +- stage: NetCore_30_Internal_Servicing_Publish_Validation + displayName: .NET Core 3.0 Internal Servicing Publish Validation variables: - - template: ../common-variables.yml + - template: ../common-variables.yml jobs: - template: ../setup-maestro-vars.yml diff --git a/eng/common/templates/post-build/channels/public-release.yml b/eng/common/templates/post-build/channels/netcore-release-30.yml similarity index 87% rename from eng/common/templates/post-build/channels/public-release.yml rename to eng/common/templates/post-build/channels/netcore-release-30.yml index 7ec1f89c08..dc9541d9ec 100644 --- a/eng/common/templates/post-build/channels/public-release.yml +++ b/eng/common/templates/post-build/channels/netcore-release-30.yml @@ -4,11 +4,11 @@ parameters: artifactsPublishingAdditionalParameters: '' stages: -- stage: PubRel_Publish +- stage: NetCore_Release30_Publish dependsOn: validate variables: - template: ../common-variables.yml - displayName: Public Release + displayName: .NET Core 3.0 Release Publishing jobs: - template: ../setup-maestro-vars.yml @@ -38,8 +38,8 @@ stages: inputs: filePath: eng\common\sdk-task.ps1 arguments: -task PublishToSymbolServers -restore -msbuildEngine dotnet - /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat) - /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat) + /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat) + /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat) /p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/' /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/' /p:SymbolPublishingExclusionsFile='$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt' @@ -84,27 +84,27 @@ stages: AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 - arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet + arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet /p:ChannelId=$(PublicRelease_30_Channel_Id) /p:IsStableBuild=$(IsStableBuild) /p:IsInternalBuild=$(IsInternalBuild) /p:RepositoryName=$(Build.Repository.Name) /p:CommitSha=$(Build.SourceVersion) - /p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)' + /p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)' /p:AzureStorageAccountName=$(ProxyBackedFeedsAccountName) /p:AzureStorageAccountKey=$(dotnetfeed-storage-access-key-1) /p:AzureDevOpsFeedsBaseUrl=$(dotnetfeed-internal-private-feed-url) /p:StaticInternalFeed=$(dotnetfeed-internal-nonstable-feed-url) /p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe - /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: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 ${{ parameters.artifactsPublishingAdditionalParameters }} - + - task: NuGetCommand@2 displayName: Publish Packages to AzDO Feed condition: contains(variables['TargetAzDOFeed'], 'pkgs.visualstudio.com') @@ -118,7 +118,7 @@ stages: displayName: Publish Blobs to AzDO Feed inputs: filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1 - arguments: -FeedName $(AzDoFeedName) + arguments: -FeedName $(AzDoFeedName) -SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/ -PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw) enabled: false @@ -127,10 +127,10 @@ stages: parameters: ChannelId: ${{ variables.PublicRelease_30_Channel_Id }} -- stage: PubRel_PublishValidation - displayName: Publish Validation +- stage: NetCore_Release30_Publish_Validation + displayName: .NET Core 3.0 Release Publish Validation variables: - - template: ../common-variables.yml + - template: ../common-variables.yml jobs: - template: ../setup-maestro-vars.yml @@ -138,7 +138,8 @@ stages: - job: displayName: Symbol Availability dependsOn: setupMaestroVars - condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicRelease_30_Channel_Id)) + condition: or(contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicRelease_30_Channel_Id)), + contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicRelease_31_Channel_Id))) pool: vmImage: 'windows-2019' steps: diff --git a/eng/common/templates/post-build/channels/netcore-release-31.yml b/eng/common/templates/post-build/channels/netcore-release-31.yml new file mode 100644 index 0000000000..4dcf4ba9c8 --- /dev/null +++ b/eng/common/templates/post-build/channels/netcore-release-31.yml @@ -0,0 +1,160 @@ +parameters: + enableSymbolValidation: true + symbolPublishingAdditionalParameters: '' + artifactsPublishingAdditionalParameters: '' + +stages: +- stage: NetCore_Release31_Publish + dependsOn: validate + variables: + - template: ../common-variables.yml + displayName: .NET Core 3.1 Release Publishing + jobs: + - template: ../setup-maestro-vars.yml + + - job: + displayName: Symbol Publishing + dependsOn: setupMaestroVars + condition: contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicRelease_31_Channel_Id)) + variables: + - group: DotNet-Symbol-Server-Pats + pool: + vmImage: 'windows-2019' + steps: + - task: DownloadBuildArtifacts@0 + displayName: Download Blob Artifacts + inputs: + artifactName: 'BlobArtifacts' + continueOnError: true + + - task: DownloadBuildArtifacts@0 + displayName: Download PDB Artifacts + inputs: + artifactName: 'PDBArtifacts' + continueOnError: true + + - task: PowerShell@2 + displayName: Publish + inputs: + filePath: eng\common\sdk-task.ps1 + arguments: -task PublishToSymbolServers -restore -msbuildEngine dotnet + /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat) + /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat) + /p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/' + /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/' + /p:SymbolPublishingExclusionsFile='$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt' + /p:Configuration=Release + ${{ parameters.symbolPublishingAdditionalParameters }} + + - 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.PublicRelease_31_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: PowerShell@2 + displayName: Publish + env: + AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw) + inputs: + filePath: eng\common\sdk-task.ps1 + arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet + /p:ChannelId=$(PublicRelease_31_Channel_Id) + /p:IsStableBuild=$(IsStableBuild) + /p:IsInternalBuild=$(IsInternalBuild) + /p:RepositoryName=$(Build.Repository.Name) + /p:CommitSha=$(Build.SourceVersion) + /p:AzureStorageTargetFeedPAT='$(dotnetfeed-storage-access-key-1)' + /p:AzureStorageAccountName=$(ProxyBackedFeedsAccountName) + /p:AzureStorageAccountKey=$(dotnetfeed-storage-access-key-1) + /p:AzureDevOpsFeedsBaseUrl=$(dotnetfeed-internal-private-feed-url) + /p:StaticInternalFeed=$(dotnetfeed-internal-nonstable-feed-url) + /p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe + /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 + ${{ parameters.artifactsPublishingAdditionalParameters }} + + - task: NuGetCommand@2 + displayName: Publish Packages to AzDO Feed + condition: contains(variables['TargetAzDOFeed'], 'pkgs.visualstudio.com') + inputs: + command: push + vstsFeed: $(AzDoFeedName) + packagesToPush: $(Build.ArtifactStagingDirectory)\PackageArtifacts\*.nupkg + publishVstsFeed: $(AzDoFeedName) + + - task: PowerShell@2 + displayName: Publish Blobs to AzDO Feed + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1 + arguments: -FeedName $(AzDoFeedName) + -SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/ + -PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw) + enabled: false + + - template: ../trigger-subscription.yml + parameters: + ChannelId: ${{ variables.PublicRelease_31_Channel_Id }} + +- stage: NetCore_Release31_Publish_Validation + displayName: .NET Core 3.1 Release Publish Validation + variables: + - template: ../common-variables.yml + jobs: + - template: ../setup-maestro-vars.yml + + - ${{ if eq(parameters.enableSymbolValidation, 'true') }}: + - job: + displayName: Symbol Availability + dependsOn: setupMaestroVars + condition: or(contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicRelease_31_Channel_Id)), + contains(dependencies.setupMaestroVars.outputs['setReleaseVars.InitialChannels'], format('[{0}]', variables.PublicRelease_31_Channel_Id))) + pool: + vmImage: 'windows-2019' + steps: + - task: DownloadBuildArtifacts@0 + displayName: Download Package Artifacts + inputs: + buildType: current + artifactName: PackageArtifacts + + - task: PowerShell@2 + displayName: Check Symbol Availability + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/symbols-validation.ps1 + arguments: -InputPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ -ExtractPath $(Agent.BuildDirectory)/Temp/ -DotnetSymbolVersion $(SymbolToolVersion) + + - template: ../promote-build.yml + parameters: + ChannelId: ${{ variables.PublicRelease_31_Channel_Id }} 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 c2d2076730..4d9f197d43 100644 --- a/eng/common/templates/post-build/channels/netcore-tools-latest.yml +++ b/eng/common/templates/post-build/channels/netcore-tools-latest.yml @@ -3,13 +3,15 @@ parameters: symbolPublishingAdditionalParameters: '' artifactsPublishingAdditionalParameters: '' publishInstallersAndChecksums: false + publishToAzureDevOpsFeeds: false + azureDevOpsToolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' stages: - stage: NetCore_Tools_Latest_Publish dependsOn: validate variables: - template: ../common-variables.yml - displayName: .NET Tools - Latest + displayName: .NET Tools - Latest Publishing jobs: - template: ../setup-maestro-vars.yml @@ -39,8 +41,8 @@ stages: inputs: filePath: eng\common\sdk-task.ps1 arguments: -task PublishToSymbolServers -restore -msbuildEngine dotnet - /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat) - /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat) + /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat) + /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat) /p:PDBArtifactsDirectory='$(Build.ArtifactStagingDirectory)/PDBArtifacts/' /p:BlobBasePath='$(Build.ArtifactStagingDirectory)/BlobArtifacts/' /p:SymbolPublishingExclusionsFile='$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt' @@ -85,7 +87,7 @@ stages: AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 - arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet + arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet /p:ChannelId=$(NetCore_Tools_Latest_Channel_Id) /p:ArtifactsCategory=$(_DotNetArtifactsCategory) /p:IsStableBuild=$(IsStableBuild) @@ -93,23 +95,28 @@ stages: /p:RepositoryName=$(Build.Repository.Name) /p:CommitSha=$(Build.SourceVersion) /p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe - /p:AzdoTargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)' - /p:TargetFeedPAT='$(dn-bot-dnceng-unviersal-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:AzdoTargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)' + /p:TargetFeedPAT='$(dn-bot-dnceng-unviersal-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:InstallersTargetStaticFeed=$(InstallersBlobFeedUrl) /p:PublishInstallersAndChecksums=${{ parameters.publishInstallersAndChecksums }} /p:InstallersAzureAccountKey=$(dotnetcli-storage-key) /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl) /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key) + /p:PublishToAzureDevOpsNuGetFeeds=${{ parameters.publishToAzureDevOpsFeeds }} + /p:AzureDevOpsStaticShippingFeed=${{ parameters.azureDevOpsToolsFeed }} + /p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' + /p:AzureDevOpsStaticTransportFeed=${{ parameters.azureDevOpsToolsFeed }} + /p:AzureDevOpsStaticTransportFeedKey='$(dn-bot-dnceng-artifact-feeds-rw) ${{ parameters.artifactsPublishingAdditionalParameters }} - + - task: NuGetCommand@2 displayName: Publish Packages to AzDO Feed condition: contains(variables['TargetAzDOFeed'], 'pkgs.visualstudio.com') @@ -123,16 +130,16 @@ stages: displayName: Publish Blobs to AzDO Feed inputs: filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1 - arguments: -FeedName $(AzDoFeedName) + arguments: -FeedName $(AzDoFeedName) -SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/ -PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw) enabled: false - stage: NetCore_Tools_Latest_PublishValidation - displayName: Publish Validation + displayName: .NET Tools - Latest Publish Validation variables: - - template: ../common-variables.yml + - template: ../common-variables.yml jobs: - template: ../setup-maestro-vars.yml @@ -160,6 +167,6 @@ stages: parameters: ChannelId: ${{ variables.NetCore_Tools_Latest_Channel_Id }} - - template: ../promote-build.yml - parameters: + - template: ../promote-build.yml + parameters: ChannelId: ${{ variables.NetCore_Tools_Latest_Channel_Id }} diff --git a/eng/common/templates/post-build/channels/public-validation-release.yml b/eng/common/templates/post-build/channels/public-validation-release.yml index 12124d6215..e306fa87bf 100644 --- a/eng/common/templates/post-build/channels/public-validation-release.yml +++ b/eng/common/templates/post-build/channels/public-validation-release.yml @@ -1,13 +1,15 @@ parameters: artifactsPublishingAdditionalParameters: '' publishInstallersAndChecksums: false + publishToAzureDevOpsFeeds: false + azureDevOpsToolsFeed: 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json' stages: - stage: PVR_Publish dependsOn: validate variables: - template: ../common-variables.yml - displayName: Validation Channel + displayName: .NET Tools - Validation Publishing jobs: - template: ../setup-maestro-vars.yml @@ -49,7 +51,7 @@ stages: AZURE_DEVOPS_EXT_PAT: $(dn-bot-dnceng-unviersal-packages-rw) inputs: filePath: eng\common\sdk-task.ps1 - arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet + arguments: -task PublishArtifactsInManifest -restore -msbuildEngine dotnet /p:ChannelId=$(PublicValidationRelease_30_Channel_Id) /p:ArtifactsCategory=$(_DotNetValidationArtifactsCategory) /p:IsStableBuild=$(IsStableBuild) @@ -57,21 +59,26 @@ stages: /p:RepositoryName=$(Build.Repository.Name) /p:CommitSha=$(Build.SourceVersion) /p:NugetPath=$(Agent.BuildDirectory)\Nuget\NuGet.exe - /p:AzdoTargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)' - /p:TargetFeedPAT='$(dn-bot-dnceng-unviersal-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:AzdoTargetFeedPAT='$(dn-bot-dnceng-unviersal-packages-rw)' + /p:TargetFeedPAT='$(dn-bot-dnceng-unviersal-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:InstallersTargetStaticFeed=$(InstallersBlobFeedUrl) /p:InstallersAzureAccountKey=$(dotnetcli-storage-key) /p:PublishInstallersAndChecksums=${{ parameters.publishInstallersAndChecksums }} /p:ChecksumsTargetStaticFeed=$(ChecksumsBlobFeedUrl) /p:ChecksumsAzureAccountKey=$(dotnetclichecksums-storage-key) + /p:PublishToAzureDevOpsNuGetFeeds=${{ parameters.publishToAzureDevOpsFeeds }} + /p:AzureDevOpsStaticShippingFeed=${{ parameters.azureDevOpsToolsFeed }} + /p:AzureDevOpsStaticShippingFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' + /p:AzureDevOpsStaticTransportFeed=${{ parameters.azureDevOpsToolsFeed }} + /p:AzureDevOpsStaticTransportFeedKey='$(dn-bot-dnceng-artifact-feeds-rw)' ${{ parameters.artifactsPublishingAdditionalParameters }} - task: NuGetCommand@2 @@ -87,14 +94,14 @@ stages: displayName: Publish Blobs to AzDO Feed inputs: filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-blobs-to-azdo.ps1 - arguments: -FeedName $(AzDoFeedName) + arguments: -FeedName $(AzDoFeedName) -SourceFolderCollection $(Build.ArtifactStagingDirectory)/BlobArtifacts/ -PersonalAccessToken $(dn-bot-dnceng-unviersal-packages-rw) enabled: false - stage: PVR_PublishValidation - displayName: Publish Validation + displayName: .NET Tools - Validation Publish Validation variables: - template: ../common-variables.yml jobs: @@ -104,6 +111,6 @@ stages: parameters: ChannelId: ${{ variables.PublicValidationRelease_30_Channel_Id }} - - template: ../promote-build.yml - parameters: + - template: ../promote-build.yml + parameters: ChannelId: ${{ variables.PublicValidationRelease_30_Channel_Id }} diff --git a/eng/common/templates/post-build/common-variables.yml b/eng/common/templates/post-build/common-variables.yml index 7b3fdb1361..49712b3a60 100644 --- a/eng/common/templates/post-build/common-variables.yml +++ b/eng/common/templates/post-build/common-variables.yml @@ -6,6 +6,10 @@ variables: - name: PublicDevRelease_30_Channel_Id value: 3 + # .NET Core 3.1 Dev + - name: PublicDevRelease_31_Channel_Id + value: 260 + # .NET Core 5 Dev - name: NetCore_5_Dev_Channel_Id value: 131 @@ -26,6 +30,10 @@ variables: - name: PublicRelease_30_Channel_Id value: 19 + # .NET Core 3.1 Release + - name: PublicRelease_31_Channel_Id + value: 129 + # Whether the build is internal or not - name: IsInternalBuild value: ${{ and(ne(variables['System.TeamProject'], 'public'), contains(variables['Build.SourceBranch'], 'internal')) }} diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml index 34667b6c09..ae376b7747 100644 --- a/eng/common/templates/post-build/post-build.yml +++ b/eng/common/templates/post-build/post-build.yml @@ -4,6 +4,7 @@ parameters: enableSymbolValidation: false enableNugetValidation: true publishInstallersAndChecksums: false + enableAzDONuGetFeeds: true SDLValidationParameters: enable: false continueOnError: false @@ -102,7 +103,14 @@ stages: artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} -- template: \eng\common\templates\post-build\channels\public-dev-release.yml +- template: \eng\common\templates\post-build\channels\netcore-dev-30.yml + parameters: + enableSymbolValidation: ${{ parameters.enableSymbolValidation }} + symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} + artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} + +- template: \eng\common\templates\post-build\channels\netcore-dev-31.yml parameters: enableSymbolValidation: ${{ parameters.enableSymbolValidation }} symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} @@ -115,18 +123,25 @@ stages: symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} + enableAzDONuGetFeeds: ${{ parameters.enableAzDONuGetFeeds }} - template: \eng\common\templates\post-build\channels\public-validation-release.yml parameters: artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} publishInstallersAndChecksums: ${{ parameters.publishInstallersAndChecksums }} + enableAzDONuGetFeeds: ${{ parameters.enableAzDONuGetFeeds }} -- template: \eng\common\templates\post-build\channels\public-release.yml +- template: \eng\common\templates\post-build\channels\netcore-release-30.yml parameters: symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} -- template: \eng\common\templates\post-build\channels\internal-servicing.yml +- template: \eng\common\templates\post-build\channels\netcore-release-31.yml + parameters: + symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} + artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} + +- template: \eng\common\templates\post-build\channels\netcore-internal-30.yml parameters: symbolPublishingAdditionalParameters: ${{ parameters.symbolPublishingAdditionalParameters }} artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} diff --git a/global.json b/global.json index 4a0dc91d0b..9792ab2144 100644 --- a/global.json +++ b/global.json @@ -24,7 +24,7 @@ }, "msbuild-sdks": { "Yarn.MSBuild": "1.15.2", - "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19430.3", - "Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19430.3" + "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19454.31", + "Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19454.31" } } From 91a6fcc93d96530f3d9ad15c2942ff167d2e8e46 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Fri, 6 Sep 2019 16:20:14 +0100 Subject: [PATCH 3/7] Improve reliability of globalization E2E tests (#13678) --- .../ServerExecutionTests/GlobalizationTest.cs | 49 +++++++------------ .../ServerExecutionTests/LocalizationTest.cs | 5 +- .../BasicTestApp/CulturePicker.razor | 2 +- .../Controllers/CultureController.cs | 8 ++- 4 files changed, 31 insertions(+), 33 deletions(-) diff --git a/src/Components/test/E2ETest/ServerExecutionTests/GlobalizationTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/GlobalizationTest.cs index ae4c699153..af0ef6980e 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/GlobalizationTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/GlobalizationTest.cs @@ -41,16 +41,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests public void CanSetCultureAndParseCultueSensitiveNumbersAndDates(string culture) { var cultureInfo = CultureInfo.GetCultureInfo(culture); - - var selector = new SelectElement(Browser.FindElement(By.Id("culture-selector"))); - selector.SelectByValue(culture); - - // That should have triggered a redirect, wait for the main test selector to come up. - MountTestComponent(); - WaitUntilExists(By.Id("globalization-cases")); - - var cultureDisplay = WaitUntilExists(By.Id("culture-name-display")); - Assert.Equal($"Culture is: {culture}", cultureDisplay.Text); + SetCulture(culture); // int var input = Browser.FindElement(By.Id("input_type_text_int")); @@ -113,16 +104,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests public void CanSetCultureAndParseCultureInvariantNumbersAndDatesWithInputFields(string culture) { var cultureInfo = CultureInfo.GetCultureInfo(culture); - - var selector = new SelectElement(Browser.FindElement(By.Id("culture-selector"))); - selector.SelectByValue(culture); - - // That should have triggered a redirect, wait for the main test selector to come up. - MountTestComponent(); - WaitUntilExists(By.Id("globalization-cases")); - - var cultureDisplay = WaitUntilExists(By.Id("culture-name-display")); - Assert.Equal($"Culture is: {culture}", cultureDisplay.Text); + SetCulture(culture); // int var input = Browser.FindElement(By.Id("input_type_number_int")); @@ -179,16 +161,7 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests public void CanSetCultureAndParseCultureInvariantNumbersAndDatesWithFormComponents(string culture) { var cultureInfo = CultureInfo.GetCultureInfo(culture); - - var selector = new SelectElement(Browser.FindElement(By.Id("culture-selector"))); - selector.SelectByValue(culture); - - // That should have triggered a redirect, wait for the main test selector to come up. - MountTestComponent(); - WaitUntilExists(By.Id("globalization-cases")); - - var cultureDisplay = WaitUntilExists(By.Id("culture-name-display")); - Assert.Equal($"Culture is: {culture}", cultureDisplay.Text); + SetCulture(culture); // int var input = Browser.FindElement(By.Id("inputnumber_int")); @@ -247,5 +220,21 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests element.SendKeys(Keys.Control + "a"); element.SendKeys(text); } + + private void SetCulture(string culture) + { + var selector = new SelectElement(Browser.FindElement(By.Id("culture-selector"))); + selector.SelectByValue(culture); + + // Click the link to return back to the test page + WaitUntilExists(By.ClassName("return-from-culture-setter")).Click(); + + // That should have triggered a page load, so wait for the main test selector to come up. + MountTestComponent(); + WaitUntilExists(By.Id("globalization-cases")); + + var cultureDisplay = WaitUntilExists(By.Id("culture-name-display")); + Assert.Equal($"Culture is: {culture}", cultureDisplay.Text); + } } } diff --git a/src/Components/test/E2ETest/ServerExecutionTests/LocalizationTest.cs b/src/Components/test/E2ETest/ServerExecutionTests/LocalizationTest.cs index 94faed00bc..3faa49879d 100644 --- a/src/Components/test/E2ETest/ServerExecutionTests/LocalizationTest.cs +++ b/src/Components/test/E2ETest/ServerExecutionTests/LocalizationTest.cs @@ -40,7 +40,10 @@ namespace Microsoft.AspNetCore.Components.E2ETest.ServerExecutionTests var selector = new SelectElement(Browser.FindElement(By.Id("culture-selector"))); selector.SelectByValue(culture); - // That should have triggered a redirect, wait for the main test selector to come up. + // Click the link to return back to the test page + WaitUntilExists(By.ClassName("return-from-culture-setter")).Click(); + + // That should have triggered a page load, so wait for the main test selector to come up. MountTestComponent(); var cultureDisplay = WaitUntilExists(By.Id("culture-name-display")); diff --git a/src/Components/test/testassets/BasicTestApp/CulturePicker.razor b/src/Components/test/testassets/BasicTestApp/CulturePicker.razor index 6e20528c69..7a367ba766 100644 --- a/src/Components/test/testassets/BasicTestApp/CulturePicker.razor +++ b/src/Components/test/testassets/BasicTestApp/CulturePicker.razor @@ -12,7 +12,7 @@ { // Included fragment to preserve choice of Blazor client or server. var redirect = new Uri(NavigationManager.Uri).GetComponents(UriComponents.PathAndQuery | UriComponents.Fragment, UriFormat.UriEscaped); - var query = $"?culture={Uri.EscapeDataString((string)e.Value)}&redirectUri={redirect}"; + var query = $"?culture={Uri.EscapeDataString((string)e.Value)}&redirectUri={Uri.EscapeDataString(redirect)}"; NavigationManager.NavigateTo("/Culture/SetCulture" + query, forceLoad: true); } } diff --git a/src/Components/test/testassets/TestServer/Controllers/CultureController.cs b/src/Components/test/testassets/TestServer/Controllers/CultureController.cs index f3cbaf8286..4466bb59c3 100644 --- a/src/Components/test/testassets/TestServer/Controllers/CultureController.cs +++ b/src/Components/test/testassets/TestServer/Controllers/CultureController.cs @@ -1,5 +1,8 @@ +using System.Text.Encodings.Web; using Microsoft.AspNetCore.Localization; using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.WebUtilities; +using Microsoft.Net.Http.Headers; namespace Components.TestServer.Controllers { @@ -15,7 +18,10 @@ namespace Components.TestServer.Controllers CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(culture))); } - return LocalRedirect(redirectUri); + var htmlEncoder = HtmlEncoder.Default; + var html = $"

Culture has been changed to {htmlEncoder.Encode(culture)}

" + + $"Return to previous page"; + return Content(html, "text/html"); } } } From 3e4c2a4c4fc2cb779005bcc49f177ff42397be36 Mon Sep 17 00:00:00 2001 From: John Luo Date: Fri, 6 Sep 2019 13:49:43 -0700 Subject: [PATCH 4/7] Ship Site Extensions package (#13693) --- .../Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/SiteExtensions/LoggingAggregate/src/Microsoft.AspNetCore.AzureAppServices.SiteExtension/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj b/src/SiteExtensions/LoggingAggregate/src/Microsoft.AspNetCore.AzureAppServices.SiteExtension/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj index 7054d0908d..e1f4b6d670 100644 --- a/src/SiteExtensions/LoggingAggregate/src/Microsoft.AspNetCore.AzureAppServices.SiteExtension/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj +++ b/src/SiteExtensions/LoggingAggregate/src/Microsoft.AspNetCore.AzureAppServices.SiteExtension/Microsoft.AspNetCore.AzureAppServices.SiteExtension.csproj @@ -15,6 +15,7 @@ true true true + true $(RestoreAdditionalProjectSources);$(ArtifactsNonShippingPackagesDir) From 8a8a0a5b827507ce62285d8dd547e77c335904d1 Mon Sep 17 00:00:00 2001 From: Justin Kotalik Date: Fri, 6 Sep 2019 15:02:11 -0700 Subject: [PATCH 5/7] Don't capture instance in Select for DataProtection. (#13743) * Don't capture instance in project on Select * Avoid capturing this by putting _logger in a local --- src/DataProtection/DataProtection.sln | 72 ++++++++++++------- .../src/EntityFrameworkCoreXmlRepository.cs | 11 +-- .../EntityFrameworkCoreSample/Program.cs | 6 +- 3 files changed, 56 insertions(+), 33 deletions(-) diff --git a/src/DataProtection/DataProtection.sln b/src/DataProtection/DataProtection.sln index 834c97a4fe..6726d0ab6d 100644 --- a/src/DataProtection/DataProtection.sln +++ b/src/DataProtection/DataProtection.sln @@ -5,71 +5,73 @@ VisualStudioVersion = 16.0.0.0 MinimumVisualStudioVersion = 16.0.0.0 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Abstractions", "Abstractions", "{ABD364B3-09A1-4CFE-8D26-FF6417DDEC84}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.DataProtection.Abstractions", "Abstractions\src\Microsoft.AspNetCore.DataProtection.Abstractions.csproj", "{18BE6FD1-1EB1-44AD-A3AE-398C990060F5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.DataProtection.Abstractions", "Abstractions\src\Microsoft.AspNetCore.DataProtection.Abstractions.csproj", "{18BE6FD1-1EB1-44AD-A3AE-398C990060F5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.DataProtection.Abstractions.Tests", "Abstractions\test\Microsoft.AspNetCore.DataProtection.Abstractions.Tests.csproj", "{CEDC6CD0-0276-4C45-9B57-C222516840B9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.DataProtection.Abstractions.Tests", "Abstractions\test\Microsoft.AspNetCore.DataProtection.Abstractions.Tests.csproj", "{CEDC6CD0-0276-4C45-9B57-C222516840B9}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AzureKeyVault", "AzureKeyVault", "{695602EE-F2FD-4B9B-AF84-9208AE552B9E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.DataProtection.AzureKeyVault", "AzureKeyVault\src\Microsoft.AspNetCore.DataProtection.AzureKeyVault.csproj", "{DDA72406-95B8-4A67-A994-F1E5F2506126}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.DataProtection.AzureKeyVault", "AzureKeyVault\src\Microsoft.AspNetCore.DataProtection.AzureKeyVault.csproj", "{DDA72406-95B8-4A67-A994-F1E5F2506126}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.DataProtection.AzureKeyVault.Tests", "AzureKeyVault\test\Microsoft.AspNetCore.DataProtection.AzureKeyVault.Tests.csproj", "{0C2EE847-D78B-46FD-AB73-EAB8200C9138}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.DataProtection.AzureKeyVault.Tests", "AzureKeyVault\test\Microsoft.AspNetCore.DataProtection.AzureKeyVault.Tests.csproj", "{0C2EE847-D78B-46FD-AB73-EAB8200C9138}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AzureStorage", "AzureStorage", "{5CD76E65-363F-4CD5-B01D-2DF5DC16CB64}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.DataProtection.AzureStorage", "AzureStorage\src\Microsoft.AspNetCore.DataProtection.AzureStorage.csproj", "{22860B07-A42B-4757-9208-7D6BDB2B48F3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.DataProtection.AzureStorage", "AzureStorage\src\Microsoft.AspNetCore.DataProtection.AzureStorage.csproj", "{22860B07-A42B-4757-9208-7D6BDB2B48F3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.DataProtection.AzureStorage.Tests", "AzureStorage\test\Microsoft.AspNetCore.DataProtection.AzureStorage.Tests.csproj", "{C36DAB08-F641-4C5A-86C0-3CC39FC779D9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.DataProtection.AzureStorage.Tests", "AzureStorage\test\Microsoft.AspNetCore.DataProtection.AzureStorage.Tests.csproj", "{C36DAB08-F641-4C5A-86C0-3CC39FC779D9}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Cryptography.Internal", "Cryptography.Internal", "{A5DE8834-6C9B-47A6-9CDC-AAB83C776F19}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.Cryptography.Internal", "Cryptography.Internal\src\Microsoft.AspNetCore.Cryptography.Internal.csproj", "{93B3396D-0234-4D4E-A85B-4A391E0C6FE0}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Cryptography.Internal", "Cryptography.Internal\src\Microsoft.AspNetCore.Cryptography.Internal.csproj", "{93B3396D-0234-4D4E-A85B-4A391E0C6FE0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.Cryptography.Internal.Tests", "Cryptography.Internal\test\Microsoft.AspNetCore.Cryptography.Internal.Tests.csproj", "{14FD172E-4134-4712-AE77-524208FFEA1C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Cryptography.Internal.Tests", "Cryptography.Internal\test\Microsoft.AspNetCore.Cryptography.Internal.Tests.csproj", "{14FD172E-4134-4712-AE77-524208FFEA1C}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Cryptography.KeyDerivation", "Cryptography.KeyDerivation", "{EFADD18C-A0D7-4F51-AEAB-9E3346A208BF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.Cryptography.KeyDerivation", "Cryptography.KeyDerivation\src\Microsoft.AspNetCore.Cryptography.KeyDerivation.csproj", "{A82BAE81-24E3-48DF-96BA-C8A6FEDD274A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Cryptography.KeyDerivation", "Cryptography.KeyDerivation\src\Microsoft.AspNetCore.Cryptography.KeyDerivation.csproj", "{A82BAE81-24E3-48DF-96BA-C8A6FEDD274A}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.Cryptography.KeyDerivation.Tests", "Cryptography.KeyDerivation\test\Microsoft.AspNetCore.Cryptography.KeyDerivation.Tests.csproj", "{3121B1B2-92C8-4049-94E7-CB0A8D83A7E6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.Cryptography.KeyDerivation.Tests", "Cryptography.KeyDerivation\test\Microsoft.AspNetCore.Cryptography.KeyDerivation.Tests.csproj", "{3121B1B2-92C8-4049-94E7-CB0A8D83A7E6}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DataProtection", "DataProtection", "{78481E7D-CD56-4700-A2FD-C8EAE9F0B51B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.DataProtection", "DataProtection\src\Microsoft.AspNetCore.DataProtection.csproj", "{B590E838-37CE-4651-835B-7F83A6C987CE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.DataProtection", "DataProtection\src\Microsoft.AspNetCore.DataProtection.csproj", "{B590E838-37CE-4651-835B-7F83A6C987CE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.DataProtection.Tests", "DataProtection\test\Microsoft.AspNetCore.DataProtection.Tests.csproj", "{4C48D2E2-789D-4ECF-8FB7-ADC46BC7A463}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.DataProtection.Tests", "DataProtection\test\Microsoft.AspNetCore.DataProtection.Tests.csproj", "{4C48D2E2-789D-4ECF-8FB7-ADC46BC7A463}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Extensions", "Extensions", "{361B9ACA-DCA4-4C1B-A071-906348E849C0}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.DataProtection.Extensions", "Extensions\src\Microsoft.AspNetCore.DataProtection.Extensions.csproj", "{7A64B793-719C-4EEE-A8FA-87AAABCC29AC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.DataProtection.Extensions", "Extensions\src\Microsoft.AspNetCore.DataProtection.Extensions.csproj", "{7A64B793-719C-4EEE-A8FA-87AAABCC29AC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.DataProtection.Extensions.Tests", "Extensions\test\Microsoft.AspNetCore.DataProtection.Extensions.Tests.csproj", "{DC6D371D-200A-40D9-B4BE-C9202C27A863}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.DataProtection.Extensions.Tests", "Extensions\test\Microsoft.AspNetCore.DataProtection.Extensions.Tests.csproj", "{DC6D371D-200A-40D9-B4BE-C9202C27A863}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "StackExchangeRedis", "StackExchangeRedis", "{1A2E71DA-8DFE-4DDA-B713-14B5F2B8EBAE}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.DataProtection.StackExchangeRedis", "StackExchangeRedis\src\Microsoft.AspNetCore.DataProtection.StackExchangeRedis.csproj", "{0FEAE8C5-4EAF-4E87-9A07-69FCE19B31D7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.DataProtection.StackExchangeRedis", "StackExchangeRedis\src\Microsoft.AspNetCore.DataProtection.StackExchangeRedis.csproj", "{0FEAE8C5-4EAF-4E87-9A07-69FCE19B31D7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.DataProtection.StackExchangeRedis.Tests", "StackExchangeRedis\test\Microsoft.AspNetCore.DataProtection.StackExchangeRedis.Tests.csproj", "{8A71D3B4-D617-4960-8616-A196FBF351FE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.DataProtection.StackExchangeRedis.Tests", "StackExchangeRedis\test\Microsoft.AspNetCore.DataProtection.StackExchangeRedis.Tests.csproj", "{8A71D3B4-D617-4960-8616-A196FBF351FE}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{9DF098B3-C8ED-471C-AE03-52E3196C1811}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AzureBlob", "samples\AzureBlob\AzureBlob.csproj", "{BB197CC9-04B8-4BC7-BB2E-703798B82FD4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AzureBlob", "samples\AzureBlob\AzureBlob.csproj", "{BB197CC9-04B8-4BC7-BB2E-703798B82FD4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AzureKeyVault", "samples\AzureKeyVault\AzureKeyVault.csproj", "{D8E4ED57-3D14-4453-A2FE-D36C97AE4273}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AzureKeyVault", "samples\AzureKeyVault\AzureKeyVault.csproj", "{D8E4ED57-3D14-4453-A2FE-D36C97AE4273}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CustomEncryptorSample", "samples\CustomEncryptorSample\CustomEncryptorSample.csproj", "{9824655A-4BBF-418E-A7D9-3DA52D98D16D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CustomEncryptorSample", "samples\CustomEncryptorSample\CustomEncryptorSample.csproj", "{9824655A-4BBF-418E-A7D9-3DA52D98D16D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeyManagementSample", "samples\KeyManagementSample\KeyManagementSample.csproj", "{03406538-75CB-4655-B210-643FE11A2B00}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KeyManagementSample", "samples\KeyManagementSample\KeyManagementSample.csproj", "{03406538-75CB-4655-B210-643FE11A2B00}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NonDISample", "samples\NonDISample\NonDISample.csproj", "{C5C425C8-5626-409B-9A81-4DC496CE41F4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NonDISample", "samples\NonDISample\NonDISample.csproj", "{C5C425C8-5626-409B-9A81-4DC496CE41F4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Redis", "samples\Redis\Redis.csproj", "{E578D5C2-76AD-4A9B-A4F0-3A74D7ACD98E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Redis", "samples\Redis\Redis.csproj", "{E578D5C2-76AD-4A9B-A4F0-3A74D7ACD98E}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EntityFrameworkCore", "EntityFrameworkCore", "{64FD02D7-B6F4-4C77-A3F8-E6BD6404168E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.DataProtection.EntityFrameworkCore", "EntityFrameworkCore\src\Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.csproj", "{8A7D0D2D-A5F1-4DF7-BBAA-9A0EFDBB5224}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.DataProtection.EntityFrameworkCore", "EntityFrameworkCore\src\Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.csproj", "{8A7D0D2D-A5F1-4DF7-BBAA-9A0EFDBB5224}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.Test", "EntityFrameworkCore\test\Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.Test.csproj", "{74CE0E8B-DE23-4B53-8D02-69D6FB849ADC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.Test", "EntityFrameworkCore\test\Microsoft.AspNetCore.DataProtection.EntityFrameworkCore.Test.csproj", "{74CE0E8B-DE23-4B53-8D02-69D6FB849ADC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EntityFrameworkCoreSample", "samples\EntityFrameworkCoreSample\EntityFrameworkCoreSample.csproj", "{DA4C8B07-05F5-4C59-A578-7438E9BFF79F}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -80,9 +82,6 @@ Global Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {18BE6FD1-1EB1-44AD-A3AE-398C990060F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {18BE6FD1-1EB1-44AD-A3AE-398C990060F5}.Debug|Any CPU.Build.0 = Debug|Any CPU @@ -372,6 +371,21 @@ Global {74CE0E8B-DE23-4B53-8D02-69D6FB849ADC}.Release|x64.Build.0 = Release|Any CPU {74CE0E8B-DE23-4B53-8D02-69D6FB849ADC}.Release|x86.ActiveCfg = Release|Any CPU {74CE0E8B-DE23-4B53-8D02-69D6FB849ADC}.Release|x86.Build.0 = Release|Any CPU + {DA4C8B07-05F5-4C59-A578-7438E9BFF79F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DA4C8B07-05F5-4C59-A578-7438E9BFF79F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DA4C8B07-05F5-4C59-A578-7438E9BFF79F}.Debug|x64.ActiveCfg = Debug|Any CPU + {DA4C8B07-05F5-4C59-A578-7438E9BFF79F}.Debug|x64.Build.0 = Debug|Any CPU + {DA4C8B07-05F5-4C59-A578-7438E9BFF79F}.Debug|x86.ActiveCfg = Debug|Any CPU + {DA4C8B07-05F5-4C59-A578-7438E9BFF79F}.Debug|x86.Build.0 = Debug|Any CPU + {DA4C8B07-05F5-4C59-A578-7438E9BFF79F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DA4C8B07-05F5-4C59-A578-7438E9BFF79F}.Release|Any CPU.Build.0 = Release|Any CPU + {DA4C8B07-05F5-4C59-A578-7438E9BFF79F}.Release|x64.ActiveCfg = Release|Any CPU + {DA4C8B07-05F5-4C59-A578-7438E9BFF79F}.Release|x64.Build.0 = Release|Any CPU + {DA4C8B07-05F5-4C59-A578-7438E9BFF79F}.Release|x86.ActiveCfg = Release|Any CPU + {DA4C8B07-05F5-4C59-A578-7438E9BFF79F}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {18BE6FD1-1EB1-44AD-A3AE-398C990060F5} = {ABD364B3-09A1-4CFE-8D26-FF6417DDEC84} @@ -398,5 +412,9 @@ Global {E578D5C2-76AD-4A9B-A4F0-3A74D7ACD98E} = {9DF098B3-C8ED-471C-AE03-52E3196C1811} {8A7D0D2D-A5F1-4DF7-BBAA-9A0EFDBB5224} = {64FD02D7-B6F4-4C77-A3F8-E6BD6404168E} {74CE0E8B-DE23-4B53-8D02-69D6FB849ADC} = {64FD02D7-B6F4-4C77-A3F8-E6BD6404168E} + {DA4C8B07-05F5-4C59-A578-7438E9BFF79F} = {9DF098B3-C8ED-471C-AE03-52E3196C1811} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {EA6767C5-D46B-4DE7-AB1A-E5244F122C64} EndGlobalSection EndGlobal diff --git a/src/DataProtection/EntityFrameworkCore/src/EntityFrameworkCoreXmlRepository.cs b/src/DataProtection/EntityFrameworkCore/src/EntityFrameworkCoreXmlRepository.cs index 62250cf3ef..3af024996a 100644 --- a/src/DataProtection/EntityFrameworkCore/src/EntityFrameworkCoreXmlRepository.cs +++ b/src/DataProtection/EntityFrameworkCore/src/EntityFrameworkCoreXmlRepository.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -43,7 +43,10 @@ namespace Microsoft.AspNetCore.DataProtection.EntityFrameworkCore using (var scope = _services.CreateScope()) { var context = scope.ServiceProvider.GetRequiredService(); - return context.DataProtectionKeys.AsNoTracking().Select(key => TryParseKeyXml(key.Xml)).ToList().AsReadOnly(); + + // Put logger in a local such that `this` isn't captured. + var logger = _logger; + return context.DataProtectionKeys.AsNoTracking().Select(key => TryParseKeyXml(key.Xml, logger)).ToList().AsReadOnly(); } } @@ -65,7 +68,7 @@ namespace Microsoft.AspNetCore.DataProtection.EntityFrameworkCore } } - private XElement TryParseKeyXml(string xml) + private static XElement TryParseKeyXml(string xml, ILogger logger) { try { @@ -73,7 +76,7 @@ namespace Microsoft.AspNetCore.DataProtection.EntityFrameworkCore } catch (Exception e) { - _logger?.LogExceptionWhileParsingKeyXml(xml, e); + logger?.LogExceptionWhileParsingKeyXml(xml, e); return null; } } diff --git a/src/DataProtection/samples/EntityFrameworkCoreSample/Program.cs b/src/DataProtection/samples/EntityFrameworkCoreSample/Program.cs index d4e978a7b8..896fcf2b52 100644 --- a/src/DataProtection/samples/EntityFrameworkCoreSample/Program.cs +++ b/src/DataProtection/samples/EntityFrameworkCoreSample/Program.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -20,6 +20,8 @@ namespace EntityFrameworkCoreSample .AddDbContext(o => { o.UseInMemoryDatabase("DataProtection_EntityFrameworkCore"); + // Make sure to create a sql server called DataProtectionApp + //o.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=DataProtectionApp;Trusted_Connection=True;Connect Timeout=5;ConnectRetryCount=0"); o.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking); o.EnableSensitiveDataLogging(); }) @@ -29,7 +31,7 @@ namespace EntityFrameworkCoreSample .Services .BuildServiceProvider(validateScopes: true); - using(services) + using (services) { // Run a sample payload var protector = services.GetDataProtector("sample-purpose"); From c3fa16970d7a4f80d079b69468f38228ff0e5f84 Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Sat, 7 Sep 2019 02:39:47 +0200 Subject: [PATCH 6/7] [ApiAuth] Update partner dependencies to their final versions (#13260) * Update oidc-client dependency to 1.9.4 * Update to the Identity Server 4 RTM version * Updated entity framework migrations --- eng/Versions.props | 10 +++++----- ...ityServerBuilderConfigurationExtensions.cs | 11 +++++++++-- .../ClientApp/package-lock.json | 6 +++--- .../Angular-CSharp/ClientApp/package.json | 2 +- ...000000000_CreateIdentitySchema.Designer.cs | 8 +++++--- .../00000000000000_CreateIdentitySchema.cs | 9 +++++++-- .../ApplicationDbContextModelSnapshot.cs | 6 ++++-- ...000000000_CreateIdentitySchema.Designer.cs | 6 ++++-- .../00000000000000_CreateIdentitySchema.cs | 9 +++++++-- .../ApplicationDbContextModelSnapshot.cs | 6 ++++-- .../content/Angular-CSharp/app.db | Bin 131072 -> 135168 bytes .../React-CSharp/ClientApp/package-lock.json | 6 +++--- .../React-CSharp/ClientApp/package.json | 2 +- ...000000000_CreateIdentitySchema.Designer.cs | 8 +++++--- .../00000000000000_CreateIdentitySchema.cs | 9 +++++++-- .../ApplicationDbContextModelSnapshot.cs | 6 ++++-- ...000000000_CreateIdentitySchema.Designer.cs | 6 ++++-- .../00000000000000_CreateIdentitySchema.cs | 9 +++++++-- .../ApplicationDbContextModelSnapshot.cs | 6 ++++-- .../content/React-CSharp/app.db | Bin 131072 -> 135168 bytes 20 files changed, 84 insertions(+), 41 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index 160636e5f0..7000a916c2 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -226,11 +226,11 @@ 4.2.1 3.8.0 0.2.23-pre1 - 3.0.0-preview7.33 - 3.0.0-preview7.33 - 3.0.0-preview7.33 - 3.0.0-preview7.33 - 3.0.0-preview7.33 + 3.0.0 + 3.0.0 + 3.0.0 + 3.0.0 + 3.0.0 1.7.3.7 4.10.0 0.10.1 diff --git a/src/Identity/ApiAuthorization.IdentityServer/src/IdentityServerBuilderConfigurationExtensions.cs b/src/Identity/ApiAuthorization.IdentityServer/src/IdentityServerBuilderConfigurationExtensions.cs index 3633568730..b6e2fac1c8 100644 --- a/src/Identity/ApiAuthorization.IdentityServer/src/IdentityServerBuilderConfigurationExtensions.cs +++ b/src/Identity/ApiAuthorization.IdentityServer/src/IdentityServerBuilderConfigurationExtensions.cs @@ -1,4 +1,4 @@ -// Copyright (c) .NET Foundation. All rights reserved. +// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System; @@ -236,7 +236,14 @@ namespace Microsoft.Extensions.DependencyInjection builder.Services.AddSingleton(sp => { var options = sp.GetRequiredService>(); - return new DefaultValidationKeysStore(new[] { options.Value.SigningCredential.Key }); + return new DefaultValidationKeysStore(new[] + { + new SecurityKeyInfo + { + Key = options.Value.SigningCredential.Key, + SigningAlgorithm = options.Value.SigningCredential.Algorithm + } + }); }); return builder; diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/package-lock.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/package-lock.json index 1318c47924..ac403abd0f 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/package-lock.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/package-lock.json @@ -7157,9 +7157,9 @@ "dev": true }, "oidc-client": { - "version": "1.9.0-beta.4", - "resolved": "https://registry.npmjs.org/oidc-client/-/oidc-client-1.9.0-beta.4.tgz", - "integrity": "sha512-BE6o220w9kDTicmsX324Z5t3Gg20G9NgQjCOFP6SUY7glJYBohyw9DVPt/khPmmg+wabufJq1tH2zyEadMf7Pw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/oidc-client/-/oidc-client-1.9.0.tgz", + "integrity": "sha512-fJradf/BsRYh96YzWPlm38DRQJRg1wm1nZU21OX8P9NBNxBXRems9BmvOIoh8sO8Y7gmMemESOn4A2TgId+36g==", "requires": { "base64-js": "^1.3.0", "core-js": "^2.6.4", diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/package.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/package.json index c30b740221..31a5c34692 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/package.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/ClientApp/package.json @@ -26,7 +26,7 @@ "bootstrap": "^4.3.1", "core-js": "^2.6.5", "jquery": "3.4.1", - "oidc-client": "^1.9.0-beta.4", + "oidc-client": "^1.9.0", "popper.js": "^1.14.3", "rxjs": "^6.4.0", "zone.js": "~0.9.1" diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLServer/00000000000000_CreateIdentitySchema.Designer.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLServer/00000000000000_CreateIdentitySchema.Designer.cs index d79b0e6698..c17ab45e19 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLServer/00000000000000_CreateIdentitySchema.Designer.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLServer/00000000000000_CreateIdentitySchema.Designer.cs @@ -10,14 +10,14 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace Company.WebApplication1.Data.Migrations { [DbContext(typeof(ApplicationDbContext))] - [Migration("20190808120446_CreateIdentitySchema")] + [Migration("00000000000000_CreateIdentitySchema")] partial class CreateIdentitySchema { protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "3.0.0-preview9.19405.13") + .HasAnnotation("ProductVersion", "3.0.0-rc1.19455.8") .HasAnnotation("Relational:MaxIdentifierLength", 128) .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); @@ -161,7 +161,9 @@ namespace Company.WebApplication1.Data.Migrations b.HasKey("Key"); - b.HasIndex("SubjectId", "ClientId", "Type", "Expiration"); + b.HasIndex("Expiration"); + + b.HasIndex("SubjectId", "ClientId", "Type"); b.ToTable("PersistedGrants"); }); diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLServer/00000000000000_CreateIdentitySchema.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLServer/00000000000000_CreateIdentitySchema.cs index 151e8b2206..ce9a727d1a 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLServer/00000000000000_CreateIdentitySchema.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLServer/00000000000000_CreateIdentitySchema.cs @@ -237,9 +237,14 @@ namespace Company.WebApplication1.Data.Migrations column: "Expiration"); migrationBuilder.CreateIndex( - name: "IX_PersistedGrants_SubjectId_ClientId_Type_Expiration", + name: "IX_PersistedGrants_Expiration", table: "PersistedGrants", - columns: new[] { "SubjectId", "ClientId", "Type", "Expiration" }); + column: "Expiration"); + + migrationBuilder.CreateIndex( + name: "IX_PersistedGrants_SubjectId_ClientId_Type", + table: "PersistedGrants", + columns: new[] { "SubjectId", "ClientId", "Type" }); } protected override void Down(MigrationBuilder migrationBuilder) diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLServer/ApplicationDbContextModelSnapshot.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLServer/ApplicationDbContextModelSnapshot.cs index 6f19b5d805..0ce86894d5 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLServer/ApplicationDbContextModelSnapshot.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLServer/ApplicationDbContextModelSnapshot.cs @@ -15,7 +15,7 @@ namespace Company.WebApplication1.Data.Migrations { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "3.0.0-preview9.19405.13") + .HasAnnotation("ProductVersion", "3.0.0-rc1.19455.8") .HasAnnotation("Relational:MaxIdentifierLength", 128) .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); @@ -159,7 +159,9 @@ namespace Company.WebApplication1.Data.Migrations b.HasKey("Key"); - b.HasIndex("SubjectId", "ClientId", "Type", "Expiration"); + b.HasIndex("Expiration"); + + b.HasIndex("SubjectId", "ClientId", "Type"); b.ToTable("PersistedGrants"); }); diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLite/00000000000000_CreateIdentitySchema.Designer.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLite/00000000000000_CreateIdentitySchema.Designer.cs index 445f3f946d..3a8bebcf4d 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLite/00000000000000_CreateIdentitySchema.Designer.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLite/00000000000000_CreateIdentitySchema.Designer.cs @@ -16,7 +16,7 @@ namespace Company.WebApplication1.Data.Migrations { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "3.0.0-preview9.19405.13"); + .HasAnnotation("ProductVersion", "3.0.0-rc1.19455.8"); modelBuilder.Entity("Company.WebApplication1.Models.ApplicationUser", b => { @@ -157,7 +157,9 @@ namespace Company.WebApplication1.Data.Migrations b.HasKey("Key"); - b.HasIndex("SubjectId", "ClientId", "Type", "Expiration"); + b.HasIndex("Expiration"); + + b.HasIndex("SubjectId", "ClientId", "Type"); b.ToTable("PersistedGrants"); }); diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLite/00000000000000_CreateIdentitySchema.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLite/00000000000000_CreateIdentitySchema.cs index 19502e4c12..8ffa93f693 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLite/00000000000000_CreateIdentitySchema.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLite/00000000000000_CreateIdentitySchema.cs @@ -235,9 +235,14 @@ namespace Company.WebApplication1.Data.Migrations column: "Expiration"); migrationBuilder.CreateIndex( - name: "IX_PersistedGrants_SubjectId_ClientId_Type_Expiration", + name: "IX_PersistedGrants_Expiration", table: "PersistedGrants", - columns: new[] { "SubjectId", "ClientId", "Type", "Expiration" }); + column: "Expiration"); + + migrationBuilder.CreateIndex( + name: "IX_PersistedGrants_SubjectId_ClientId_Type", + table: "PersistedGrants", + columns: new[] { "SubjectId", "ClientId", "Type" }); } protected override void Down(MigrationBuilder migrationBuilder) diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLite/ApplicationDbContextModelSnapshot.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLite/ApplicationDbContextModelSnapshot.cs index 00494952dd..52809076bf 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLite/ApplicationDbContextModelSnapshot.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/Data/SQLite/ApplicationDbContextModelSnapshot.cs @@ -14,7 +14,7 @@ namespace Company.WebApplication1.Data.Migrations { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "3.0.0-preview9.19405.13"); + .HasAnnotation("ProductVersion", "3.0.0-rc1.19455.8"); modelBuilder.Entity("Company.WebApplication1.Models.ApplicationUser", b => { @@ -155,7 +155,9 @@ namespace Company.WebApplication1.Data.Migrations b.HasKey("Key"); - b.HasIndex("SubjectId", "ClientId", "Type", "Expiration"); + b.HasIndex("Expiration"); + + b.HasIndex("SubjectId", "ClientId", "Type"); b.ToTable("PersistedGrants"); }); diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/app.db b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/Angular-CSharp/app.db index d28dbed8379b1f0a5fa75a46ac181886511455f8..1f4261428921fa7da2622f12eeb1399f23023b2c 100644 GIT binary patch delta 191 zcmZo@;AmLDF+rYJkpTfjH|pHtXF1Nme|)o`!d`w>b4KQ1{mFOrl?9FU4D<|ii;@lX z3@uGeP4z6A6t*cavKTN6Gi{vC9>A!=oW-DY&nk#8Ga>}xcy8|`of;D(X#G|R69u&-I UGksYwqw@Aw!Hi;S7C8t2084x}ssI20 delta 136 zcmZozz|qjaF+rYJfdK(THtO8sXF15ge{i#)!ghXETSn$!>&bWZl_$TKXA>+aN-fJw zEw|J&v@|g=)iX41QrM=z$YQ`O#4I_TJ%CY#QF61Oz*{D+#wb~K@p5g(Ci&^RgBbOv gcLy`tOqUL36rX-9m{DcAcQB(Ila9jnmq3v<00s^tbpQYW diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/package-lock.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/package-lock.json index d603279670..d608850055 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/package-lock.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/package-lock.json @@ -8565,9 +8565,9 @@ "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" }, "oidc-client": { - "version": "1.9.0-beta.4", - "resolved": "https://registry.npmjs.org/oidc-client/-/oidc-client-1.9.0-beta.4.tgz", - "integrity": "sha512-BE6o220w9kDTicmsX324Z5t3Gg20G9NgQjCOFP6SUY7glJYBohyw9DVPt/khPmmg+wabufJq1tH2zyEadMf7Pw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/oidc-client/-/oidc-client-1.9.0.tgz", + "integrity": "sha512-fJradf/BsRYh96YzWPlm38DRQJRg1wm1nZU21OX8P9NBNxBXRems9BmvOIoh8sO8Y7gmMemESOn4A2TgId+36g==", "requires": { "base64-js": "^1.3.0", "core-js": "^2.6.4", diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/package.json b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/package.json index 83352c75b3..7bcbc8e8a4 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/package.json +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/ClientApp/package.json @@ -7,7 +7,7 @@ "bootstrap": "^4.1.3", "jquery": "^3.4.1", "merge": "^1.2.1", - "oidc-client": "^1.9.0-beta.4", + "oidc-client": "^1.9.0", "react": "^16.0.0", "react-dom": "^16.0.0", "react-router-bootstrap": "^0.24.4", diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLServer/00000000000000_CreateIdentitySchema.Designer.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLServer/00000000000000_CreateIdentitySchema.Designer.cs index d79b0e6698..c17ab45e19 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLServer/00000000000000_CreateIdentitySchema.Designer.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLServer/00000000000000_CreateIdentitySchema.Designer.cs @@ -10,14 +10,14 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace Company.WebApplication1.Data.Migrations { [DbContext(typeof(ApplicationDbContext))] - [Migration("20190808120446_CreateIdentitySchema")] + [Migration("00000000000000_CreateIdentitySchema")] partial class CreateIdentitySchema { protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "3.0.0-preview9.19405.13") + .HasAnnotation("ProductVersion", "3.0.0-rc1.19455.8") .HasAnnotation("Relational:MaxIdentifierLength", 128) .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); @@ -161,7 +161,9 @@ namespace Company.WebApplication1.Data.Migrations b.HasKey("Key"); - b.HasIndex("SubjectId", "ClientId", "Type", "Expiration"); + b.HasIndex("Expiration"); + + b.HasIndex("SubjectId", "ClientId", "Type"); b.ToTable("PersistedGrants"); }); diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLServer/00000000000000_CreateIdentitySchema.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLServer/00000000000000_CreateIdentitySchema.cs index 151e8b2206..ce9a727d1a 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLServer/00000000000000_CreateIdentitySchema.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLServer/00000000000000_CreateIdentitySchema.cs @@ -237,9 +237,14 @@ namespace Company.WebApplication1.Data.Migrations column: "Expiration"); migrationBuilder.CreateIndex( - name: "IX_PersistedGrants_SubjectId_ClientId_Type_Expiration", + name: "IX_PersistedGrants_Expiration", table: "PersistedGrants", - columns: new[] { "SubjectId", "ClientId", "Type", "Expiration" }); + column: "Expiration"); + + migrationBuilder.CreateIndex( + name: "IX_PersistedGrants_SubjectId_ClientId_Type", + table: "PersistedGrants", + columns: new[] { "SubjectId", "ClientId", "Type" }); } protected override void Down(MigrationBuilder migrationBuilder) diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLServer/ApplicationDbContextModelSnapshot.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLServer/ApplicationDbContextModelSnapshot.cs index 6f19b5d805..0ce86894d5 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLServer/ApplicationDbContextModelSnapshot.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLServer/ApplicationDbContextModelSnapshot.cs @@ -15,7 +15,7 @@ namespace Company.WebApplication1.Data.Migrations { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "3.0.0-preview9.19405.13") + .HasAnnotation("ProductVersion", "3.0.0-rc1.19455.8") .HasAnnotation("Relational:MaxIdentifierLength", 128) .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); @@ -159,7 +159,9 @@ namespace Company.WebApplication1.Data.Migrations b.HasKey("Key"); - b.HasIndex("SubjectId", "ClientId", "Type", "Expiration"); + b.HasIndex("Expiration"); + + b.HasIndex("SubjectId", "ClientId", "Type"); b.ToTable("PersistedGrants"); }); diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLite/00000000000000_CreateIdentitySchema.Designer.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLite/00000000000000_CreateIdentitySchema.Designer.cs index 445f3f946d..3a8bebcf4d 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLite/00000000000000_CreateIdentitySchema.Designer.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLite/00000000000000_CreateIdentitySchema.Designer.cs @@ -16,7 +16,7 @@ namespace Company.WebApplication1.Data.Migrations { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "3.0.0-preview9.19405.13"); + .HasAnnotation("ProductVersion", "3.0.0-rc1.19455.8"); modelBuilder.Entity("Company.WebApplication1.Models.ApplicationUser", b => { @@ -157,7 +157,9 @@ namespace Company.WebApplication1.Data.Migrations b.HasKey("Key"); - b.HasIndex("SubjectId", "ClientId", "Type", "Expiration"); + b.HasIndex("Expiration"); + + b.HasIndex("SubjectId", "ClientId", "Type"); b.ToTable("PersistedGrants"); }); diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLite/00000000000000_CreateIdentitySchema.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLite/00000000000000_CreateIdentitySchema.cs index 19502e4c12..8ffa93f693 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLite/00000000000000_CreateIdentitySchema.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLite/00000000000000_CreateIdentitySchema.cs @@ -235,9 +235,14 @@ namespace Company.WebApplication1.Data.Migrations column: "Expiration"); migrationBuilder.CreateIndex( - name: "IX_PersistedGrants_SubjectId_ClientId_Type_Expiration", + name: "IX_PersistedGrants_Expiration", table: "PersistedGrants", - columns: new[] { "SubjectId", "ClientId", "Type", "Expiration" }); + column: "Expiration"); + + migrationBuilder.CreateIndex( + name: "IX_PersistedGrants_SubjectId_ClientId_Type", + table: "PersistedGrants", + columns: new[] { "SubjectId", "ClientId", "Type" }); } protected override void Down(MigrationBuilder migrationBuilder) diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLite/ApplicationDbContextModelSnapshot.cs b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLite/ApplicationDbContextModelSnapshot.cs index 00494952dd..52809076bf 100644 --- a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLite/ApplicationDbContextModelSnapshot.cs +++ b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/Data/SQLite/ApplicationDbContextModelSnapshot.cs @@ -14,7 +14,7 @@ namespace Company.WebApplication1.Data.Migrations { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "3.0.0-preview9.19405.13"); + .HasAnnotation("ProductVersion", "3.0.0-rc1.19455.8"); modelBuilder.Entity("Company.WebApplication1.Models.ApplicationUser", b => { @@ -155,7 +155,9 @@ namespace Company.WebApplication1.Data.Migrations b.HasKey("Key"); - b.HasIndex("SubjectId", "ClientId", "Type", "Expiration"); + b.HasIndex("Expiration"); + + b.HasIndex("SubjectId", "ClientId", "Type"); b.ToTable("PersistedGrants"); }); diff --git a/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/app.db b/src/ProjectTemplates/Web.Spa.ProjectTemplates/content/React-CSharp/app.db index d28dbed8379b1f0a5fa75a46ac181886511455f8..1f4261428921fa7da2622f12eeb1399f23023b2c 100644 GIT binary patch delta 191 zcmZo@;AmLDF+rYJkpTfjH|pHtXF1Nme|)o`!d`w>b4KQ1{mFOrl?9FU4D<|ii;@lX z3@uGeP4z6A6t*cavKTN6Gi{vC9>A!=oW-DY&nk#8Ga>}xcy8|`of;D(X#G|R69u&-I UGksYwqw@Aw!Hi;S7C8t2084x}ssI20 delta 136 zcmZozz|qjaF+rYJfdK(THtO8sXF15ge{i#)!ghXETSn$!>&bWZl_$TKXA>+aN-fJw zEw|J&v@|g=)iX41QrM=z$YQ`O#4I_TJ%CY#QF61Oz*{D+#wb~K@p5g(Ci&^RgBbOv gcLy`tOqUL36rX-9m{DcAcQB(Ila9jnmq3v<00s^tbpQYW From 1db76280aeeba3de5c45c07b67e3f235757b5479 Mon Sep 17 00:00:00 2001 From: Justin Kotalik Date: Fri, 6 Sep 2019 23:01:19 -0700 Subject: [PATCH 7/7] Don't call complete outside of main request loop (#13728) --- .../Core/src/Internal/Http/HttpProtocol.cs | 5 +- .../src/Internal/Http2/Http2OutputProducer.cs | 46 ++++++++++++------- .../Http2/Http2StreamTests.cs | 46 +++++++++++++++++++ 3 files changed, 78 insertions(+), 19 deletions(-) diff --git a/src/Servers/Kestrel/Core/src/Internal/Http/HttpProtocol.cs b/src/Servers/Kestrel/Core/src/Internal/Http/HttpProtocol.cs index 9320980de2..7f10c3af64 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http/HttpProtocol.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http/HttpProtocol.cs @@ -1009,6 +1009,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http return Task.CompletedTask; } + _isLeasedMemoryInvalid = true; + if (_requestRejectedException != null || _applicationException != null) { if (HasResponseStarted) @@ -1339,8 +1341,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http if (_isLeasedMemoryInvalid) { - throw new InvalidOperationException("Invalid ordering of calling StartAsync and Advance. " + - "Call StartAsync before calling GetMemory/GetSpan and Advance."); + throw new InvalidOperationException("Invalid ordering of calling StartAsync or CompleteAsync and Advance."); } if (_canWriteResponseBody) diff --git a/src/Servers/Kestrel/Core/src/Internal/Http2/Http2OutputProducer.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2OutputProducer.cs index 1e5f09732a..18adcc1a82 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http2/Http2OutputProducer.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2OutputProducer.cs @@ -80,6 +80,9 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2 Stop(); + // Make sure the writing side is completed. + _pipeWriter.Complete(); + if (_fakeMemoryOwner != null) { _fakeMemoryOwner.Dispose(); @@ -104,7 +107,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2 lock (_dataWriterLock) { - ThrowIfSuffixSent(); + ThrowIfSuffixSentOrDisposed(); if (_completed) { @@ -130,7 +133,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2 { lock (_dataWriterLock) { - ThrowIfSuffixSent(); + ThrowIfSuffixSentOrDisposed(); if (_completed) { @@ -185,7 +188,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2 lock (_dataWriterLock) { - ThrowIfSuffixSent(); + ThrowIfSuffixSentOrDisposed(); // This length check is important because we don't want to set _startedWritingDataFrames unless a data // frame will actually be written causing the headers to be flushed. @@ -233,7 +236,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2 { lock (_dataWriterLock) { - ThrowIfSuffixSent(); + ThrowIfSuffixSentOrDisposed(); if (_completed) { @@ -250,7 +253,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2 { lock (_dataWriterLock) { - ThrowIfSuffixSent(); + ThrowIfSuffixSentOrDisposed(); if (_completed) { @@ -265,7 +268,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2 { lock (_dataWriterLock) { - ThrowIfSuffixSent(); + ThrowIfSuffixSentOrDisposed(); if (_completed) { @@ -298,7 +301,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2 lock (_dataWriterLock) { - ThrowIfSuffixSent(); + ThrowIfSuffixSentOrDisposed(); // This length check is important because we don't want to set _startedWritingDataFrames unless a data // frame will actually be written causing the headers to be flushed. @@ -345,10 +348,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2 _completed = true; - // Complete with an exception to prevent an end of stream data frame from being sent without an - // explicit call to WriteStreamSuffixAsync. ConnectionAbortedExceptions are swallowed, so the - // message doesn't matter - _pipeWriter.Complete(new OperationCanceledException()); + _pipeReader.CancelPendingRead(); _frameWriter.AbortPendingStreamDataWrites(_flowControl); } @@ -369,7 +369,12 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2 { readResult = await _pipeReader.ReadAsync(); - if (readResult.IsCompleted && _stream.ResponseTrailers?.Count > 0) + if (readResult.IsCanceled) + { + // Response body is aborted, break and complete reader. + break; + } + else if (readResult.IsCompleted && _stream.ResponseTrailers?.Count > 0) { // Output is ending and there are trailers to write // Write any remaining content then write trailers @@ -405,10 +410,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2 _pipeReader.AdvanceTo(readResult.Buffer.End); } while (!readResult.IsCompleted); } - catch (OperationCanceledException) - { - // Writes should not throw for aborted streams/connections. - } catch (Exception ex) { _log.LogCritical(ex, nameof(Http2OutputProducer) + "." + nameof(ProcessDataWrites) + " observed an unexpected exception."); @@ -435,12 +436,17 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2 } [StackTraceHidden] - private void ThrowIfSuffixSent() + private void ThrowIfSuffixSentOrDisposed() { if (_suffixSent) { ThrowSuffixSent(); } + + if (_disposed) + { + ThrowDisposed(); + } } [StackTraceHidden] @@ -449,6 +455,12 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2 throw new InvalidOperationException("Writing is not allowed after writer was completed."); } + [StackTraceHidden] + private static void ThrowDisposed() + { + throw new InvalidOperationException("Cannot write to response after the request has completed."); + } + private static Pipe CreateDataPipe(MemoryPool pool) => new Pipe(new PipeOptions ( diff --git a/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2StreamTests.cs b/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2StreamTests.cs index c74f321a51..4937000db9 100644 --- a/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2StreamTests.cs +++ b/src/Servers/Kestrel/test/InMemory.FunctionalTests/Http2/Http2StreamTests.cs @@ -3737,6 +3737,52 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests Assert.Equal("Hello World", Encoding.UTF8.GetString(bodyFrame.Payload.Span)); } + [Fact] + public async Task CompleteAsync_AdvanceAfterComplete_AdvanceThrows() + { + var tcs = new TaskCompletionSource(); + var headers = new[] + { + new KeyValuePair(HeaderNames.Method, "GET"), + new KeyValuePair(HeaderNames.Path, "/"), + new KeyValuePair(HeaderNames.Scheme, "http"), + }; + await InitializeConnectionAsync(async context => + { + var memory = context.Response.BodyWriter.GetMemory(12); + await context.Response.CompleteAsync(); + try + { + context.Response.BodyWriter.Advance(memory.Length); + } + catch (InvalidOperationException) + { + tcs.SetResult(null); + return; + } + + Assert.True(false); + }); + + await StartStreamAsync(1, headers, endStream: true); + + var headersFrame = await ExpectAsync(Http2FrameType.HEADERS, + withLength: 55, + withFlags: (byte)(Http2HeadersFrameFlags.END_HEADERS | Http2HeadersFrameFlags.END_STREAM), + withStreamId: 1); + + await StopConnectionAsync(expectedLastStreamId: 1, ignoreNonGoAwayFrames: false); + + _hpackDecoder.Decode(headersFrame.PayloadSequence, endHeaders: false, handler: this); + + Assert.Equal(3, _decodedHeaders.Count); + Assert.Contains("date", _decodedHeaders.Keys, StringComparer.OrdinalIgnoreCase); + Assert.Equal("200", _decodedHeaders[HeaderNames.Status]); + Assert.Equal("0", _decodedHeaders[HeaderNames.ContentLength]); + + await tcs.Task.DefaultTimeout(); + } + [Fact] public async Task CompleteAsync_AfterPipeWrite_WithTrailers_SendsBodyAndTrailersWithEndStream() {