From aaee2f9c98c8b2e70274e919031528ab797aca22 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Fri, 16 Feb 2024 19:03:11 +0000 Subject: [PATCH 01/25] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-sdk build 20240215.23 Microsoft.DotNet.MSBuildSdkResolver , Microsoft.NET.Sdk From Version 6.0.127-servicing.24070.10 -> To Version 6.0.128-servicing.24115.23 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4dd5d2c48..91ed8e6fa 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -103,14 +103,14 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-templating 01f9cb6e48d29a58c248ec2faeaafe0372b69b77 - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - 77fc6a3fac5d8d43a71b9379320c0b12012966a1 + 23aa0afe51df695ab208e1cc13750eae7e715e36 - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - 77fc6a3fac5d8d43a71b9379320c0b12012966a1 + 23aa0afe51df695ab208e1cc13750eae7e715e36 diff --git a/eng/Versions.props b/eng/Versions.props index c78738260..33c709894 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -56,8 +56,8 @@ - 6.0.127-servicing.24070.10 - 6.0.127-servicing.24070.10 + 6.0.128-servicing.24115.23 + 6.0.128-servicing.24115.23 $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) From 2522c2fa3456cd781bffb5cde5398c4ae9c8cfc4 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Fri, 16 Feb 2024 19:03:26 +0000 Subject: [PATCH 02/25] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-sdk build 20240215.60 Microsoft.DotNet.MSBuildSdkResolver , Microsoft.NET.Sdk From Version 6.0.128-servicing.24115.23 -> To Version 6.0.128-servicing.24115.60 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 91ed8e6fa..11b5f722c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -103,14 +103,14 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-templating 01f9cb6e48d29a58c248ec2faeaafe0372b69b77 - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - 23aa0afe51df695ab208e1cc13750eae7e715e36 + 2fd4ccef14554fe3493908fca5bb066a7042018d - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - 23aa0afe51df695ab208e1cc13750eae7e715e36 + 2fd4ccef14554fe3493908fca5bb066a7042018d diff --git a/eng/Versions.props b/eng/Versions.props index 33c709894..b203720fd 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -56,8 +56,8 @@ - 6.0.128-servicing.24115.23 - 6.0.128-servicing.24115.23 + 6.0.128-servicing.24115.60 + 6.0.128-servicing.24115.60 $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) From c6896a6ef90e91bd0821f30a4fe3f3c6c5bd7974 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Fri, 16 Feb 2024 19:03:43 +0000 Subject: [PATCH 03/25] Dependency coherency updates Microsoft.WindowsDesktop.App.Ref,VS.Redist.Common.WindowsDesktop.SharedFramework.x64.6.0,VS.Redist.Common.WindowsDesktop.TargetingPack.x64.6.0,Microsoft.NETCore.App.Ref,VS.Redist.Common.NetCore.TargetingPack.x64.6.0,Microsoft.NETCore.App.Runtime.win-x64,Microsoft.NETCore.App.Host.win-x64,Microsoft.NETCore.DotNetHostResolver,Microsoft.NETCore.Platforms,Microsoft.AspNetCore.App.Ref,Microsoft.AspNetCore.App.Ref.Internal,Microsoft.AspNetCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.6.0,dotnet-dev-certs,dotnet-user-secrets,Microsoft.DotNet.Common.ItemTemplates,Microsoft.TemplateEngine.Cli,Microsoft.DotNet.Common.ProjectTemplates.6.0,Microsoft.WindowsDesktop.App.Runtime.win-x64,Microsoft.WindowsDesktop.App.Runtime.win-x64,VS.Redist.Common.NetCore.SharedFramework.x64.6.0,Microsoft.NET.Workload.Emscripten.Manifest-6.0.100 From Version 6.0.27 -> To Version 6.0.28 (parent: Microsoft.NET.Sdk --- NuGet.config | 30 +++++---------- eng/Version.Details.xml | 84 ++++++++++++++++++++--------------------- eng/Versions.props | 40 ++++++++++---------- 3 files changed, 71 insertions(+), 83 deletions(-) diff --git a/NuGet.config b/NuGet.config index 0e7995f83..e1484a473 100644 --- a/NuGet.config +++ b/NuGet.config @@ -7,28 +7,21 @@ + - - - + - - - + - - - + - - - + @@ -49,22 +42,17 @@ + - - - + - - - + - - - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 11b5f722c..89df9e6f4 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,46 +1,46 @@ - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 752aa75c68aad44ea864a65c034e27555e5f3333 + 4c0f7dc35580c286a77d992688e924117cb24c05 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 752aa75c68aad44ea864a65c034e27555e5f3333 + 4c0f7dc35580c286a77d992688e924117cb24c05 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 752aa75c68aad44ea864a65c034e27555e5f3333 + 4c0f7dc35580c286a77d992688e924117cb24c05 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 752aa75c68aad44ea864a65c034e27555e5f3333 + 4c0f7dc35580c286a77d992688e924117cb24c05 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 80de56dadb3864aec7e8edd3ae32a23aeda08285 + 5d304bee0cb62962e9c6b379849ddf4f273beaa3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 80de56dadb3864aec7e8edd3ae32a23aeda08285 + 5d304bee0cb62962e9c6b379849ddf4f273beaa3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 80de56dadb3864aec7e8edd3ae32a23aeda08285 + 5d304bee0cb62962e9c6b379849ddf4f273beaa3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 80de56dadb3864aec7e8edd3ae32a23aeda08285 + 5d304bee0cb62962e9c6b379849ddf4f273beaa3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 80de56dadb3864aec7e8edd3ae32a23aeda08285 + 5d304bee0cb62962e9c6b379849ddf4f273beaa3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 80de56dadb3864aec7e8edd3ae32a23aeda08285 + 5d304bee0cb62962e9c6b379849ddf4f273beaa3 @@ -48,34 +48,34 @@ https://github.com/dotnet/core-setup 7d57652f33493fa022125b7f63aad0d70c52d810 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - a08d9ce2caf02455c0b825bcdc32974bdf769a80 + 5d304bee0cb62962e9c6b379849ddf4f273beaa3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 417d650029c720dbd2138bcafbb78e2e4ff31bff + 39e25dfed275acb85aa9a11e3ee7ed4f014b0b06 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 417d650029c720dbd2138bcafbb78e2e4ff31bff + 39e25dfed275acb85aa9a11e3ee7ed4f014b0b06 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 417d650029c720dbd2138bcafbb78e2e4ff31bff + 39e25dfed275acb85aa9a11e3ee7ed4f014b0b06 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 417d650029c720dbd2138bcafbb78e2e4ff31bff + 39e25dfed275acb85aa9a11e3ee7ed4f014b0b06 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 417d650029c720dbd2138bcafbb78e2e4ff31bff + 39e25dfed275acb85aa9a11e3ee7ed4f014b0b06 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 417d650029c720dbd2138bcafbb78e2e4ff31bff + 39e25dfed275acb85aa9a11e3ee7ed4f014b0b06 https://github.com/dotnet/test-templates @@ -90,18 +90,18 @@ c40ef7e056b48e011c43a21354d6790ba6b8b4fc - + https://dev.azure.com/dnceng/internal/_git/dotnet-templating - 01f9cb6e48d29a58c248ec2faeaafe0372b69b77 + 192df67b6a6a4d5e15ef15253cb8e68c14d13df8 - + https://dev.azure.com/dnceng/internal/_git/dotnet-templating - 01f9cb6e48d29a58c248ec2faeaafe0372b69b77 + 192df67b6a6a4d5e15ef15253cb8e68c14d13df8 - + https://dev.azure.com/dnceng/internal/_git/dotnet-templating - 01f9cb6e48d29a58c248ec2faeaafe0372b69b77 + 192df67b6a6a4d5e15ef15253cb8e68c14d13df8 https://dev.azure.com/dnceng/internal/_git/dotnet-sdk @@ -166,9 +166,9 @@ 698fdad58fa64a55f16cd9562c90224cc498ed02 - + https://github.com/dotnet/emsdk - a9f209f82fadb1f694ae6932f92c32918e407ded + 0b2571edc63476761a1db6160e34048c7d51505e https://github.com/dotnet/source-build diff --git a/eng/Versions.props b/eng/Versions.props index b203720fd..726f238a2 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -31,7 +31,7 @@ - 6.0.127 + 6.0.128 @@ -44,12 +44,12 @@ - 6.0.27 - 6.0.27 - 6.0.27-servicing.24070.2 - 6.0.27-servicing.24070.2 - 6.0.27-servicing.24070.2 - 6.0.27-servicing.24070.2 + 6.0.28 + 6.0.28 + 6.0.28-servicing.24113.17 + 6.0.28-servicing.24113.17 + 6.0.28-servicing.24113.17 + 6.0.28-servicing.24113.17 0.2.0 @@ -64,24 +64,24 @@ - 6.0.11 + 6.0.12 - 6.0.27-servicing.24069.12 - 6.0.27-servicing.24069.12 - 6.0.27 - 6.0.27 - 6.0.27 - 6.0.27 + 6.0.28-servicing.24112.29 + 6.0.28-servicing.24112.29 + 6.0.28 + 6.0.28 + 6.0.28 + 6.0.28 2.1.0 - 6.0.27-servicing.24070.4 - 6.0.27-servicing.24070.4 - 6.0.27 - 6.0.27 + 6.0.28-servicing.24114.9 + 6.0.28-servicing.24114.9 + 6.0.28 + 6.0.28 @@ -118,7 +118,7 @@ $(MicrosoftDotNetWpfProjectTemplatesPackageVersion) $(NUnit3DotNetNewTemplatePackageVersion) $(MicrosoftDotNetCommonItemTemplatesPackageVersion) - 6.0.127 + 6.0.128 $(MicrosoftAspNetCoreAppRuntimePackageVersion) $(MicrosoftWinFormsProjectTemplates50PackageVersion) @@ -188,7 +188,7 @@ 12.0.101-preview.9.31 15.0.101-preview.9.31 $(MicrosoftNETCoreAppRefPackageVersion) - 6.0.27 + 6.0.28 $(MicrosoftNETWorkloadEmscriptenManifest60100Version) From 27716fe485b03ca1a6228d713fc29770dfdfb3da Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Fri, 16 Feb 2024 21:03:53 +0000 Subject: [PATCH 04/25] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-sdk build 20240216.13 Microsoft.DotNet.MSBuildSdkResolver , Microsoft.NET.Sdk From Version 6.0.127-servicing.24070.10 -> To Version 6.0.128-servicing.24116.13 Dependency coherency updates Microsoft.WindowsDesktop.App.Ref,VS.Redist.Common.WindowsDesktop.SharedFramework.x64.6.0,VS.Redist.Common.WindowsDesktop.TargetingPack.x64.6.0,Microsoft.NETCore.App.Ref,VS.Redist.Common.NetCore.TargetingPack.x64.6.0,Microsoft.NETCore.App.Runtime.win-x64,Microsoft.NETCore.App.Host.win-x64,Microsoft.NETCore.DotNetHostResolver,Microsoft.NETCore.Platforms,Microsoft.AspNetCore.App.Ref,Microsoft.AspNetCore.App.Ref.Internal,Microsoft.AspNetCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.6.0,dotnet-dev-certs,dotnet-user-secrets,Microsoft.DotNet.Common.ItemTemplates,Microsoft.TemplateEngine.Cli,Microsoft.DotNet.Common.ProjectTemplates.6.0,Microsoft.WindowsDesktop.App.Runtime.win-x64,Microsoft.WindowsDesktop.App.Runtime.win-x64,VS.Redist.Common.NetCore.SharedFramework.x64.6.0,Microsoft.NET.Workload.Emscripten.Manifest-6.0.100 From Version 6.0.27 -> To Version 6.0.28 (parent: Microsoft.NET.Sdk --- NuGet.config | 14 +++++------ eng/Version.Details.xml | 56 ++++++++++++++++++++--------------------- eng/Versions.props | 16 ++++++------ 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/NuGet.config b/NuGet.config index e1484a473..311cf5ae2 100644 --- a/NuGet.config +++ b/NuGet.config @@ -7,18 +7,18 @@ - + - + - + - + @@ -42,14 +42,14 @@ - + - + - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 89df9e6f4..6cc1e2121 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -17,30 +17,30 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop 4c0f7dc35580c286a77d992688e924117cb24c05 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5d304bee0cb62962e9c6b379849ddf4f273beaa3 + 2b3cfc799de1c1e629f2194b67e1dbd610ea51c9 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5d304bee0cb62962e9c6b379849ddf4f273beaa3 + 2b3cfc799de1c1e629f2194b67e1dbd610ea51c9 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5d304bee0cb62962e9c6b379849ddf4f273beaa3 + 2b3cfc799de1c1e629f2194b67e1dbd610ea51c9 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5d304bee0cb62962e9c6b379849ddf4f273beaa3 + 2b3cfc799de1c1e629f2194b67e1dbd610ea51c9 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5d304bee0cb62962e9c6b379849ddf4f273beaa3 + 2b3cfc799de1c1e629f2194b67e1dbd610ea51c9 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5d304bee0cb62962e9c6b379849ddf4f273beaa3 + 2b3cfc799de1c1e629f2194b67e1dbd610ea51c9 @@ -50,32 +50,32 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5d304bee0cb62962e9c6b379849ddf4f273beaa3 + 2b3cfc799de1c1e629f2194b67e1dbd610ea51c9 https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 39e25dfed275acb85aa9a11e3ee7ed4f014b0b06 + 364d4a968b15639648dbd2a6388a780da1ff65cc - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 39e25dfed275acb85aa9a11e3ee7ed4f014b0b06 + 364d4a968b15639648dbd2a6388a780da1ff65cc https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 39e25dfed275acb85aa9a11e3ee7ed4f014b0b06 + 364d4a968b15639648dbd2a6388a780da1ff65cc - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 39e25dfed275acb85aa9a11e3ee7ed4f014b0b06 + 364d4a968b15639648dbd2a6388a780da1ff65cc - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 39e25dfed275acb85aa9a11e3ee7ed4f014b0b06 + 364d4a968b15639648dbd2a6388a780da1ff65cc - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 39e25dfed275acb85aa9a11e3ee7ed4f014b0b06 + 364d4a968b15639648dbd2a6388a780da1ff65cc https://github.com/dotnet/test-templates @@ -92,25 +92,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-templating - 192df67b6a6a4d5e15ef15253cb8e68c14d13df8 + 77647a9d2c090a0cf1cd52198c7e9229aef9577d - + https://dev.azure.com/dnceng/internal/_git/dotnet-templating - 192df67b6a6a4d5e15ef15253cb8e68c14d13df8 + 77647a9d2c090a0cf1cd52198c7e9229aef9577d https://dev.azure.com/dnceng/internal/_git/dotnet-templating - 192df67b6a6a4d5e15ef15253cb8e68c14d13df8 + 77647a9d2c090a0cf1cd52198c7e9229aef9577d - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - 2fd4ccef14554fe3493908fca5bb066a7042018d + 3d2fdd69fe83f91252d48f4c4555e93c8a3da2f3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - 2fd4ccef14554fe3493908fca5bb066a7042018d + 3d2fdd69fe83f91252d48f4c4555e93c8a3da2f3 @@ -168,7 +168,7 @@ https://github.com/dotnet/emsdk - 0b2571edc63476761a1db6160e34048c7d51505e + 925c59b436d60b9cd6b5df54c3f9be13a9512c95 https://github.com/dotnet/source-build diff --git a/eng/Versions.props b/eng/Versions.props index 726f238a2..0447db67b 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -46,18 +46,18 @@ 6.0.28 6.0.28 - 6.0.28-servicing.24113.17 - 6.0.28-servicing.24113.17 - 6.0.28-servicing.24113.17 - 6.0.28-servicing.24113.17 + 6.0.28-servicing.24115.9 + 6.0.28-servicing.24115.9 + 6.0.28-servicing.24115.9 + 6.0.28-servicing.24115.9 0.2.0 - 6.0.128-servicing.24115.60 - 6.0.128-servicing.24115.60 + 6.0.128-servicing.24116.13 + 6.0.128-servicing.24116.13 $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) @@ -68,8 +68,8 @@ - 6.0.28-servicing.24112.29 - 6.0.28-servicing.24112.29 + 6.0.28-servicing.24114.25 + 6.0.28-servicing.24114.25 6.0.28 6.0.28 6.0.28 From 0231af2ff458364457ac83a6e312853dd4cf1ea7 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Fri, 16 Feb 2024 22:20:41 +0000 Subject: [PATCH 05/25] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-sdk build 20240216.42 Microsoft.DotNet.MSBuildSdkResolver , Microsoft.NET.Sdk From Version 6.0.128-servicing.24116.13 -> To Version 6.0.128-servicing.24116.42 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6cc1e2121..1e86c477b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -103,14 +103,14 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-templating 77647a9d2c090a0cf1cd52198c7e9229aef9577d - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - 3d2fdd69fe83f91252d48f4c4555e93c8a3da2f3 + b586613902b7b48fe61e95b88945dbce6364b2ee - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - 3d2fdd69fe83f91252d48f4c4555e93c8a3da2f3 + b586613902b7b48fe61e95b88945dbce6364b2ee diff --git a/eng/Versions.props b/eng/Versions.props index 0447db67b..ecfc1c1ab 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -56,8 +56,8 @@ - 6.0.128-servicing.24116.13 - 6.0.128-servicing.24116.13 + 6.0.128-servicing.24116.42 + 6.0.128-servicing.24116.42 $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) From 87bba2c3da0bca4204dfde8c5bfbca25b86175d4 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Fri, 16 Feb 2024 23:10:21 +0000 Subject: [PATCH 06/25] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-sdk build 20240216.57 Microsoft.DotNet.MSBuildSdkResolver , Microsoft.NET.Sdk From Version 6.0.128-servicing.24116.42 -> To Version 6.0.128-servicing.24116.57 Dependency coherency updates Microsoft.DotNet.Common.ItemTemplates,Microsoft.TemplateEngine.Cli,Microsoft.DotNet.Common.ProjectTemplates.6.0 From Version 6.0.128 -> To Version 6.0.128 (parent: Microsoft.NET.Sdk --- NuGet.config | 4 ++-- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/NuGet.config b/NuGet.config index 311cf5ae2..f8ca3ade4 100644 --- a/NuGet.config +++ b/NuGet.config @@ -18,7 +18,7 @@ - + @@ -49,7 +49,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1e86c477b..a6a0bbe1e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -92,25 +92,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-templating - 77647a9d2c090a0cf1cd52198c7e9229aef9577d + 1915ecefdb10121a923bab067bbd62eb95f74518 - + https://dev.azure.com/dnceng/internal/_git/dotnet-templating - 77647a9d2c090a0cf1cd52198c7e9229aef9577d + 1915ecefdb10121a923bab067bbd62eb95f74518 https://dev.azure.com/dnceng/internal/_git/dotnet-templating - 77647a9d2c090a0cf1cd52198c7e9229aef9577d + 1915ecefdb10121a923bab067bbd62eb95f74518 - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - b586613902b7b48fe61e95b88945dbce6364b2ee + 76eba53559e42ea62eb34774d5e8ab8d8cb80126 - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - b586613902b7b48fe61e95b88945dbce6364b2ee + 76eba53559e42ea62eb34774d5e8ab8d8cb80126 diff --git a/eng/Versions.props b/eng/Versions.props index ecfc1c1ab..28436dcbd 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -56,8 +56,8 @@ - 6.0.128-servicing.24116.42 - 6.0.128-servicing.24116.42 + 6.0.128-servicing.24116.57 + 6.0.128-servicing.24116.57 $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) From 9c0c4f1181ec5829d21482ee412e0bc865c54588 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Sat, 17 Feb 2024 01:02:42 +0000 Subject: [PATCH 07/25] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-sdk build 20240216.66 Microsoft.DotNet.MSBuildSdkResolver , Microsoft.NET.Sdk From Version 6.0.128-servicing.24116.57 -> To Version 6.0.128-servicing.24116.66 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a6a0bbe1e..f81ee3196 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -103,14 +103,14 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-templating 1915ecefdb10121a923bab067bbd62eb95f74518 - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - 76eba53559e42ea62eb34774d5e8ab8d8cb80126 + 599e8daecb7dd5982544db3af52e9c51b19cdd53 - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - 76eba53559e42ea62eb34774d5e8ab8d8cb80126 + 599e8daecb7dd5982544db3af52e9c51b19cdd53 diff --git a/eng/Versions.props b/eng/Versions.props index 28436dcbd..17d354eba 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -56,8 +56,8 @@ - 6.0.128-servicing.24116.57 - 6.0.128-servicing.24116.57 + 6.0.128-servicing.24116.66 + 6.0.128-servicing.24116.66 $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) From 7b734ba1880efe9e9e6661062aa059b79692a651 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Sat, 17 Feb 2024 01:02:55 +0000 Subject: [PATCH 08/25] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-sdk build 20240216.79 Microsoft.DotNet.MSBuildSdkResolver , Microsoft.NET.Sdk From Version 6.0.128-servicing.24116.66 -> To Version 6.0.128-servicing.24116.79 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f81ee3196..01f1136c8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -103,14 +103,14 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-templating 1915ecefdb10121a923bab067bbd62eb95f74518 - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - 599e8daecb7dd5982544db3af52e9c51b19cdd53 + aab9de8cf9fed3b7be4743a1e7e751314b493dda - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - 599e8daecb7dd5982544db3af52e9c51b19cdd53 + aab9de8cf9fed3b7be4743a1e7e751314b493dda diff --git a/eng/Versions.props b/eng/Versions.props index 17d354eba..1b89dfb48 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -56,8 +56,8 @@ - 6.0.128-servicing.24116.66 - 6.0.128-servicing.24116.66 + 6.0.128-servicing.24116.79 + 6.0.128-servicing.24116.79 $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) From 6d76d49e27965af317608d719c2b81781c303e62 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Sat, 17 Feb 2024 01:03:09 +0000 Subject: [PATCH 09/25] Dependency coherency updates Microsoft.WindowsDesktop.App.Ref,VS.Redist.Common.WindowsDesktop.SharedFramework.x64.6.0,VS.Redist.Common.WindowsDesktop.TargetingPack.x64.6.0,Microsoft.AspNetCore.App.Ref,Microsoft.AspNetCore.App.Ref.Internal,Microsoft.AspNetCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.6.0,dotnet-dev-certs,dotnet-user-secrets,Microsoft.WindowsDesktop.App.Runtime.win-x64,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.WindowsDesktop.App.Runtime.win-x64,Microsoft.DotNet.Wpf.ProjectTemplates From Version 6.0.28 -> To Version 6.0.28 (parent: Microsoft.NET.Sdk --- NuGet.config | 8 ++++---- eng/Version.Details.xml | 40 ++++++++++++++++++++-------------------- eng/Versions.props | 16 ++++++++-------- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/NuGet.config b/NuGet.config index f8ca3ade4..75ec9c8d3 100644 --- a/NuGet.config +++ b/NuGet.config @@ -7,7 +7,7 @@ - + @@ -21,7 +21,7 @@ - + @@ -42,7 +42,7 @@ - + @@ -52,7 +52,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 01f1136c8..c40af6939 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -3,19 +3,19 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 4c0f7dc35580c286a77d992688e924117cb24c05 + 574a4a77eef72d4b0ed4007e8e82e17e95a266d3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 4c0f7dc35580c286a77d992688e924117cb24c05 + 574a4a77eef72d4b0ed4007e8e82e17e95a266d3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 4c0f7dc35580c286a77d992688e924117cb24c05 + 574a4a77eef72d4b0ed4007e8e82e17e95a266d3 https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 4c0f7dc35580c286a77d992688e924117cb24c05 + 574a4a77eef72d4b0ed4007e8e82e17e95a266d3 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -54,28 +54,28 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 364d4a968b15639648dbd2a6388a780da1ff65cc + ce993c8c6ca3d5af8133d66d7df91056d44d5788 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 364d4a968b15639648dbd2a6388a780da1ff65cc + ce993c8c6ca3d5af8133d66d7df91056d44d5788 https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 364d4a968b15639648dbd2a6388a780da1ff65cc + ce993c8c6ca3d5af8133d66d7df91056d44d5788 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 364d4a968b15639648dbd2a6388a780da1ff65cc + ce993c8c6ca3d5af8133d66d7df91056d44d5788 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 364d4a968b15639648dbd2a6388a780da1ff65cc + ce993c8c6ca3d5af8133d66d7df91056d44d5788 - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - 364d4a968b15639648dbd2a6388a780da1ff65cc + ce993c8c6ca3d5af8133d66d7df91056d44d5788 https://github.com/dotnet/test-templates @@ -113,13 +113,13 @@ aab9de8cf9fed3b7be4743a1e7e751314b493dda - + https://dev.azure.com/dnceng/internal/_git/dotnet-winforms - 98b10b3aea4e37eed5ad4875cd251cc94c854c1e + d84b22e24fc7da1157057093e978186f9f1cabee - + https://dev.azure.com/dnceng/internal/_git/dotnet-wpf - 12a1b47c5b9b55841e0aa39bb36c15ac05d4ce8a + b55e6d18ab0ec864273891a6f0741301253aa848 https://github.com/dotnet/fsharp diff --git a/eng/Versions.props b/eng/Versions.props index 1b89dfb48..0cb8cc3dc 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -23,11 +23,11 @@ - 6.0.27-servicing.24070.1 + 6.0.28-servicing.24115.14 - 6.0.27-servicing.24070.3 + 6.0.28-servicing.24116.8 @@ -46,10 +46,10 @@ 6.0.28 6.0.28 - 6.0.28-servicing.24115.9 - 6.0.28-servicing.24115.9 - 6.0.28-servicing.24115.9 - 6.0.28-servicing.24115.9 + 6.0.28-servicing.24116.17 + 6.0.28-servicing.24116.17 + 6.0.28-servicing.24116.17 + 6.0.28-servicing.24116.17 0.2.0 @@ -78,8 +78,8 @@ - 6.0.28-servicing.24114.9 - 6.0.28-servicing.24114.9 + 6.0.28-servicing.24116.10 + 6.0.28-servicing.24116.10 6.0.28 6.0.28 From 7a49bc7fed1384c47488951f3a6e345884d2ef39 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Sat, 17 Feb 2024 01:22:33 +0000 Subject: [PATCH 10/25] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-sdk build 20240216.92 Microsoft.DotNet.MSBuildSdkResolver , Microsoft.NET.Sdk From Version 6.0.128-servicing.24116.79 -> To Version 6.0.128-servicing.24116.92 Dependency coherency updates Microsoft.WindowsDesktop.App.Ref,VS.Redist.Common.WindowsDesktop.SharedFramework.x64.6.0,VS.Redist.Common.WindowsDesktop.TargetingPack.x64.6.0,Microsoft.WindowsDesktop.App.Runtime.win-x64,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.WindowsDesktop.App.Runtime.win-x64,Microsoft.DotNet.Wpf.ProjectTemplates From Version 6.0.28 -> To Version 6.0.28 (parent: Microsoft.NET.Sdk --- NuGet.config | 4 ++-- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 12 ++++++------ 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/NuGet.config b/NuGet.config index 75ec9c8d3..09e433dd7 100644 --- a/NuGet.config +++ b/NuGet.config @@ -21,7 +21,7 @@ - + @@ -52,7 +52,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c40af6939..dd294c1c4 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -3,19 +3,19 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 574a4a77eef72d4b0ed4007e8e82e17e95a266d3 + ef9b1726104aebb05c22498486cd6f4c1c3313b7 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 574a4a77eef72d4b0ed4007e8e82e17e95a266d3 + ef9b1726104aebb05c22498486cd6f4c1c3313b7 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 574a4a77eef72d4b0ed4007e8e82e17e95a266d3 + ef9b1726104aebb05c22498486cd6f4c1c3313b7 https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - 574a4a77eef72d4b0ed4007e8e82e17e95a266d3 + ef9b1726104aebb05c22498486cd6f4c1c3313b7 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -103,23 +103,23 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-templating 1915ecefdb10121a923bab067bbd62eb95f74518 - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - aab9de8cf9fed3b7be4743a1e7e751314b493dda + 53e79424493ed524a2888422f02798633a5cd0a0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - aab9de8cf9fed3b7be4743a1e7e751314b493dda + 53e79424493ed524a2888422f02798633a5cd0a0 - + https://dev.azure.com/dnceng/internal/_git/dotnet-winforms - d84b22e24fc7da1157057093e978186f9f1cabee + 418b2633a2b67a2a1a61b1481a79f53eaa60a237 - + https://dev.azure.com/dnceng/internal/_git/dotnet-wpf - b55e6d18ab0ec864273891a6f0741301253aa848 + 51556c9bd2c6057c7bd3a5999e20c4012aa253df https://github.com/dotnet/fsharp diff --git a/eng/Versions.props b/eng/Versions.props index 0cb8cc3dc..efba5d10e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -23,11 +23,11 @@ - 6.0.28-servicing.24115.14 + 6.0.28-servicing.24116.7 - 6.0.28-servicing.24116.8 + 6.0.28-servicing.24116.14 @@ -56,8 +56,8 @@ - 6.0.128-servicing.24116.79 - 6.0.128-servicing.24116.79 + 6.0.128-servicing.24116.92 + 6.0.128-servicing.24116.92 $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) @@ -78,8 +78,8 @@ - 6.0.28-servicing.24116.10 - 6.0.28-servicing.24116.10 + 6.0.28-servicing.24116.13 + 6.0.28-servicing.24116.13 6.0.28 6.0.28 From 494a2db27d07d9053061d9ce0dede6805e54d168 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Wed, 21 Feb 2024 02:00:23 +0000 Subject: [PATCH 11/25] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-sdk build 20240220.16 Microsoft.DotNet.MSBuildSdkResolver , Microsoft.NET.Sdk From Version 6.0.128-servicing.24116.92 -> To Version 6.0.128-servicing.24120.16 Dependency coherency updates Microsoft.NETCore.App.Ref,VS.Redist.Common.NetCore.TargetingPack.x64.6.0,Microsoft.NETCore.App.Runtime.win-x64,Microsoft.NETCore.App.Host.win-x64,Microsoft.NETCore.DotNetHostResolver,Microsoft.NETCore.Platforms,VS.Redist.Common.NetCore.SharedFramework.x64.6.0 From Version 6.0.28 -> To Version 6.0.28 (parent: Microsoft.NET.Sdk --- NuGet.config | 4 ++-- eng/Version.Details.xml | 26 +++++++++++++------------- eng/Versions.props | 8 ++++---- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/NuGet.config b/NuGet.config index 09e433dd7..c8beb8792 100644 --- a/NuGet.config +++ b/NuGet.config @@ -15,7 +15,7 @@ - + @@ -47,7 +47,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index dd294c1c4..b83f52933 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -17,30 +17,30 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop ef9b1726104aebb05c22498486cd6f4c1c3313b7 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2b3cfc799de1c1e629f2194b67e1dbd610ea51c9 + 34a109148c7d8a2c8e6431e83e4bce5712dd8083 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2b3cfc799de1c1e629f2194b67e1dbd610ea51c9 + 34a109148c7d8a2c8e6431e83e4bce5712dd8083 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2b3cfc799de1c1e629f2194b67e1dbd610ea51c9 + 34a109148c7d8a2c8e6431e83e4bce5712dd8083 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2b3cfc799de1c1e629f2194b67e1dbd610ea51c9 + 34a109148c7d8a2c8e6431e83e4bce5712dd8083 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2b3cfc799de1c1e629f2194b67e1dbd610ea51c9 + 34a109148c7d8a2c8e6431e83e4bce5712dd8083 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2b3cfc799de1c1e629f2194b67e1dbd610ea51c9 + 34a109148c7d8a2c8e6431e83e4bce5712dd8083 @@ -50,7 +50,7 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 2b3cfc799de1c1e629f2194b67e1dbd610ea51c9 + 34a109148c7d8a2c8e6431e83e4bce5712dd8083 https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore @@ -103,14 +103,14 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-templating 1915ecefdb10121a923bab067bbd62eb95f74518 - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - 53e79424493ed524a2888422f02798633a5cd0a0 + 0e9d132598392f91bf9047d4d8b4e37b979fe3b2 - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - 53e79424493ed524a2888422f02798633a5cd0a0 + 0e9d132598392f91bf9047d4d8b4e37b979fe3b2 diff --git a/eng/Versions.props b/eng/Versions.props index efba5d10e..d3dff3af3 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -56,8 +56,8 @@ - 6.0.128-servicing.24116.92 - 6.0.128-servicing.24116.92 + 6.0.128-servicing.24120.16 + 6.0.128-servicing.24120.16 $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) @@ -68,8 +68,8 @@ - 6.0.28-servicing.24114.25 - 6.0.28-servicing.24114.25 + 6.0.28-servicing.24120.7 + 6.0.28-servicing.24120.7 6.0.28 6.0.28 6.0.28 From 776175766b1299551c8e4e89c6658991d0d0f2cf Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Wed, 21 Feb 2024 05:00:21 +0000 Subject: [PATCH 12/25] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-sdk build 20240220.25 Microsoft.DotNet.MSBuildSdkResolver , Microsoft.NET.Sdk From Version 6.0.128-servicing.24120.16 -> To Version 6.0.128-servicing.24120.25 Dependency coherency updates Microsoft.AspNetCore.App.Ref,Microsoft.AspNetCore.App.Ref.Internal,Microsoft.AspNetCore.App.Runtime.win-x64,VS.Redist.Common.AspNetCore.SharedFramework.x64.6.0,dotnet-dev-certs,dotnet-user-secrets,Microsoft.DotNet.Common.ItemTemplates,Microsoft.TemplateEngine.Cli,Microsoft.DotNet.Common.ProjectTemplates.6.0 From Version 6.0.28 -> To Version 6.0.28 (parent: Microsoft.NET.Sdk --- NuGet.config | 8 ++++---- eng/Version.Details.xml | 36 ++++++++++++++++++------------------ eng/Versions.props | 12 ++++++------ 3 files changed, 28 insertions(+), 28 deletions(-) diff --git a/NuGet.config b/NuGet.config index c8beb8792..d5fc24c42 100644 --- a/NuGet.config +++ b/NuGet.config @@ -7,7 +7,7 @@ - + @@ -18,7 +18,7 @@ - + @@ -42,14 +42,14 @@ - + - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index b83f52933..e534cf1cf 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -54,28 +54,28 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - ce993c8c6ca3d5af8133d66d7df91056d44d5788 + 3b519aa7d1a1b66e1d329d694f814e1d8228dc8c - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - ce993c8c6ca3d5af8133d66d7df91056d44d5788 + 3b519aa7d1a1b66e1d329d694f814e1d8228dc8c https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - ce993c8c6ca3d5af8133d66d7df91056d44d5788 + 3b519aa7d1a1b66e1d329d694f814e1d8228dc8c - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - ce993c8c6ca3d5af8133d66d7df91056d44d5788 + 3b519aa7d1a1b66e1d329d694f814e1d8228dc8c - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - ce993c8c6ca3d5af8133d66d7df91056d44d5788 + 3b519aa7d1a1b66e1d329d694f814e1d8228dc8c - + https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore - ce993c8c6ca3d5af8133d66d7df91056d44d5788 + 3b519aa7d1a1b66e1d329d694f814e1d8228dc8c https://github.com/dotnet/test-templates @@ -92,25 +92,25 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-templating - 1915ecefdb10121a923bab067bbd62eb95f74518 + 5603759138c012b54bb40b1ff33a45f79188a0f5 - + https://dev.azure.com/dnceng/internal/_git/dotnet-templating - 1915ecefdb10121a923bab067bbd62eb95f74518 + 5603759138c012b54bb40b1ff33a45f79188a0f5 https://dev.azure.com/dnceng/internal/_git/dotnet-templating - 1915ecefdb10121a923bab067bbd62eb95f74518 + 5603759138c012b54bb40b1ff33a45f79188a0f5 - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - 0e9d132598392f91bf9047d4d8b4e37b979fe3b2 + ca9da549d26abef31e0f41cb5f1c4598f90571da - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - 0e9d132598392f91bf9047d4d8b4e37b979fe3b2 + ca9da549d26abef31e0f41cb5f1c4598f90571da diff --git a/eng/Versions.props b/eng/Versions.props index d3dff3af3..986e62edb 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -46,18 +46,18 @@ 6.0.28 6.0.28 - 6.0.28-servicing.24116.17 - 6.0.28-servicing.24116.17 - 6.0.28-servicing.24116.17 - 6.0.28-servicing.24116.17 + 6.0.28-servicing.24120.5 + 6.0.28-servicing.24120.5 + 6.0.28-servicing.24120.5 + 6.0.28-servicing.24120.5 0.2.0 - 6.0.128-servicing.24120.16 - 6.0.128-servicing.24120.16 + 6.0.128-servicing.24120.25 + 6.0.128-servicing.24120.25 $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) From 592ff5cab5e16d4dedb16df24615e065efb10d3f Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Wed, 21 Feb 2024 07:43:07 +0000 Subject: [PATCH 13/25] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-sdk build 20240220.32 Microsoft.DotNet.MSBuildSdkResolver , Microsoft.NET.Sdk From Version 6.0.128-servicing.24120.25 -> To Version 6.0.128-servicing.24120.32 Dependency coherency updates Microsoft.WindowsDesktop.App.Ref,VS.Redist.Common.WindowsDesktop.SharedFramework.x64.6.0,VS.Redist.Common.WindowsDesktop.TargetingPack.x64.6.0,Microsoft.WindowsDesktop.App.Runtime.win-x64,Microsoft.Dotnet.WinForms.ProjectTemplates,Microsoft.WindowsDesktop.App.Runtime.win-x64,Microsoft.DotNet.Wpf.ProjectTemplates From Version 6.0.28 -> To Version 6.0.28 (parent: Microsoft.NET.Sdk --- NuGet.config | 4 ++-- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 12 ++++++------ 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/NuGet.config b/NuGet.config index d5fc24c42..3b34c1513 100644 --- a/NuGet.config +++ b/NuGet.config @@ -21,7 +21,7 @@ - + @@ -52,7 +52,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e534cf1cf..27e291ab7 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -3,19 +3,19 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - ef9b1726104aebb05c22498486cd6f4c1c3313b7 + c4a33f22341aa4c3945a3f4ee13d9b3d3a873273 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - ef9b1726104aebb05c22498486cd6f4c1c3313b7 + c4a33f22341aa4c3945a3f4ee13d9b3d3a873273 - + https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - ef9b1726104aebb05c22498486cd6f4c1c3313b7 + c4a33f22341aa4c3945a3f4ee13d9b3d3a873273 https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop - ef9b1726104aebb05c22498486cd6f4c1c3313b7 + c4a33f22341aa4c3945a3f4ee13d9b3d3a873273 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -103,23 +103,23 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-templating 5603759138c012b54bb40b1ff33a45f79188a0f5 - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - ca9da549d26abef31e0f41cb5f1c4598f90571da + 1adb0ada3366f315e32a2b6c80971aafda533569 - + https://dev.azure.com/dnceng/internal/_git/dotnet-sdk - ca9da549d26abef31e0f41cb5f1c4598f90571da + 1adb0ada3366f315e32a2b6c80971aafda533569 - + https://dev.azure.com/dnceng/internal/_git/dotnet-winforms - 418b2633a2b67a2a1a61b1481a79f53eaa60a237 + 9de94bff9795bb0644835098b91e81edccfaa367 - + https://dev.azure.com/dnceng/internal/_git/dotnet-wpf - 51556c9bd2c6057c7bd3a5999e20c4012aa253df + 4bb3a1d8ec37eda521bbf94605c43b035d2718b1 https://github.com/dotnet/fsharp diff --git a/eng/Versions.props b/eng/Versions.props index 986e62edb..e922fd5ba 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -23,11 +23,11 @@ - 6.0.28-servicing.24116.7 + 6.0.28-servicing.24120.4 - 6.0.28-servicing.24116.14 + 6.0.28-servicing.24120.2 @@ -56,8 +56,8 @@ - 6.0.128-servicing.24120.25 - 6.0.128-servicing.24120.25 + 6.0.128-servicing.24120.32 + 6.0.128-servicing.24120.32 $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) $(MicrosoftNETSdkPackageVersion) @@ -78,8 +78,8 @@ - 6.0.28-servicing.24116.13 - 6.0.28-servicing.24116.13 + 6.0.28-servicing.24120.3 + 6.0.28-servicing.24120.3 6.0.28 6.0.28 From 6419ad9ee94b53594c9a9e72054e0eda6bb4a1ad Mon Sep 17 00:00:00 2001 From: Jason Zhai Date: Mon, 11 Mar 2024 02:14:15 -0700 Subject: [PATCH 14/25] [release/6.0.1xx] Add -pr version of pipeline --- .vsts-pr.yml | 434 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 434 insertions(+) create mode 100644 .vsts-pr.yml diff --git a/.vsts-pr.yml b/.vsts-pr.yml new file mode 100644 index 000000000..6067e7c1e --- /dev/null +++ b/.vsts-pr.yml @@ -0,0 +1,434 @@ +trigger: + batch: true + branches: + include: + - main + - master + - release/* + - internal/release/3.* + - internal/release/5.* + - internal/release/6.* + +variables: +- name: _PublishUsingPipelines + value: false +- name: PostBuildSign + value: true +- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - name: Codeql.Enabled + value: true + - group: DotNet-DotNetCli-Storage + - group: DotNet-Installer-SDLValidation-Params + - name: _PublishUsingPipelines + value: true + +# Default to running tests in PRs and public CI, but not in official builds +- name: _WindowsTestArg + value: '-test' +- name: _NonWindowsTestArg + value: '--test' +- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - name: _WindowsTestArg + value: '' + - name: _NonWindowsTestArg + value: '' + +- name: _InternalRuntimeDownloadArgs + value: '' + +- ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - group: DotNetBuilds storage account read tokens + - name: _InternalRuntimeDownloadArgs + value: /p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal + /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) + /p:dotnetbuilds-internal-container-read-token-base64=$(dotnetbuilds-internal-container-read-token-base64) + +stages: +- stage: build + jobs: + - job: Publish_Build_Configuration + pool: + ${{ if eq(variables['System.TeamProject'], 'public') }}: + name: NetCore-Svc-Public + demands: ImageOverride -equals windows.vs2019.amd64.open + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + name: NetCore1ESPool-Svc-Internal + demands: ImageOverride -equals windows.vs2019.amd64 + steps: + - publish: $(Build.SourcesDirectory)\eng\BuildConfiguration + artifact: BuildConfiguration + displayName: Publish Build Config + - template: /eng/build.yml + parameters: + agentOs: Windows_NT + pool: + ${{ if eq(variables['System.TeamProject'], 'public') }}: + name: NetCore-Svc-Public + demands: ImageOverride -equals windows.vs2019.amd64.open + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + name: NetCore1ESPool-Svc-Internal + demands: ImageOverride -equals windows.vs2019.amd64 + timeoutInMinutes: 180 + strategy: + matrix: + # Public-only builds + ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: + Build_Debug_x86: + _BuildConfig: Debug + _BuildArchitecture: x86 + _DOTNET_CLI_UI_LANGUAGE: '' + _AdditionalBuildParameters: '' + _TestArg: $(_WindowsTestArg) + Build_ES_Debug_x64: + _BuildConfig: Debug + _BuildArchitecture: x64 + _DOTNET_CLI_UI_LANGUAGE: es + _AdditionalBuildParameters: '' + _TestArg: '' + # Internal-only builds + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + Build_Release_x86: + _BuildConfig: Release + _BuildArchitecture: x86 + _DOTNET_CLI_UI_LANGUAGE: '' + _AdditionalBuildParameters: '' + _TestArg: $(_WindowsTestArg) + # Always run builds + Build_Release_x64: + _BuildConfig: Release + _BuildArchitecture: x64 + _DOTNET_CLI_UI_LANGUAGE: '' + _AdditionalBuildParameters: '/p:PublishInternalAsset=true' + _TestArg: $(_WindowsTestArg) + Build_Release_arm: + _BuildConfig: Release + _BuildArchitecture: arm + _DOTNET_CLI_UI_LANGUAGE: '' + _AdditionalBuildParameters: '' + # Never run tests on arm64 + _TestArg: '' + Build_Release_arm64: + _BuildConfig: Release + _BuildArchitecture: arm64 + _DOTNET_CLI_UI_LANGUAGE: '' + _AdditionalBuildParameters: '' + # Never run tests on arm64 + _TestArg: '' + + - template: /eng/build.yml + parameters: + agentOs: Windows_NT + pool: + ${{ if eq(variables['System.TeamProject'], 'public') }}: + name: NetCore-Svc-Public + demands: ImageOverride -equals windows.vs2019.amd64.open + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + name: NetCore1ESPool-Svc-Internal + demands: ImageOverride -equals windows.vs2019.amd64 + timeoutInMinutes: 180 + strategy: + matrix: + # Always run builds + Build_Release_x64: + _BuildConfig: Release + _BuildArchitecture: x64 + _DOTNET_CLI_UI_LANGUAGE: '' + _AdditionalBuildParameters: '/p:PublishInternalAsset=true' + # Never run tests on PGO bits + _TestArg: '' + Build_Release_x86: + _BuildConfig: Release + _BuildArchitecture: x86 + _DOTNET_CLI_UI_LANGUAGE: '' + _AdditionalBuildParameters: '' + _TestArg: '' + pgoInstrument: true + + - template: /eng/build.yml + parameters: + agentOs: Linux + pool: + ${{ if eq(variables['System.TeamProject'], 'public') }}: + name: NetCore-Svc-Public + demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + name: NetCore1ESPool-Svc-Internal + demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 + timeoutInMinutes: 180 + strategy: + matrix: + ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: + Build_Ubuntu_18_04_Debug_x64: + _BuildConfig: Debug + _DockerParameter: '--docker ubuntu.18.04' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _TestArg: $(_NonWindowsTestArg) + Build_Fedora_29_Debug_x64: + _BuildConfig: Debug + _DockerParameter: '--docker fedora.29' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _TestArg: $(_NonWindowsTestArg) + Build_CentOS_7_1_Debug_x64: + _BuildConfig: Debug + _DockerParameter: '--docker centos' + _LinuxPortable: '' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _TestArg: $(_NonWindowsTestArg) + Build_Debian_11_Debug_x64: + _BuildConfig: Debug + _DockerParameter: '--docker debian' + _LinuxPortable: '' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _AdditionalBuildParameters: '/p:BuildSdkDeb=true' + _TestArg: $(_NonWindowsTestArg) + Build_Rhel_7_2_Release_x64: + _BuildConfig: Release + _DockerParameter: '--docker rhel' + _LinuxPortable: '' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _TestArg: $(_NonWindowsTestArg) + Build_Rhel_7_2_Release_Arm64: + _BuildConfig: Release + _DockerParameter: '--docker rhel' + _LinuxPortable: '' + _RuntimeIdentifier: '--runtime-id linux-arm64' + _BuildArchitecture: 'arm64' + # Never run tests on arm + _TestArg: '' + _AdditionalBuildParameters: '/p:CLIBUILD_SKIP_TESTS=true' + Build_Arm_Debug: + _BuildConfig: Debug + _DockerParameter: '' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '--runtime-id linux-arm' + _BuildArchitecture: 'arm' + # Never run tests on arm + _TestArg: '' + Build_Arm64_Debug: + _BuildConfig: Debug + _DockerParameter: '' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '--runtime-id linux-arm64' + _BuildArchitecture: 'arm64' + # Never run tests on arm64 + _TestArg: '' + Build_Linux_musl_Debug_arm: + _BuildConfig: Debug + # linux-musl-arm cross gen depends on glibc 2.27 (this OS has it) + _DockerParameter: '--docker ubuntu.18.04' + _LinuxPortable: '' + _RuntimeIdentifier: '--runtime-id linux-musl-arm' + _BuildArchitecture: 'arm' + _AdditionalBuildParameters: '/p:OSName="linux-musl"' + # Never run tests on arm + _TestArg: '' + Build_Linux_musl_Debug_arm64: + _BuildConfig: Debug + _DockerParameter: '' + _LinuxPortable: '' + _RuntimeIdentifier: '--runtime-id linux-musl-arm64' + _BuildArchitecture: 'arm64' + _AdditionalBuildParameters: '/p:OSName="linux-musl"' + # Never run tests on arm64 + _TestArg: '' + Build_Linux_musl_Debug_x64: + _BuildConfig: Debug + _DockerParameter: '--docker alpine.3.13' + _LinuxPortable: '' + _RuntimeIdentifier: '--runtime-id linux-musl-x64' + _BuildArchitecture: 'x64' + # Pass in HostOSName when running on alpine + _AdditionalBuildParameters: '/p:HostOSName="linux-musl"' + _TestArg: $(_NonWindowsTestArg) + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + Build_Arm_Release: + _BuildConfig: Release + _DockerParameter: '' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '--runtime-id linux-arm' + _BuildArchitecture: 'arm' + # Never run tests on arm + _TestArg: '' + Build_Arm64_Release: + _BuildConfig: Release + _DockerParameter: '' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '--runtime-id linux-arm64' + _BuildArchitecture: 'arm64' + # Never run tests on arm64 + _TestArg: '' + Build_Linux_musl_Release_arm: + _BuildConfig: Release + # linux-musl-arm cross gen depends on glibc 2.27 (this OS has it) + _DockerParameter: '--docker ubuntu.18.04' + _LinuxPortable: '' + _RuntimeIdentifier: '--runtime-id linux-musl-arm' + _BuildArchitecture: 'arm' + _AdditionalBuildParameters: '/p:OSName="linux-musl"' + # Never run tests on arm + _TestArg: '' + Build_Linux_musl_Release_arm64: + _BuildConfig: Release + _DockerParameter: '' + _LinuxPortable: '' + _RuntimeIdentifier: '--runtime-id linux-musl-arm64' + _BuildArchitecture: 'arm64' + _AdditionalBuildParameters: '/p:OSName="linux-musl"' + # Never run tests on arm64 + _TestArg: '' + Build_Linux_musl_Release_x64: + _BuildConfig: Release + _DockerParameter: '--docker alpine.3.13' + _LinuxPortable: '' + _RuntimeIdentifier: '--runtime-id linux-musl-x64' + _BuildArchitecture: 'x64' + # Pass in HostOSName when running on alpine + _AdditionalBuildParameters: '/p:HostOSName="linux-musl"' + Build_Linux_Portable_Deb_Release_x64: + _BuildConfig: Release + _DockerParameter: '--docker ubuntu.18.04' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + # Do not publish zips and tarballs. The linux-x64 binaries are + # already published by Build_LinuxPortable_Release_x64 + _AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:BuildSdkDeb=true' + _TestArg: $(_NonWindowsTestArg) + Build_Linux_Portable_Rpm_Release_x64: + _BuildConfig: Release + _DockerParameter: '--docker rhel' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + # Do not publish zips and tarballs. The linux-x64 binaries are + # already published by Build_LinuxPortable_Release_x64 + _AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false' + _TestArg: $(_NonWindowsTestArg) + Build_Linux_Portable_Rpm_Release_Arm64: + _BuildConfig: Release + _DockerParameter: '--docker rhel' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '--runtime-id linux-arm64' + _BuildArchitecture: 'arm64' + # Do not publish zips and tarballs. The linux-x64 binaries are + # already published by Build_LinuxPortable_Release_x64 + _AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:CLIBUILD_SKIP_TESTS=true' + # Never run tests on arm64 + _TestArg: '' + Build_LinuxPortable_Release_x64: + _BuildConfig: Release + _DockerParameter: '' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _TestArg: $(_NonWindowsTestArg) + + - template: /eng/build.yml + parameters: + agentOs: Linux + pool: + ${{ if eq(variables['System.TeamProject'], 'public') }}: + name: NetCore-Svc-Public + demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + name: NetCore1ESPool-Svc-Internal + demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 + timeoutInMinutes: 180 + strategy: + matrix: + # Always run builds + Build_LinuxPortable_Release_x64: + _BuildConfig: Release + _DockerParameter: '' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _TestArg: '' + pgoInstrument: true + + - template: /eng/build.yml + parameters: + agentOs: Darwin + pool: + vmImage: 'macOS-latest' + timeoutInMinutes: 180 + strategy: + matrix: + Build_Release_x64: + _BuildConfig: Release + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _TestArg: $(_NonWindowsTestArg) + Build_Release_arm64: + _BuildConfig: Release + _RuntimeIdentifier: '--runtime-id osx-arm64' + _BuildArchitecture: 'arm64' + # Never run tests on arm64 + _TestArg: '' + + - template: /eng/common/templates/jobs/source-build.yml + + - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball.yml + + - ${{ if in(variables['Build.Reason'], 'PullRequest') }}: + - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml + parameters: + dependsOn: Source_Build_Create_Tarball + + # https://github.com/dotnet/core-sdk/issues/248 + # - template: /eng/build.yml + # parameters: + # agentOs: FreeBSD + # queue: + # name: dnceng-freebsd-internal + # timeoutInMinutes: 180 + # matrix: + # Build_Release: + # _BuildConfig: Release + # _BuildArchitecture: 'x64' + # _AdditionalBuildParameters: '/p:DisableSourceLink=true /p:DISABLE_CROSSGEN=true' + + - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - template: /eng/common/templates/job/publish-build-assets.yml + parameters: + dependsOn: + - Windows_NT + - Linux + - Darwin + - Source_Build_Managed + - Source_Build_Create_Tarball + publishUsingPipelines: true + pool: + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + name: NetCore1ESPool-Svc-Internal + demands: ImageOverride -equals windows.vs2017.amd64 + + +- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - template: eng\common\templates\post-build\post-build.yml + parameters: + publishingInfraVersion: 3 + enableSymbolValidation: false + enableSigningValidation: false + enableNugetValidation: false + enableSourceLinkValidation: false + publishInstallersAndChecksums: true + SDLValidationParameters: + enable: false + params: ' -SourceToolsList @("policheck","credscan") + -TsaInstanceURL $(_TsaInstanceURL) + -TsaProjectName $(_TsaProjectName) + -TsaNotificationEmail $(_TsaNotificationEmail) + -TsaCodebaseAdmin $(_TsaCodebaseAdmin) + -TsaBugAreaPath $(_TsaBugAreaPath) + -TsaIterationPath $(_TsaIterationPath) + -TsaRepositoryName "dotnet-installer" + -TsaCodebaseName "dotnet-installer" + -TsaPublish $True' From 68baf9ee045dc0ab12e4a7544b22c6ce9a62925a Mon Sep 17 00:00:00 2001 From: Marc Paine Date: Tue, 12 Mar 2024 09:51:06 -0700 Subject: [PATCH 15/25] Update the nuget and msbuild ref versions for the installer tasks to the matching version we ship --- eng/Versions.props | 7 ++++++- src/core-sdk-tasks/core-sdk-tasks.csproj | 6 +++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index 73175be3b..4d4f96a7a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -93,7 +93,12 @@ - 5.8.0 + 6.0.6-rc.4 + $(NuGetBuildTasksPackageVersion) + + + + 17.0.1 diff --git a/src/core-sdk-tasks/core-sdk-tasks.csproj b/src/core-sdk-tasks/core-sdk-tasks.csproj index 5ad1f11af..f92da6189 100644 --- a/src/core-sdk-tasks/core-sdk-tasks.csproj +++ b/src/core-sdk-tasks/core-sdk-tasks.csproj @@ -9,12 +9,12 @@ - - + + - + From 2f4fd5305bffb4985cba6c00e663e5bfe955ce6a Mon Sep 17 00:00:00 2001 From: NET Source-Build Bot <102560831+dotnet-sb-bot@users.noreply.github.com> Date: Tue, 12 Mar 2024 21:45:21 +0100 Subject: [PATCH 16/25] .NET Source-Build 6.0.128 March 2024 Updates (#19006) --- eng/Versions.props | 2 +- src/SourceBuild/tarball/content/global.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index 73175be3b..69838e386 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -177,7 +177,7 @@ or minor release, prebuilts may be needed. When the release is mature, prebuilts are not necessary, and this property is removed from the file. --> - 6.0.127 + 6.0.128 diff --git a/src/SourceBuild/tarball/content/global.json b/src/SourceBuild/tarball/content/global.json index a478949a8..7de6fb7bd 100644 --- a/src/SourceBuild/tarball/content/global.json +++ b/src/SourceBuild/tarball/content/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "6.0.127" + "dotnet": "6.0.128" }, "msbuild-sdks": { "Microsoft.Build.CentralPackageVersions": "2.0.1", From b130f8f444f34899443706961fc0dca3594bbf12 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 13 Mar 2024 15:08:19 +0000 Subject: [PATCH 17/25] Update dependencies from https://github.com/dotnet/arcade build Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.CMake.Sdk From Version 6.0.0-beta.24113.1 -> To Version 6.0.0-beta.24162.4 --- eng/Version.Details.xml | 12 +- eng/Versions.props | 2 +- eng/common/SetupNugetSources.ps1 | 26 +- eng/common/templates-official/job/job.yml | 276 +++++++++++++++++ .../templates-official/job/onelocbuild.yml | 109 +++++++ .../job/publish-build-assets.yml | 121 ++++++++ .../templates-official/job/source-build.yml | 64 ++++ .../job/source-index-stage1.yml | 59 ++++ .../templates-official/jobs/codeql-build.yml | 31 ++ eng/common/templates-official/jobs/jobs.yml | 100 +++++++ .../templates-official/jobs/source-build.yml | 46 +++ .../post-build/common-variables.yml | 26 ++ .../post-build/post-build.yml | 277 ++++++++++++++++++ .../post-build/setup-maestro-vars.yml | 70 +++++ .../post-build/trigger-subscription.yml | 13 + .../steps/add-build-to-channel.yml | 13 + .../steps/component-governance.yml | 10 + .../steps/execute-codeql.yml | 32 ++ .../steps/generate-sbom.yml | 44 +++ .../templates-official/steps/publish-logs.yml | 23 ++ .../templates-official/steps/retain-build.yml | 28 ++ .../steps/send-to-helix.yml | 94 ++++++ .../templates-official/steps/source-build.yml | 108 +++++++ .../variables/sdl-variables.yml | 7 + global.json | 6 +- 25 files changed, 1574 insertions(+), 23 deletions(-) create mode 100644 eng/common/templates-official/job/job.yml create mode 100644 eng/common/templates-official/job/onelocbuild.yml create mode 100644 eng/common/templates-official/job/publish-build-assets.yml create mode 100644 eng/common/templates-official/job/source-build.yml create mode 100644 eng/common/templates-official/job/source-index-stage1.yml create mode 100644 eng/common/templates-official/jobs/codeql-build.yml create mode 100644 eng/common/templates-official/jobs/jobs.yml create mode 100644 eng/common/templates-official/jobs/source-build.yml create mode 100644 eng/common/templates-official/post-build/common-variables.yml create mode 100644 eng/common/templates-official/post-build/post-build.yml create mode 100644 eng/common/templates-official/post-build/setup-maestro-vars.yml create mode 100644 eng/common/templates-official/post-build/trigger-subscription.yml create mode 100644 eng/common/templates-official/steps/add-build-to-channel.yml create mode 100644 eng/common/templates-official/steps/component-governance.yml create mode 100644 eng/common/templates-official/steps/execute-codeql.yml create mode 100644 eng/common/templates-official/steps/generate-sbom.yml create mode 100644 eng/common/templates-official/steps/publish-logs.yml create mode 100644 eng/common/templates-official/steps/retain-build.yml create mode 100644 eng/common/templates-official/steps/send-to-helix.yml create mode 100644 eng/common/templates-official/steps/source-build.yml create mode 100644 eng/common/templates-official/variables/sdl-variables.yml diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index cae76778c..d050462fb 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -197,19 +197,19 @@ - + https://github.com/dotnet/arcade - 96facbceaca1e4eb498055c005088764d3b38dff + c80f6c7bcfdd0e62a3012f9a97ab52be477c7d75 - + https://github.com/dotnet/arcade - 96facbceaca1e4eb498055c005088764d3b38dff + c80f6c7bcfdd0e62a3012f9a97ab52be477c7d75 - + https://github.com/dotnet/arcade - 96facbceaca1e4eb498055c005088764d3b38dff + c80f6c7bcfdd0e62a3012f9a97ab52be477c7d75 https://github.com/dotnet/source-build-reference-packages diff --git a/eng/Versions.props b/eng/Versions.props index 69838e386..5ac53017e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -19,7 +19,7 @@ - 6.0.0-beta.24113.1 + 6.0.0-beta.24162.4 diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1 index 18823840b..0182856ed 100644 --- a/eng/common/SetupNugetSources.ps1 +++ b/eng/common/SetupNugetSources.ps1 @@ -35,7 +35,7 @@ Set-StrictMode -Version 2.0 . $PSScriptRoot\tools.ps1 # Add source entry to PackageSources -function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Username, $Password) { +function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Username, $pwd) { $packageSource = $sources.SelectSingleNode("add[@key='$SourceName']") if ($packageSource -eq $null) @@ -49,11 +49,11 @@ function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Usern Write-Host "Package source $SourceName already present." } - AddCredential -Creds $creds -Source $SourceName -Username $Username -Password $Password + AddCredential -Creds $creds -Source $SourceName -Username $Username -Password $pwd } # Add a credential node for the specified source -function AddCredential($creds, $source, $username, $password) { +function AddCredential($creds, $source, $username, $pwd) { # Looks for credential configuration for the given SourceName. Create it if none is found. $sourceElement = $creds.SelectSingleNode($Source) if ($sourceElement -eq $null) @@ -82,17 +82,17 @@ function AddCredential($creds, $source, $username, $password) { $passwordElement.SetAttribute("key", "ClearTextPassword") $sourceElement.AppendChild($passwordElement) | Out-Null } - $passwordElement.SetAttribute("value", $Password) + $passwordElement.SetAttribute("value", $pwd) } -function InsertMaestroPrivateFeedCredentials($Sources, $Creds, $Username, $Password) { +function InsertMaestroPrivateFeedCredentials($Sources, $Creds, $Username, $pwd) { $maestroPrivateSources = $Sources.SelectNodes("add[contains(@key,'darc-int')]") Write-Host "Inserting credentials for $($maestroPrivateSources.Count) Maestro's private feeds." ForEach ($PackageSource in $maestroPrivateSources) { Write-Host "`tInserting credential for Maestro's feed:" $PackageSource.Key - AddCredential -Creds $creds -Source $PackageSource.Key -Username $Username -Password $Password + AddCredential -Creds $creds -Source $PackageSource.Key -Username $Username -pwd $pwd } } @@ -144,24 +144,24 @@ if ($disabledSources -ne $null) { $userName = "dn-bot" # Insert credential nodes for Maestro's private feeds -InsertMaestroPrivateFeedCredentials -Sources $sources -Creds $creds -Username $userName -Password $Password +InsertMaestroPrivateFeedCredentials -Sources $sources -Creds $creds -Username $userName -pwd $Password $dotnet31Source = $sources.SelectSingleNode("add[@key='dotnet3.1']") if ($dotnet31Source -ne $null) { - AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v2" -Creds $creds -Username $userName -Password $Password - AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password + AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v2" -Creds $creds -Username $userName -pwd $Password + AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password } $dotnet5Source = $sources.SelectSingleNode("add[@key='dotnet5']") if ($dotnet5Source -ne $null) { - AddPackageSource -Sources $sources -SourceName "dotnet5-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet5-internal/nuget/v2" -Creds $creds -Username $userName -Password $Password - AddPackageSource -Sources $sources -SourceName "dotnet5-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet5-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password + AddPackageSource -Sources $sources -SourceName "dotnet5-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet5-internal/nuget/v2" -Creds $creds -Username $userName -pwd $Password + AddPackageSource -Sources $sources -SourceName "dotnet5-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet5-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password } $dotnet6Source = $sources.SelectSingleNode("add[@key='dotnet6']") if ($dotnet6Source -ne $null) { - AddPackageSource -Sources $sources -SourceName "dotnet6-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet6-internal/nuget/v2" -Creds $creds -Username $userName -Password $Password - AddPackageSource -Sources $sources -SourceName "dotnet6-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet6-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password + AddPackageSource -Sources $sources -SourceName "dotnet6-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet6-internal/nuget/v2" -Creds $creds -Username $userName -pwd $Password + AddPackageSource -Sources $sources -SourceName "dotnet6-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/dotnet6-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password } $doc.Save($filename) diff --git a/eng/common/templates-official/job/job.yml b/eng/common/templates-official/job/job.yml new file mode 100644 index 000000000..616bfc386 --- /dev/null +++ b/eng/common/templates-official/job/job.yml @@ -0,0 +1,276 @@ +# Internal resources (telemetry, microbuild) can only be accessed from non-public projects, +# and some (Microbuild) should only be applied to non-PR cases for internal builds. + +parameters: +# Job schema parameters - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job + cancelTimeoutInMinutes: '' + condition: '' + container: '' + continueOnError: false + dependsOn: '' + displayName: '' + pool: '' + steps: [] + strategy: '' + timeoutInMinutes: '' + variables: [] + workspace: '' + templateContext: '' + +# Job base template specific parameters + # See schema documentation - https://github.com/dotnet/arcade/blob/master/Documentation/AzureDevOps/TemplateSchema.md + artifacts: '' + enableMicrobuild: false + enablePublishBuildArtifacts: false + enablePublishBuildAssets: false + enablePublishTestResults: false + enablePublishUsingPipelines: false + disableComponentGovernance: '' + mergeTestResults: false + testRunTitle: '' + testResultsFormat: '' + name: '' + preSteps: [] + runAsPublic: false +# Sbom related params + enableSbom: true + PackageVersion: 6.0.0 + BuildDropPath: '$(Build.SourcesDirectory)/artifacts' + +jobs: +- job: ${{ parameters.name }} + + ${{ if ne(parameters.cancelTimeoutInMinutes, '') }}: + cancelTimeoutInMinutes: ${{ parameters.cancelTimeoutInMinutes }} + + ${{ if ne(parameters.condition, '') }}: + condition: ${{ parameters.condition }} + + ${{ if ne(parameters.container, '') }}: + container: ${{ parameters.container }} + + ${{ if ne(parameters.continueOnError, '') }}: + continueOnError: ${{ parameters.continueOnError }} + + ${{ if ne(parameters.dependsOn, '') }}: + dependsOn: ${{ parameters.dependsOn }} + + ${{ if ne(parameters.displayName, '') }}: + displayName: ${{ parameters.displayName }} + + ${{ if ne(parameters.pool, '') }}: + pool: ${{ parameters.pool }} + + ${{ if ne(parameters.strategy, '') }}: + strategy: ${{ parameters.strategy }} + + ${{ if ne(parameters.timeoutInMinutes, '') }}: + timeoutInMinutes: ${{ parameters.timeoutInMinutes }} + + ${{ if ne(parameters.templateContext, '') }}: + templateContext: ${{ parameters.templateContext }} + + variables: + - ${{ if ne(parameters.enableTelemetry, 'false') }}: + - name: DOTNET_CLI_TELEMETRY_PROFILE + value: '$(Build.Repository.Uri)' + - ${{ if eq(parameters.enableRichCodeNavigation, 'true') }}: + - name: EnableRichCodeNavigation + value: 'true' + # Retry signature validation up to three times, waiting 2 seconds between attempts. + # See https://learn.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu3028#retry-untrusted-root-failures + - name: NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY + value: 3,2000 + - ${{ each variable in parameters.variables }}: + # handle name-value variable syntax + # example: + # - name: [key] + # value: [value] + - ${{ if ne(variable.name, '') }}: + - name: ${{ variable.name }} + value: ${{ variable.value }} + + # handle variable groups + - ${{ if ne(variable.group, '') }}: + - group: ${{ variable.group }} + + # handle key-value variable syntax. + # example: + # - [key]: [value] + - ${{ if and(eq(variable.name, ''), eq(variable.group, '')) }}: + - ${{ each pair in variable }}: + - name: ${{ pair.key }} + value: ${{ pair.value }} + + # DotNet-HelixApi-Access provides 'HelixApiAccessToken' for internal builds + - ${{ if and(eq(parameters.enableTelemetry, 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - group: DotNet-HelixApi-Access + + ${{ if ne(parameters.workspace, '') }}: + workspace: ${{ parameters.workspace }} + + steps: + - ${{ if ne(parameters.preSteps, '') }}: + - ${{ each preStep in parameters.preSteps }}: + - ${{ preStep }} + + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - ${{ if eq(parameters.enableMicrobuild, 'true') }}: + - task: MicroBuildSigningPlugin@3 + displayName: Install MicroBuild plugin + inputs: + signType: $(_SignType) + zipSources: false + feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + env: + TeamName: $(_TeamName) + continueOnError: ${{ parameters.continueOnError }} + condition: and(succeeded(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT')) + + - task: NuGetAuthenticate@1 + + - ${{ if or(eq(parameters.artifacts.download, 'true'), ne(parameters.artifacts.download, '')) }}: + - task: DownloadPipelineArtifact@2 + inputs: + buildType: current + artifactName: ${{ coalesce(parameters.artifacts.download.name, 'Artifacts_$(Agent.OS)_$(_BuildConfig)') }} + targetPath: ${{ coalesce(parameters.artifacts.download.path, 'artifacts') }} + itemPattern: ${{ coalesce(parameters.artifacts.download.pattern, '**') }} + + - ${{ each step in parameters.steps }}: + - ${{ step }} + + - ${{ if eq(parameters.enableRichCodeNavigation, true) }}: + - task: RichCodeNavIndexer@0 + displayName: RichCodeNav Upload + inputs: + languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }} + environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'production') }} + richNavLogOutputDirectory: $(Build.SourcesDirectory)/artifacts/bin + continueOnError: true + + - template: /eng/common/templates-official/steps/component-governance.yml + parameters: + ${{ if eq(parameters.disableComponentGovernance, '') }}: + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.runAsPublic, 'false'), or(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/dotnet/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/microsoft/'), eq(variables['Build.SourceBranch'], 'refs/heads/main'))) }}: + disableComponentGovernance: false + ${{ else }}: + disableComponentGovernance: true + ${{ else }}: + disableComponentGovernance: ${{ parameters.disableComponentGovernance }} + + - ${{ if eq(parameters.enableMicrobuild, 'true') }}: + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - task: MicroBuildCleanup@1 + displayName: Execute Microbuild cleanup tasks + condition: and(always(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT')) + continueOnError: ${{ parameters.continueOnError }} + env: + TeamName: $(_TeamName) + + - ${{ if ne(parameters.artifacts.publish, '') }}: + - ${{ if or(eq(parameters.artifacts.publish.artifacts, 'true'), ne(parameters.artifacts.publish.artifacts, '')) }}: + - task: CopyFiles@2 + displayName: Gather binaries for publish to artifacts + inputs: + SourceFolder: 'artifacts/bin' + Contents: '**' + TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/bin' + - task: CopyFiles@2 + displayName: Gather packages for publish to artifacts + inputs: + SourceFolder: 'artifacts/packages' + Contents: '**' + TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/packages' + - task: 1ES.PublishBuildArtifacts@1 + displayName: Publish pipeline artifacts + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)/artifacts' + PublishLocation: Container + ArtifactName: ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }} + continueOnError: true + condition: always() + - ${{ if or(eq(parameters.artifacts.publish.logs, 'true'), ne(parameters.artifacts.publish.logs, '')) }}: + - task: 1ES.PublishPipelineArtifact@1 + inputs: + targetPath: 'artifacts/log' + artifactName: ${{ coalesce(parameters.artifacts.publish.logs.name, 'Logs_Build_$(Agent.Os)_$(_BuildConfig)') }} + displayName: 'Publish logs' + continueOnError: true + condition: always() + + - ${{ if or(eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }}: + - ${{ if and(ne(parameters.enablePublishUsingPipelines, 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - task: CopyFiles@2 + displayName: Gather Asset Manifests + inputs: + SourceFolder: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/AssetManifest' + TargetFolder: '$(Build.ArtifactStagingDirectory)/AssetManifests' + continueOnError: ${{ parameters.continueOnError }} + condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true')) + + - task: 1ES.PublishBuildArtifacts@1 + displayName: Push Asset Manifests + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)/AssetManifests' + PublishLocation: Container + ArtifactName: AssetManifests + continueOnError: ${{ parameters.continueOnError }} + condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true')) + + - ${{ if ne(parameters.enablePublishBuildArtifacts, 'false') }}: + - task: 1ES.PublishBuildArtifacts@1 + displayName: Publish Logs + inputs: + PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)' + PublishLocation: Container + ArtifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }} + continueOnError: true + condition: always() + + - ${{ if or(and(eq(parameters.enablePublishTestResults, 'true'), eq(parameters.testResultsFormat, '')), eq(parameters.testResultsFormat, 'xunit')) }}: + - task: PublishTestResults@2 + displayName: Publish XUnit Test Results + inputs: + testResultsFormat: 'xUnit' + testResultsFiles: '*.xml' + searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)' + testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-xunit + mergeTestResults: ${{ parameters.mergeTestResults }} + continueOnError: true + condition: always() + - ${{ if or(and(eq(parameters.enablePublishTestResults, 'true'), eq(parameters.testResultsFormat, '')), eq(parameters.testResultsFormat, 'vstest')) }}: + - task: PublishTestResults@2 + displayName: Publish TRX Test Results + inputs: + testResultsFormat: 'VSTest' + testResultsFiles: '*.trx' + searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)' + testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-trx + mergeTestResults: ${{ parameters.mergeTestResults }} + continueOnError: true + condition: always() + + - ${{ if and(eq(parameters.enablePublishBuildAssets, true), ne(parameters.enablePublishUsingPipelines, 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - task: CopyFiles@2 + displayName: Gather Asset Manifests + inputs: + SourceFolder: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/AssetManifest' + TargetFolder: '$(Build.StagingDirectory)/AssetManifests' + continueOnError: ${{ parameters.continueOnError }} + condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true')) + + - task: 1ES.PublishBuildArtifacts@1 + displayName: Push Asset Manifests + inputs: + PathtoPublish: '$(Build.StagingDirectory)/AssetManifests' + PublishLocation: Container + ArtifactName: AssetManifests + continueOnError: ${{ parameters.continueOnError }} + condition: and(succeeded(), eq(variables['_DotNetPublishToBlobFeed'], 'true')) + + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.enableSbom, 'true')) }}: + - template: /eng/common/templates-official/steps/generate-sbom.yml + parameters: + PackageVersion: ${{ parameters.packageVersion}} + BuildDropPath: ${{ parameters.buildDropPath }} diff --git a/eng/common/templates-official/job/onelocbuild.yml b/eng/common/templates-official/job/onelocbuild.yml new file mode 100644 index 000000000..e0e9a4bc5 --- /dev/null +++ b/eng/common/templates-official/job/onelocbuild.yml @@ -0,0 +1,109 @@ +parameters: + # Optional: dependencies of the job + dependsOn: '' + + # Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool + pool: '' + + CeapexPat: $(dn-bot-ceapex-package-r) # PAT for the loc AzDO instance https://dev.azure.com/ceapex + GithubPat: $(BotAccount-dotnet-bot-repo-PAT) + + SourcesDirectory: $(Build.SourcesDirectory) + CreatePr: true + AutoCompletePr: false + ReusePr: true + UseLfLineEndings: true + UseCheckedInLocProjectJson: false + LanguageSet: VS_Main_Languages + LclSource: lclFilesInRepo + LclPackageId: '' + RepoType: gitHub + GitHubOrg: dotnet + MirrorRepo: '' + MirrorBranch: main + condition: '' + +jobs: +- job: OneLocBuild + + dependsOn: ${{ parameters.dependsOn }} + + displayName: OneLocBuild + + ${{ if ne(parameters.pool, '') }}: + pool: ${{ parameters.pool }} + ${{ if eq(parameters.pool, '') }}: + pool: + # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + name: AzurePipelines-EO + image: 1ESPT-Windows2022 + demands: Cmd + os: windows + # If it's not devdiv, it's dnceng + ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: + name: NetCore1ESPool-Svc-Internal + image: 1es-windows-2022-pt + os: windows + + variables: + - group: OneLocBuildVariables # Contains the CeapexPat and GithubPat + - name: _GenerateLocProjectArguments + value: -SourcesDirectory ${{ parameters.SourcesDirectory }} + -LanguageSet "${{ parameters.LanguageSet }}" + -CreateNeutralXlfs + - ${{ if eq(parameters.UseCheckedInLocProjectJson, 'true') }}: + - name: _GenerateLocProjectArguments + value: ${{ variables._GenerateLocProjectArguments }} -UseCheckedInLocProjectJson + + + steps: + - task: Powershell@2 + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/generate-locproject.ps1 + arguments: $(_GenerateLocProjectArguments) + displayName: Generate LocProject.json + condition: ${{ parameters.condition }} + + - task: OneLocBuild@2 + displayName: OneLocBuild + env: + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + inputs: + locProj: eng/Localize/LocProject.json + outDir: $(Build.ArtifactStagingDirectory) + lclSource: ${{ parameters.LclSource }} + lclPackageId: ${{ parameters.LclPackageId }} + isCreatePrSelected: ${{ parameters.CreatePr }} + ${{ if eq(parameters.CreatePr, true) }}: + isAutoCompletePrSelected: ${{ parameters.AutoCompletePr }} + isUseLfLineEndingsSelected: ${{ parameters.UseLfLineEndings }} + ${{ if eq(parameters.RepoType, 'gitHub') }}: + isShouldReusePrSelected: ${{ parameters.ReusePr }} + packageSourceAuth: patAuth + patVariable: ${{ parameters.CeapexPat }} + ${{ if eq(parameters.RepoType, 'gitHub') }}: + repoType: ${{ parameters.RepoType }} + gitHubPatVariable: "${{ parameters.GithubPat }}" + ${{ if ne(parameters.MirrorRepo, '') }}: + isMirrorRepoSelected: true + gitHubOrganization: ${{ parameters.GitHubOrg }} + mirrorRepo: ${{ parameters.MirrorRepo }} + mirrorBranch: ${{ parameters.MirrorBranch }} + condition: ${{ parameters.condition }} + + - task: 1ES.PublishBuildArtifacts@1 + displayName: Publish Localization Files + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)/loc' + PublishLocation: Container + ArtifactName: Loc + condition: ${{ parameters.condition }} + + - task: 1ES.PublishBuildArtifacts@1 + displayName: Publish LocProject.json + inputs: + PathtoPublish: '$(Build.SourcesDirectory)/eng/Localize/' + PublishLocation: Container + ArtifactName: Loc + condition: ${{ parameters.condition }} \ No newline at end of file diff --git a/eng/common/templates-official/job/publish-build-assets.yml b/eng/common/templates-official/job/publish-build-assets.yml new file mode 100644 index 000000000..9498aa412 --- /dev/null +++ b/eng/common/templates-official/job/publish-build-assets.yml @@ -0,0 +1,121 @@ +parameters: + configuration: 'Debug' + + # Optional: condition for the job to run + condition: '' + + # Optional: 'true' if future jobs should run even if this job fails + continueOnError: false + + # Optional: dependencies of the job + dependsOn: '' + + # Optional: Include PublishBuildArtifacts task + enablePublishBuildArtifacts: false + + # Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool + pool: {} + + # Optional: should run as a public build even in the internal project + # if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects. + runAsPublic: false + + # Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing + publishUsingPipelines: false + +jobs: +- job: Asset_Registry_Publish + + dependsOn: ${{ parameters.dependsOn }} + + displayName: Publish to Build Asset Registry + + pool: ${{ parameters.pool }} + + variables: + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - name: _BuildConfig + value: ${{ parameters.configuration }} + - group: Publish-Build-Assets + - group: AzureDevOps-Artifact-Feeds-Pats + - name: runCodesignValidationInjection + value: false + + steps: + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - task: DownloadBuildArtifacts@0 + displayName: Download artifact + inputs: + artifactName: AssetManifests + downloadPath: '$(Build.StagingDirectory)/Download' + checkDownloadedFiles: true + condition: ${{ parameters.condition }} + continueOnError: ${{ parameters.continueOnError }} + + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - task: NuGetAuthenticate@1 + + - task: PowerShell@2 + displayName: Enable cross-org NuGet feed authentication + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-all-orgs-artifact-feeds-rw) + + - task: PowerShell@2 + displayName: Publish Build Assets + inputs: + filePath: eng\common\sdk-task.ps1 + arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet + /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests' + /p:BuildAssetRegistryToken=$(MaestroAccessToken) + /p:MaestroApiEndpoint=https://maestro.dot.net + /p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }} + /p:Configuration=$(_BuildConfig) + /p:OfficialBuildId=$(Build.BuildNumber) + condition: ${{ parameters.condition }} + continueOnError: ${{ parameters.continueOnError }} + + - task: powershell@2 + displayName: Create ReleaseConfigs Artifact + inputs: + targetType: inline + script: | + Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value $(BARBuildId) + Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value "$(DefaultChannels)" + Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value $(IsStableBuild) + + - task: 1ES.PublishBuildArtifacts@1 + displayName: Publish ReleaseConfigs Artifact + inputs: + PathtoPublish: '$(Build.StagingDirectory)/ReleaseConfigs.txt' + PublishLocation: Container + ArtifactName: ReleaseConfigs + + - task: powershell@2 + displayName: Check if SymbolPublishingExclusionsFile.txt exists + inputs: + targetType: inline + script: | + $symbolExclusionfile = "$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt" + if(Test-Path -Path $symbolExclusionfile) + { + Write-Host "SymbolExclusionFile exists" + Write-Host "##vso[task.setvariable variable=SymbolExclusionFile]true" + } + else{ + Write-Host "Symbols Exclusion file does not exists" + Write-Host "##vso[task.setvariable variable=SymbolExclusionFile]false" + } + + - task: 1ES.PublishBuildArtifacts@1 + displayName: Publish SymbolPublishingExclusionsFile Artifact + condition: eq(variables['SymbolExclusionFile'], 'true') + inputs: + PathtoPublish: '$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt' + PublishLocation: Container + ArtifactName: ReleaseConfigs + + - ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}: + - template: /eng/common/templates-official/steps/publish-logs.yml + parameters: + JobLabel: 'Publish_Artifacts_Logs' diff --git a/eng/common/templates-official/job/source-build.yml b/eng/common/templates-official/job/source-build.yml new file mode 100644 index 000000000..96be5e6e1 --- /dev/null +++ b/eng/common/templates-official/job/source-build.yml @@ -0,0 +1,64 @@ +parameters: + # This template adds arcade-powered source-build to CI. The template produces a server job with a + # default ID 'Source_Build_Complete' to put in a dependency list if necessary. + + # Specifies the prefix for source-build jobs added to pipeline. Use this if disambiguation needed. + jobNamePrefix: 'Source_Build' + + # Defines the platform on which to run the job. By default, a linux-x64 machine, suitable for + # managed-only repositories. This is an object with these properties: + # + # name: '' + # The name of the job. This is included in the job ID. + # targetRID: '' + # The name of the target RID to use, instead of the one auto-detected by Arcade. + # nonPortable: false + # Enables non-portable mode. This means a more specific RID (e.g. fedora.32-x64 rather than + # linux-x64), and compiling against distro-provided packages rather than portable ones. + # skipPublishValidation: false + # Disables publishing validation. By default, a check is performed to ensure no packages are + # published by source-build. + # container: '' + # A container to use. Runs in docker. + # pool: {} + # A pool to use. Runs directly on an agent. + # buildScript: '' + # Specifies the build script to invoke to perform the build in the repo. The default + # './build.sh' should work for typical Arcade repositories, but this is customizable for + # difficult situations. + # jobProperties: {} + # A list of job properties to inject at the top level, for potential extensibility beyond + # container and pool. + platform: {} + +jobs: +- job: ${{ parameters.jobNamePrefix }}_${{ parameters.platform.name }} + displayName: Source-Build (${{ parameters.platform.name }}) + + ${{ each property in parameters.platform.jobProperties }}: + ${{ property.key }}: ${{ property.value }} + + ${{ if ne(parameters.platform.container, '') }}: + container: ${{ parameters.platform.container }} + + ${{ if eq(parameters.platform.pool, '') }}: + # The default VM host AzDO pool. This should be capable of running Docker containers: almost all + # source-build builds run in Docker, including the default managed platform. + pool: + ${{ if eq(variables['System.TeamProject'], 'public') }}: + name: NetCore-Svc-Public + demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + name: NetCore1ESPool-Svc-Internal + image: 1es-mariner-2-pt + os: linux + ${{ if ne(parameters.platform.pool, '') }}: + pool: ${{ parameters.platform.pool }} + + workspace: + clean: all + + steps: + - template: /eng/common/templates-official/steps/source-build.yml + parameters: + platform: ${{ parameters.platform }} diff --git a/eng/common/templates-official/job/source-index-stage1.yml b/eng/common/templates-official/job/source-index-stage1.yml new file mode 100644 index 000000000..3d8b0b966 --- /dev/null +++ b/eng/common/templates-official/job/source-index-stage1.yml @@ -0,0 +1,59 @@ +parameters: + runAsPublic: false + sourceIndexPackageVersion: 1.0.1-20210614.1 + sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json + sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci" + preSteps: [] + binlogPath: artifacts/log/Debug/Build.binlog + pool: + name: NetCore1ESPool-Svc-Internal + image: 1es-windows-2022-pt + os: windows + condition: '' + dependsOn: '' + +jobs: +- job: SourceIndexStage1 + dependsOn: ${{ parameters.dependsOn }} + condition: ${{ parameters.condition }} + variables: + - name: SourceIndexPackageVersion + value: ${{ parameters.sourceIndexPackageVersion }} + - name: SourceIndexPackageSource + value: ${{ parameters.sourceIndexPackageSource }} + - name: BinlogPath + value: ${{ parameters.binlogPath }} + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - group: source-dot-net stage1 variables + + pool: ${{ parameters.pool }} + steps: + - ${{ each preStep in parameters.preSteps }}: + - ${{ preStep }} + + - task: UseDotNet@2 + displayName: Use .NET Core sdk 3.1 + inputs: + packageType: sdk + version: 3.1.x + installationPath: $(Agent.TempDirectory)/dotnet + workingDirectory: $(Agent.TempDirectory) + + - script: | + $(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version $(SourceIndexPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools + $(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version $(SourceIndexPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools + displayName: Download Tools + # Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk. + workingDirectory: $(Agent.TempDirectory) + + - script: ${{ parameters.sourceIndexBuildCommand }} + displayName: Build Repository + + - script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i $(BinlogPath) -r $(Build.SourcesDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output + displayName: Process Binlog into indexable sln + + - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - script: $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name) + displayName: Upload stage1 artifacts to source index + env: + BLOB_CONTAINER_URL: $(source-dot-net-stage1-blob-container-url) diff --git a/eng/common/templates-official/jobs/codeql-build.yml b/eng/common/templates-official/jobs/codeql-build.yml new file mode 100644 index 000000000..0bf7ee29f --- /dev/null +++ b/eng/common/templates-official/jobs/codeql-build.yml @@ -0,0 +1,31 @@ +parameters: + # See schema documentation in /Documentation/AzureDevOps/TemplateSchema.md + continueOnError: false + # Required: A collection of jobs to run - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job + jobs: [] + # Optional: if specified, restore and use this version of Guardian instead of the default. + overrideGuardianVersion: '' + +jobs: +- template: /eng/common/templates-official/jobs/jobs.yml + parameters: + enableMicrobuild: false + enablePublishBuildArtifacts: false + enablePublishTestResults: false + enablePublishBuildAssets: false + enablePublishUsingPipelines: false + enableTelemetry: true + + variables: + - group: Publish-Build-Assets + # The Guardian version specified in 'eng/common/sdl/packages.config'. This value must be kept in + # sync with the packages.config file. + - name: DefaultGuardianVersion + value: 0.110.1 + - name: GuardianPackagesConfigFile + value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config + - name: GuardianVersion + value: ${{ coalesce(parameters.overrideGuardianVersion, '$(DefaultGuardianVersion)') }} + + jobs: ${{ parameters.jobs }} + diff --git a/eng/common/templates-official/jobs/jobs.yml b/eng/common/templates-official/jobs/jobs.yml new file mode 100644 index 000000000..669ccd48f --- /dev/null +++ b/eng/common/templates-official/jobs/jobs.yml @@ -0,0 +1,100 @@ +parameters: + # See schema documentation in /Documentation/AzureDevOps/TemplateSchema.md + continueOnError: false + + # Optional: Include PublishBuildArtifacts task + enablePublishBuildArtifacts: false + + # Optional: Enable publishing using release pipelines + enablePublishUsingPipelines: false + + # Optional: Enable running the source-build jobs to build repo from source + enableSourceBuild: false + + # Optional: Parameters for source-build template. + # See /eng/common/templates-official/jobs/source-build.yml for options + sourceBuildParameters: [] + + graphFileGeneration: + # Optional: Enable generating the graph files at the end of the build + enabled: false + # Optional: Include toolset dependencies in the generated graph files + includeToolset: false + + # Required: A collection of jobs to run - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job + jobs: [] + + # Optional: Override automatically derived dependsOn value for "publish build assets" job + publishBuildAssetsDependsOn: '' + + # Optional: should run as a public build even in the internal project + # if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects. + runAsPublic: false + + enableSourceIndex: false + sourceIndexParams: {} + +# Internal resources (telemetry, microbuild) can only be accessed from non-public projects, +# and some (Microbuild) should only be applied to non-PR cases for internal builds. + +jobs: +- ${{ each job in parameters.jobs }}: + - template: ../job/job.yml + parameters: + # pass along parameters + ${{ each parameter in parameters }}: + ${{ if ne(parameter.key, 'jobs') }}: + ${{ parameter.key }}: ${{ parameter.value }} + + # pass along job properties + ${{ each property in job }}: + ${{ if ne(property.key, 'job') }}: + ${{ property.key }}: ${{ property.value }} + + name: ${{ job.job }} + +- ${{ if eq(parameters.enableSourceBuild, true) }}: + - template: /eng/common/templates-official/jobs/source-build.yml + parameters: + allCompletedJobId: Source_Build_Complete + ${{ each parameter in parameters.sourceBuildParameters }}: + ${{ parameter.key }}: ${{ parameter.value }} + +- ${{ if eq(parameters.enableSourceIndex, 'true') }}: + - template: ../job/source-index-stage1.yml + parameters: + runAsPublic: ${{ parameters.runAsPublic }} + ${{ each parameter in parameters.sourceIndexParams }}: + ${{ parameter.key }}: ${{ parameter.value }} + +- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + + - ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }}: + - template: ../job/publish-build-assets.yml + parameters: + continueOnError: ${{ parameters.continueOnError }} + dependsOn: + - ${{ if ne(parameters.publishBuildAssetsDependsOn, '') }}: + - ${{ each job in parameters.publishBuildAssetsDependsOn }}: + - ${{ job.job }} + - ${{ if eq(parameters.publishBuildAssetsDependsOn, '') }}: + - ${{ each job in parameters.jobs }}: + - ${{ job.job }} + - ${{ if eq(parameters.enableSourceBuild, true) }}: + - Source_Build_Complete + pool: + # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + name: AzurePipelines-EO + image: 1ESPT-Windows2022 + demands: Cmd + os: windows + # If it's not devdiv, it's dnceng + ${{ else }}: + name: NetCore1ESPool-Svc-Internal + image: 1es-windows-2022-pt + os: windows + + runAsPublic: ${{ parameters.runAsPublic }} + publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }} + enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }} diff --git a/eng/common/templates-official/jobs/source-build.yml b/eng/common/templates-official/jobs/source-build.yml new file mode 100644 index 000000000..2159009dc --- /dev/null +++ b/eng/common/templates-official/jobs/source-build.yml @@ -0,0 +1,46 @@ +parameters: + # This template adds arcade-powered source-build to CI. A job is created for each platform, as + # well as an optional server job that completes when all platform jobs complete. + + # The name of the "join" job for all source-build platforms. If set to empty string, the job is + # not included. Existing repo pipelines can use this job depend on all source-build jobs + # completing without maintaining a separate list of every single job ID: just depend on this one + # server job. By default, not included. Recommended name if used: 'Source_Build_Complete'. + allCompletedJobId: '' + + # See /eng/common/templates-official/job/source-build.yml + jobNamePrefix: 'Source_Build' + + # This is the default platform provided by Arcade, intended for use by a managed-only repo. + defaultManagedPlatform: + name: 'Managed' + container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-3e800f1-20190501005343' + + # Defines the platforms on which to run build jobs. One job is created for each platform, and the + # object in this array is sent to the job template as 'platform'. If no platforms are specified, + # one job runs on 'defaultManagedPlatform'. + platforms: [] + +jobs: + +- ${{ if ne(parameters.allCompletedJobId, '') }}: + - job: ${{ parameters.allCompletedJobId }} + displayName: Source-Build Complete + pool: server + dependsOn: + - ${{ each platform in parameters.platforms }}: + - ${{ parameters.jobNamePrefix }}_${{ platform.name }} + - ${{ if eq(length(parameters.platforms), 0) }}: + - ${{ parameters.jobNamePrefix }}_${{ parameters.defaultManagedPlatform.name }} + +- ${{ each platform in parameters.platforms }}: + - template: /eng/common/templates-official/job/source-build.yml + parameters: + jobNamePrefix: ${{ parameters.jobNamePrefix }} + platform: ${{ platform }} + +- ${{ if eq(length(parameters.platforms), 0) }}: + - template: /eng/common/templates-official/job/source-build.yml + parameters: + jobNamePrefix: ${{ parameters.jobNamePrefix }} + platform: ${{ parameters.defaultManagedPlatform }} diff --git a/eng/common/templates-official/post-build/common-variables.yml b/eng/common/templates-official/post-build/common-variables.yml new file mode 100644 index 000000000..fae340f4d --- /dev/null +++ b/eng/common/templates-official/post-build/common-variables.yml @@ -0,0 +1,26 @@ +variables: + - group: AzureDevOps-Artifact-Feeds-Pats + - group: DotNet-Blob-Feed + - group: DotNet-DotNetCli-Storage + - group: DotNet-MSRC-Storage + - group: Publish-Build-Assets + + # Whether the build is internal or not + - name: IsInternalBuild + value: ${{ and(ne(variables['System.TeamProject'], 'public'), contains(variables['Build.SourceBranch'], 'internal')) }} + + # Default Maestro++ API Endpoint and API Version + - name: MaestroApiEndPoint + value: "https://maestro.dot.net" + - name: MaestroApiAccessToken + value: $(MaestroAccessToken) + - name: MaestroApiVersion + value: "2020-02-20" + + - name: SourceLinkCLIVersion + value: 3.0.0 + - name: SymbolToolVersion + value: 1.0.1 + + - name: runCodesignValidationInjection + value: false diff --git a/eng/common/templates-official/post-build/post-build.yml b/eng/common/templates-official/post-build/post-build.yml new file mode 100644 index 000000000..80bfa4946 --- /dev/null +++ b/eng/common/templates-official/post-build/post-build.yml @@ -0,0 +1,277 @@ +parameters: + # Which publishing infra should be used. THIS SHOULD MATCH THE VERSION ON THE BUILD MANIFEST. + # Publishing V1 is no longer supported + # Publishing V2 is no longer supported + # Publishing V3 is the default + - name: publishingInfraVersion + displayName: Which version of publishing should be used to promote the build definition? + type: number + default: 3 + values: + - 3 + + - name: BARBuildId + displayName: BAR Build Id + type: number + default: 0 + + - name: PromoteToChannelIds + displayName: Channel to promote BARBuildId to + type: string + default: '' + + - name: enableSourceLinkValidation + displayName: Enable SourceLink validation + type: boolean + default: false + + - name: enableSigningValidation + displayName: Enable signing validation + type: boolean + default: true + + - name: enableSymbolValidation + displayName: Enable symbol validation + type: boolean + default: false + + - name: enableNugetValidation + displayName: Enable NuGet validation + type: boolean + default: true + + - name: publishInstallersAndChecksums + displayName: Publish installers and checksums + type: boolean + default: true + + - name: SDLValidationParameters + type: object + default: + enable: false + continueOnError: false + params: '' + artifactNames: '' + downloadArtifacts: true + + # These parameters let the user customize the call to sdk-task.ps1 for publishing + # symbols & general artifacts as well as for signing validation + - name: symbolPublishingAdditionalParameters + displayName: Symbol publishing additional parameters + type: string + default: '' + + - name: artifactsPublishingAdditionalParameters + displayName: Artifact publishing additional parameters + type: string + default: '' + + - name: signingValidationAdditionalParameters + displayName: Signing validation additional parameters + type: string + default: '' + + # Which stages should finish execution before post-build stages start + - name: validateDependsOn + type: object + default: + - build + + - name: publishDependsOn + type: object + default: + - Validate + +stages: +- ${{ if or(eq( parameters.enableNugetValidation, 'true'), eq(parameters.enableSigningValidation, 'true'), eq(parameters.enableSourceLinkValidation, 'true'), eq(parameters.SDLValidationParameters.enable, 'true')) }}: + - stage: Validate + dependsOn: ${{ parameters.validateDependsOn }} + displayName: Validate Build Assets + variables: + - template: common-variables.yml + jobs: + - job: + displayName: NuGet Validation + condition: eq( ${{ parameters.enableNugetValidation }}, 'true') + pool: + # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + name: AzurePipelines-EO + image: 1ESPT-Windows2022 + demands: Cmd + os: windows + # If it's not devdiv, it's dnceng + ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: + name: NetCore1ESPool-Svc-Internal + image: 1es-windows-2022-pt + os: windows + + steps: + - template: setup-maestro-vars.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + + - task: DownloadBuildArtifacts@0 + displayName: Download Package Artifacts + inputs: + buildType: specific + buildVersionToDownload: specific + project: $(AzDOProjectName) + pipeline: $(AzDOPipelineId) + buildId: $(AzDOBuildId) + artifactName: PackageArtifacts + checkDownloadedFiles: true + + - task: PowerShell@2 + displayName: Validate + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/nuget-validation.ps1 + arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ + -ToolDestinationPath $(Agent.BuildDirectory)/Extract/ + + - job: + displayName: Signing Validation + condition: and( eq( ${{ parameters.enableSigningValidation }}, 'true'), ne( variables['PostBuildSign'], 'true')) + pool: + # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + name: AzurePipelines-EO + demands: Cmd + os: windows + # If it's not devdiv, it's dnceng + ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: + name: NetCore1ESPool-Svc-Internal + image: 1es-windows-2022-pt + os: windows + steps: + - template: setup-maestro-vars.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + + - task: DownloadBuildArtifacts@0 + displayName: Download Package Artifacts + inputs: + buildType: specific + buildVersionToDownload: specific + project: $(AzDOProjectName) + pipeline: $(AzDOPipelineId) + buildId: $(AzDOBuildId) + artifactName: PackageArtifacts + checkDownloadedFiles: true + itemPattern: | + ** + !**/Microsoft.SourceBuild.Intermediate.*.nupkg + + # This is necessary whenever we want to publish/restore to an AzDO private feed + # Since sdk-task.ps1 tries to restore packages we need to do this authentication here + # otherwise it'll complain about accessing a private feed. + - task: NuGetAuthenticate@1 + displayName: 'Authenticate to AzDO Feeds' + + - task: PowerShell@2 + displayName: Enable cross-org publishing + inputs: + filePath: eng\common\enable-cross-org-publishing.ps1 + arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) + + # Signing validation will optionally work with the buildmanifest file which is downloaded from + # Azure DevOps above. + - task: PowerShell@2 + displayName: Validate + inputs: + filePath: eng\common\sdk-task.ps1 + arguments: -task SigningValidation -restore -msbuildEngine vs + /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts' + /p:SignCheckExclusionsFile='$(Build.SourcesDirectory)/eng/SignCheckExclusionsFile.txt' + ${{ parameters.signingValidationAdditionalParameters }} + + - template: ../steps/publish-logs.yml + parameters: + StageLabel: 'Validation' + JobLabel: 'Signing' + + - job: + displayName: SourceLink Validation + condition: eq( ${{ parameters.enableSourceLinkValidation }}, 'true') + pool: + # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + name: AzurePipelines-EO + image: 1ESPT-Windows2022 + demands: Cmd + os: windows + # If it's not devdiv, it's dnceng + ${{ if ne(variables['System.TeamProject'], 'DevDiv') }}: + name: NetCore1ESPool-Svc-Internal + image: 1es-windows-2022-pt + os: windows + steps: + - template: setup-maestro-vars.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + + - task: DownloadBuildArtifacts@0 + displayName: Download Blob Artifacts + inputs: + buildType: specific + buildVersionToDownload: specific + project: $(AzDOProjectName) + pipeline: $(AzDOPipelineId) + buildId: $(AzDOBuildId) + artifactName: BlobArtifacts + checkDownloadedFiles: true + + - task: PowerShell@2 + displayName: Validate + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/sourcelink-validation.ps1 + arguments: -InputPath $(Build.ArtifactStagingDirectory)/BlobArtifacts/ + -ExtractPath $(Agent.BuildDirectory)/Extract/ + -GHRepoName $(Build.Repository.Name) + -GHCommit $(Build.SourceVersion) + -SourcelinkCliVersion $(SourceLinkCLIVersion) + continueOnError: true + +- stage: publish_using_darc + ${{ if or(eq(parameters.enableNugetValidation, 'true'), eq(parameters.enableSigningValidation, 'true'), eq(parameters.enableSourceLinkValidation, 'true'), eq(parameters.SDLValidationParameters.enable, 'true')) }}: + dependsOn: ${{ parameters.publishDependsOn }} + ${{ if and(ne(parameters.enableNugetValidation, 'true'), ne(parameters.enableSigningValidation, 'true'), ne(parameters.enableSourceLinkValidation, 'true'), ne(parameters.SDLValidationParameters.enable, 'true')) }}: + dependsOn: ${{ parameters.validateDependsOn }} + displayName: Publish using Darc + variables: + - template: common-variables.yml + jobs: + - job: + displayName: Publish Using Darc + timeoutInMinutes: 120 + pool: + # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + name: AzurePipelines-EO + demands: Cmd + os: windows + # If it's not devdiv, it's dnceng + ${{ else }}: + name: NetCore1ESPool-Svc-Internal + image: 1es-windows-2022-pt + os: windows + steps: + - template: setup-maestro-vars.yml + parameters: + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} + + - task: PowerShell@2 + displayName: Publish Using Darc + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1 + arguments: -BuildId $(BARBuildId) + -PublishingInfraVersion ${{ parameters.publishingInfraVersion }} + -AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)' + -MaestroToken '$(MaestroApiAccessToken)' + -WaitPublishingFinish true + -ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}' + -SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}' diff --git a/eng/common/templates-official/post-build/setup-maestro-vars.yml b/eng/common/templates-official/post-build/setup-maestro-vars.yml new file mode 100644 index 000000000..0c87f149a --- /dev/null +++ b/eng/common/templates-official/post-build/setup-maestro-vars.yml @@ -0,0 +1,70 @@ +parameters: + BARBuildId: '' + PromoteToChannelIds: '' + +steps: + - ${{ if eq(coalesce(parameters.PromoteToChannelIds, 0), 0) }}: + - task: DownloadBuildArtifacts@0 + displayName: Download Release Configs + inputs: + buildType: current + artifactName: ReleaseConfigs + checkDownloadedFiles: true + + - task: PowerShell@2 + name: setReleaseVars + displayName: Set Release Configs Vars + inputs: + targetType: inline + pwsh: true + script: | + try { + if (!$Env:PromoteToMaestroChannels -or $Env:PromoteToMaestroChannels.Trim() -eq '') { + $Content = Get-Content $(Build.StagingDirectory)/ReleaseConfigs/ReleaseConfigs.txt + + $BarId = $Content | Select -Index 0 + $Channels = $Content | Select -Index 1 + $IsStableBuild = $Content | Select -Index 2 + + $AzureDevOpsProject = $Env:System_TeamProject + $AzureDevOpsBuildDefinitionId = $Env:System_DefinitionId + $AzureDevOpsBuildId = $Env:Build_BuildId + } + else { + $buildApiEndpoint = "${Env:MaestroApiEndPoint}/api/builds/${Env:BARBuildId}?api-version=${Env:MaestroApiVersion}" + + $apiHeaders = New-Object 'System.Collections.Generic.Dictionary[[String],[String]]' + $apiHeaders.Add('Accept', 'application/json') + $apiHeaders.Add('Authorization',"Bearer ${Env:MAESTRO_API_TOKEN}") + + $buildInfo = try { Invoke-WebRequest -Method Get -Uri $buildApiEndpoint -Headers $apiHeaders | ConvertFrom-Json } catch { Write-Host "Error: $_" } + + $BarId = $Env:BARBuildId + $Channels = $Env:PromoteToMaestroChannels -split "," + $Channels = $Channels -join "][" + $Channels = "[$Channels]" + + $IsStableBuild = $buildInfo.stable + $AzureDevOpsProject = $buildInfo.azureDevOpsProject + $AzureDevOpsBuildDefinitionId = $buildInfo.azureDevOpsBuildDefinitionId + $AzureDevOpsBuildId = $buildInfo.azureDevOpsBuildId + } + + Write-Host "##vso[task.setvariable variable=BARBuildId]$BarId" + Write-Host "##vso[task.setvariable variable=TargetChannels]$Channels" + Write-Host "##vso[task.setvariable variable=IsStableBuild]$IsStableBuild" + + Write-Host "##vso[task.setvariable variable=AzDOProjectName]$AzureDevOpsProject" + Write-Host "##vso[task.setvariable variable=AzDOPipelineId]$AzureDevOpsBuildDefinitionId" + Write-Host "##vso[task.setvariable variable=AzDOBuildId]$AzureDevOpsBuildId" + } + catch { + Write-Host $_ + Write-Host $_.Exception + Write-Host $_.ScriptStackTrace + exit 1 + } + env: + MAESTRO_API_TOKEN: $(MaestroApiAccessToken) + BARBuildId: ${{ parameters.BARBuildId }} + PromoteToMaestroChannels: ${{ parameters.PromoteToChannelIds }} diff --git a/eng/common/templates-official/post-build/trigger-subscription.yml b/eng/common/templates-official/post-build/trigger-subscription.yml new file mode 100644 index 000000000..da669030d --- /dev/null +++ b/eng/common/templates-official/post-build/trigger-subscription.yml @@ -0,0 +1,13 @@ +parameters: + ChannelId: 0 + +steps: +- task: PowerShell@2 + displayName: Triggering subscriptions + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/trigger-subscriptions.ps1 + arguments: -SourceRepo $(Build.Repository.Uri) + -ChannelId ${{ parameters.ChannelId }} + -MaestroApiAccessToken $(MaestroAccessToken) + -MaestroApiEndPoint $(MaestroApiEndPoint) + -MaestroApiVersion $(MaestroApiVersion) diff --git a/eng/common/templates-official/steps/add-build-to-channel.yml b/eng/common/templates-official/steps/add-build-to-channel.yml new file mode 100644 index 000000000..f67a210d6 --- /dev/null +++ b/eng/common/templates-official/steps/add-build-to-channel.yml @@ -0,0 +1,13 @@ +parameters: + ChannelId: 0 + +steps: +- task: PowerShell@2 + displayName: Add Build to Channel + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/post-build/add-build-to-channel.ps1 + arguments: -BuildId $(BARBuildId) + -ChannelId ${{ parameters.ChannelId }} + -MaestroApiAccessToken $(MaestroApiAccessToken) + -MaestroApiEndPoint $(MaestroApiEndPoint) + -MaestroApiVersion $(MaestroApiVersion) diff --git a/eng/common/templates-official/steps/component-governance.yml b/eng/common/templates-official/steps/component-governance.yml new file mode 100644 index 000000000..babc2757d --- /dev/null +++ b/eng/common/templates-official/steps/component-governance.yml @@ -0,0 +1,10 @@ +parameters: + disableComponentGovernance: false + +steps: +- ${{ if eq(parameters.disableComponentGovernance, 'true') }}: + - script: "echo ##vso[task.setvariable variable=skipComponentGovernanceDetection]true" + displayName: Set skipComponentGovernanceDetection variable +- ${{ if ne(parameters.disableComponentGovernance, 'true') }}: + - task: ComponentGovernanceComponentDetection@0 + continueOnError: true \ No newline at end of file diff --git a/eng/common/templates-official/steps/execute-codeql.yml b/eng/common/templates-official/steps/execute-codeql.yml new file mode 100644 index 000000000..9b4a5ffa3 --- /dev/null +++ b/eng/common/templates-official/steps/execute-codeql.yml @@ -0,0 +1,32 @@ +parameters: + # Language that should be analyzed. Defaults to csharp + language: csharp + # Build Commands + buildCommands: '' + overrideParameters: '' # Optional: to override values for parameters. + additionalParameters: '' # Optional: parameters that need user specific values eg: '-SourceToolsList @("abc","def") -ArtifactToolsList @("ghi","jkl")' + # Optional: if specified, restore and use this version of Guardian instead of the default. + overrideGuardianVersion: '' + # Optional: if true, publish the '.gdn' folder as a pipeline artifact. This can help with in-depth + # diagnosis of problems with specific tool configurations. + publishGuardianDirectoryToPipeline: false + # The script to run to execute all SDL tools. Use this if you want to use a script to define SDL + # parameters rather than relying on YAML. It may be better to use a local script, because you can + # reproduce results locally without piecing together a command based on the YAML. + executeAllSdlToolsScript: 'eng/common/sdl/execute-all-sdl-tools.ps1' + # There is some sort of bug (has been reported) in Azure DevOps where if this parameter is named + # 'continueOnError', the parameter value is not correctly picked up. + # This can also be remedied by the caller (post-build.yml) if it does not use a nested parameter + # optional: determines whether to continue the build if the step errors; + sdlContinueOnError: false + +steps: +- template: /eng/common/templates-official/steps/execute-sdl.yml + parameters: + overrideGuardianVersion: ${{ parameters.overrideGuardianVersion }} + executeAllSdlToolsScript: ${{ parameters.executeAllSdlToolsScript }} + overrideParameters: ${{ parameters.overrideParameters }} + additionalParameters: '${{ parameters.additionalParameters }} + -CodeQLAdditionalRunConfigParams @("BuildCommands < ${{ parameters.buildCommands }}", "Language < ${{ parameters.language }}")' + publishGuardianDirectoryToPipeline: ${{ parameters.publishGuardianDirectoryToPipeline }} + sdlContinueOnError: ${{ parameters.sdlContinueOnError }} \ No newline at end of file diff --git a/eng/common/templates-official/steps/generate-sbom.yml b/eng/common/templates-official/steps/generate-sbom.yml new file mode 100644 index 000000000..7fc4f3580 --- /dev/null +++ b/eng/common/templates-official/steps/generate-sbom.yml @@ -0,0 +1,44 @@ +# BuildDropPath - The root folder of the drop directory for which the manifest file will be generated. +# PackageName - The name of the package this SBOM represents. +# PackageVersion - The version of the package this SBOM represents. +# ManifestDirPath - The path of the directory where the generated manifest files will be placed + +parameters: + PackageVersion: 6.0.0 + BuildDropPath: '$(Build.SourcesDirectory)/artifacts' + PackageName: '.NET' + ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom + sbomContinueOnError: true + +steps: +- task: PowerShell@2 + displayName: Prep for SBOM generation in (Non-linux) + condition: or(eq(variables['Agent.Os'], 'Windows_NT'), eq(variables['Agent.Os'], 'Darwin')) + inputs: + filePath: ./eng/common/generate-sbom-prep.ps1 + arguments: ${{parameters.manifestDirPath}} + +# Chmodding is a workaround for https://github.com/dotnet/arcade/issues/8461 +- script: | + chmod +x ./eng/common/generate-sbom-prep.sh + ./eng/common/generate-sbom-prep.sh ${{parameters.manifestDirPath}} + displayName: Prep for SBOM generation in (Linux) + condition: eq(variables['Agent.Os'], 'Linux') + continueOnError: ${{ parameters.sbomContinueOnError }} + +- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0 + displayName: 'Generate SBOM manifest' + continueOnError: ${{ parameters.sbomContinueOnError }} + inputs: + PackageName: ${{ parameters.packageName }} + BuildDropPath: ${{ parameters.buildDropPath }} + PackageVersion: ${{ parameters.packageVersion }} + ManifestDirPath: ${{ parameters.manifestDirPath }} + +- task: 1ES.PublishPipelineArtifact@1 + displayName: Publish SBOM manifest + continueOnError: ${{parameters.sbomContinueOnError}} + inputs: + targetPath: '${{parameters.manifestDirPath}}' + artifactName: $(ARTIFACT_NAME) + diff --git a/eng/common/templates-official/steps/publish-logs.yml b/eng/common/templates-official/steps/publish-logs.yml new file mode 100644 index 000000000..04012fed1 --- /dev/null +++ b/eng/common/templates-official/steps/publish-logs.yml @@ -0,0 +1,23 @@ +parameters: + StageLabel: '' + JobLabel: '' + +steps: +- task: Powershell@2 + displayName: Prepare Binlogs to Upload + inputs: + targetType: inline + script: | + New-Item -ItemType Directory $(Build.SourcesDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/ + Move-Item -Path $(Build.SourcesDirectory)/artifacts/log/Debug/* $(Build.SourcesDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/ + continueOnError: true + condition: always() + +- task: 1ES.PublishBuildArtifacts@1 + displayName: Publish Logs + inputs: + PathtoPublish: '$(Build.SourcesDirectory)/PostBuildLogs' + PublishLocation: Container + ArtifactName: PostBuildLogs + continueOnError: true + condition: always() diff --git a/eng/common/templates-official/steps/retain-build.yml b/eng/common/templates-official/steps/retain-build.yml new file mode 100644 index 000000000..83d97a26a --- /dev/null +++ b/eng/common/templates-official/steps/retain-build.yml @@ -0,0 +1,28 @@ +parameters: + # Optional azure devops PAT with build execute permissions for the build's organization, + # only needed if the build that should be retained ran on a different organization than + # the pipeline where this template is executing from + Token: '' + # Optional BuildId to retain, defaults to the current running build + BuildId: '' + # Azure devops Organization URI for the build in the https://dev.azure.com/ format. + # Defaults to the organization the current pipeline is running on + AzdoOrgUri: '$(System.CollectionUri)' + # Azure devops project for the build. Defaults to the project the current pipeline is running on + AzdoProject: '$(System.TeamProject)' + +steps: + - task: powershell@2 + inputs: + targetType: 'filePath' + filePath: eng/common/retain-build.ps1 + pwsh: true + arguments: > + -AzdoOrgUri: ${{parameters.AzdoOrgUri}} + -AzdoProject ${{parameters.AzdoProject}} + -Token ${{coalesce(parameters.Token, '$env:SYSTEM_ACCESSTOKEN') }} + -BuildId ${{coalesce(parameters.BuildId, '$env:BUILD_ID')}} + displayName: Enable permanent build retention + env: + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + BUILD_ID: $(Build.BuildId) \ No newline at end of file diff --git a/eng/common/templates-official/steps/send-to-helix.yml b/eng/common/templates-official/steps/send-to-helix.yml new file mode 100644 index 000000000..cd02ae160 --- /dev/null +++ b/eng/common/templates-official/steps/send-to-helix.yml @@ -0,0 +1,94 @@ +# Please remember to update the documentation if you make changes to these parameters! +parameters: + HelixSource: 'pr/default' # required -- sources must start with pr/, official/, prodcon/, or agent/ + HelixType: 'tests/default/' # required -- Helix telemetry which identifies what type of data this is; should include "test" for clarity and must end in '/' + HelixBuild: $(Build.BuildNumber) # required -- the build number Helix will use to identify this -- automatically set to the AzDO build number + HelixTargetQueues: '' # required -- semicolon delimited list of Helix queues to test on; see https://helix.dot.net/ for a list of queues + HelixAccessToken: '' # required -- access token to make Helix API requests; should be provided by the appropriate variable group + HelixConfiguration: '' # optional -- additional property attached to a job + HelixPreCommands: '' # optional -- commands to run before Helix work item execution + HelixPostCommands: '' # optional -- commands to run after Helix work item execution + WorkItemDirectory: '' # optional -- a payload directory to zip up and send to Helix; requires WorkItemCommand; incompatible with XUnitProjects + WorkItemCommand: '' # optional -- a command to execute on the payload; requires WorkItemDirectory; incompatible with XUnitProjects + WorkItemTimeout: '' # optional -- a timeout in TimeSpan.Parse-ready value (e.g. 00:02:00) for the work item command; requires WorkItemDirectory; incompatible with XUnitProjects + CorrelationPayloadDirectory: '' # optional -- a directory to zip up and send to Helix as a correlation payload + XUnitProjects: '' # optional -- semicolon delimited list of XUnitProjects to parse and send to Helix; requires XUnitRuntimeTargetFramework, XUnitPublishTargetFramework, XUnitRunnerVersion, and IncludeDotNetCli=true + XUnitWorkItemTimeout: '' # optional -- the workitem timeout in seconds for all workitems created from the xUnit projects specified by XUnitProjects + XUnitPublishTargetFramework: '' # optional -- framework to use to publish your xUnit projects + XUnitRuntimeTargetFramework: '' # optional -- framework to use for the xUnit console runner + XUnitRunnerVersion: '' # optional -- version of the xUnit nuget package you wish to use on Helix; required for XUnitProjects + IncludeDotNetCli: false # optional -- true will download a version of the .NET CLI onto the Helix machine as a correlation payload; requires DotNetCliPackageType and DotNetCliVersion + DotNetCliPackageType: '' # optional -- either 'sdk', 'runtime' or 'aspnetcore-runtime'; determines whether the sdk or runtime will be sent to Helix; see https://raw.githubusercontent.com/dotnet/core/main/release-notes/releases-index.json + DotNetCliVersion: '' # optional -- version of the CLI to send to Helix; based on this: https://raw.githubusercontent.com/dotnet/core/main/release-notes/releases-index.json + EnableXUnitReporter: false # optional -- true enables XUnit result reporting to Mission Control + WaitForWorkItemCompletion: true # optional -- true will make the task wait until work items have been completed and fail the build if work items fail. False is "fire and forget." + IsExternal: false # [DEPRECATED] -- doesn't do anything, jobs are external if HelixAccessToken is empty and Creator is set + HelixBaseUri: 'https://helix.dot.net/' # optional -- sets the Helix API base URI (allows targeting int) + Creator: '' # optional -- if the build is external, use this to specify who is sending the job + DisplayNamePrefix: 'Run Tests' # optional -- rename the beginning of the displayName of the steps in AzDO + condition: succeeded() # optional -- condition for step to execute; defaults to succeeded() + continueOnError: false # optional -- determines whether to continue the build if the step errors; defaults to false + +steps: + - powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj /restore /t:Test /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"' + displayName: ${{ parameters.DisplayNamePrefix }} (Windows) + env: + BuildConfig: $(_BuildConfig) + HelixSource: ${{ parameters.HelixSource }} + HelixType: ${{ parameters.HelixType }} + HelixBuild: ${{ parameters.HelixBuild }} + HelixConfiguration: ${{ parameters.HelixConfiguration }} + HelixTargetQueues: ${{ parameters.HelixTargetQueues }} + HelixAccessToken: ${{ parameters.HelixAccessToken }} + HelixPreCommands: ${{ parameters.HelixPreCommands }} + HelixPostCommands: ${{ parameters.HelixPostCommands }} + WorkItemDirectory: ${{ parameters.WorkItemDirectory }} + WorkItemCommand: ${{ parameters.WorkItemCommand }} + WorkItemTimeout: ${{ parameters.WorkItemTimeout }} + CorrelationPayloadDirectory: ${{ parameters.CorrelationPayloadDirectory }} + XUnitProjects: ${{ parameters.XUnitProjects }} + XUnitWorkItemTimeout: ${{ parameters.XUnitWorkItemTimeout }} + XUnitPublishTargetFramework: ${{ parameters.XUnitPublishTargetFramework }} + XUnitRuntimeTargetFramework: ${{ parameters.XUnitRuntimeTargetFramework }} + XUnitRunnerVersion: ${{ parameters.XUnitRunnerVersion }} + IncludeDotNetCli: ${{ parameters.IncludeDotNetCli }} + DotNetCliPackageType: ${{ parameters.DotNetCliPackageType }} + DotNetCliVersion: ${{ parameters.DotNetCliVersion }} + EnableXUnitReporter: ${{ parameters.EnableXUnitReporter }} + WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }} + HelixBaseUri: ${{ parameters.HelixBaseUri }} + Creator: ${{ parameters.Creator }} + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + condition: and(${{ parameters.condition }}, eq(variables['Agent.Os'], 'Windows_NT')) + continueOnError: ${{ parameters.continueOnError }} + - script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj /restore /t:Test /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog + displayName: ${{ parameters.DisplayNamePrefix }} (Unix) + env: + BuildConfig: $(_BuildConfig) + HelixSource: ${{ parameters.HelixSource }} + HelixType: ${{ parameters.HelixType }} + HelixBuild: ${{ parameters.HelixBuild }} + HelixConfiguration: ${{ parameters.HelixConfiguration }} + HelixTargetQueues: ${{ parameters.HelixTargetQueues }} + HelixAccessToken: ${{ parameters.HelixAccessToken }} + HelixPreCommands: ${{ parameters.HelixPreCommands }} + HelixPostCommands: ${{ parameters.HelixPostCommands }} + WorkItemDirectory: ${{ parameters.WorkItemDirectory }} + WorkItemCommand: ${{ parameters.WorkItemCommand }} + WorkItemTimeout: ${{ parameters.WorkItemTimeout }} + CorrelationPayloadDirectory: ${{ parameters.CorrelationPayloadDirectory }} + XUnitProjects: ${{ parameters.XUnitProjects }} + XUnitWorkItemTimeout: ${{ parameters.XUnitWorkItemTimeout }} + XUnitPublishTargetFramework: ${{ parameters.XUnitPublishTargetFramework }} + XUnitRuntimeTargetFramework: ${{ parameters.XUnitRuntimeTargetFramework }} + XUnitRunnerVersion: ${{ parameters.XUnitRunnerVersion }} + IncludeDotNetCli: ${{ parameters.IncludeDotNetCli }} + DotNetCliPackageType: ${{ parameters.DotNetCliPackageType }} + DotNetCliVersion: ${{ parameters.DotNetCliVersion }} + EnableXUnitReporter: ${{ parameters.EnableXUnitReporter }} + WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }} + HelixBaseUri: ${{ parameters.HelixBaseUri }} + Creator: ${{ parameters.Creator }} + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + condition: and(${{ parameters.condition }}, ne(variables['Agent.Os'], 'Windows_NT')) + continueOnError: ${{ parameters.continueOnError }} diff --git a/eng/common/templates-official/steps/source-build.yml b/eng/common/templates-official/steps/source-build.yml new file mode 100644 index 000000000..9eb7e5145 --- /dev/null +++ b/eng/common/templates-official/steps/source-build.yml @@ -0,0 +1,108 @@ +parameters: + # This template adds arcade-powered source-build to CI. + + # This is a 'steps' template, and is intended for advanced scenarios where the existing build + # infra has a careful build methodology that must be followed. For example, a repo + # (dotnet/runtime) might choose to clone the GitHub repo only once and store it as a pipeline + # artifact for all subsequent jobs to use, to reduce dependence on a strong network connection to + # GitHub. Using this steps template leaves room for that infra to be included. + + # Defines the platform on which to run the steps. See 'eng/common/templates-official/job/source-build.yml' + # for details. The entire object is described in the 'job' template for simplicity, even though + # the usage of the properties on this object is split between the 'job' and 'steps' templates. + platform: {} + +steps: +# Build. Keep it self-contained for simple reusability. (No source-build-specific job variables.) +- script: | + set -x + df -h + + # If building on the internal project, the artifact feeds variable may be available (usually only if needed) + # In that case, call the feed setup script to add internal feeds corresponding to public ones. + # In addition, add an msbuild argument to copy the WIP from the repo to the target build location. + # This is because SetupNuGetSources.sh will alter the current NuGet.config file, and we need to preserve those + # changes. + $internalRestoreArgs= + if [ '$(dn-bot-dnceng-artifact-feeds-rw)' != '$''(dn-bot-dnceng-artifact-feeds-rw)' ]; then + # Temporarily work around https://github.com/dotnet/arcade/issues/7709 + chmod +x $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh + $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh $(Build.SourcesDirectory)/NuGet.config $(dn-bot-dnceng-artifact-feeds-rw) + internalRestoreArgs='/p:CopyWipIntoInnerSourceBuildRepo=true' + + # The 'Copy WIP' feature of source build uses git stash to apply changes from the original repo. + # This only works if there is a username/email configured, which won't be the case in most CI runs. + git config --get user.email + if [ $? -ne 0 ]; then + git config user.email dn-bot@microsoft.com + git config user.name dn-bot + fi + fi + + # If building on the internal project, the internal storage variable may be available (usually only if needed) + # In that case, add variables to allow the download of internal runtimes if the specified versions are not found + # in the default public locations. + internalRuntimeDownloadArgs= + if [ '$(dotnetbuilds-internal-container-read-token-base64)' != '$''(dotnetbuilds-internal-container-read-token-base64)' ]; then + internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://dotnetbuilds.blob.core.windows.net/internal --runtimesourcefeedkey $(dotnetbuilds-internal-container-read-token-base64)' + fi + + buildConfig=Release + # Check if AzDO substitutes in a build config from a variable, and use it if so. + if [ '$(_BuildConfig)' != '$''(_BuildConfig)' ]; then + buildConfig='$(_BuildConfig)' + fi + + officialBuildArgs= + if [ '${{ and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}' = 'True' ]; then + officialBuildArgs='/p:DotNetPublishUsingPipelines=true /p:OfficialBuildId=$(BUILD.BUILDNUMBER)' + fi + + targetRidArgs= + if [ '${{ parameters.platform.targetRID }}' != '' ]; then + targetRidArgs='/p:TargetRid=${{ parameters.platform.targetRID }}' + fi + + runtimeOsArgs= + if [ '${{ parameters.platform.runtimeOS }}' != '' ]; then + runtimeOsArgs='/p:RuntimeOS=${{ parameters.platform.runtimeOS }}' + fi + + publishArgs= + if [ '${{ parameters.platform.skipPublishValidation }}' != 'true' ]; then + publishArgs='--publish' + fi + + ${{ coalesce(parameters.platform.buildScript, './build.sh') }} --ci \ + --configuration $buildConfig \ + --restore --build --pack $publishArgs -bl \ + $officialBuildArgs \ + $internalRuntimeDownloadArgs \ + $internalRestoreArgs \ + $targetRidArgs \ + $runtimeOsArgs \ + /p:SourceBuildNonPortable=${{ parameters.platform.nonPortable }} \ + /p:ArcadeBuildFromSource=true + displayName: Build + +# Upload build logs for diagnosis. +- task: CopyFiles@2 + displayName: Prepare BuildLogs staging directory + inputs: + SourceFolder: '$(Build.SourcesDirectory)' + Contents: | + **/*.log + **/*.binlog + artifacts/source-build/self/prebuilt-report/** + TargetFolder: '$(Build.StagingDirectory)/BuildLogs' + CleanTargetFolder: true + continueOnError: true + condition: succeededOrFailed() + +- task: 1ES.PublishPipelineArtifact@1 + displayName: Publish BuildLogs + inputs: + targetPath: '$(Build.StagingDirectory)/BuildLogs' + artifactName: BuildLogs_SourceBuild_${{ parameters.platform.name }}_Attempt$(System.JobAttempt) + continueOnError: true + condition: succeededOrFailed() diff --git a/eng/common/templates-official/variables/sdl-variables.yml b/eng/common/templates-official/variables/sdl-variables.yml new file mode 100644 index 000000000..1a860bd04 --- /dev/null +++ b/eng/common/templates-official/variables/sdl-variables.yml @@ -0,0 +1,7 @@ +variables: +# The Guardian version specified in 'eng/common/sdl/packages.config'. This value must be kept in +# sync with the packages.config file. +- name: DefaultGuardianVersion + value: 0.110.1 +- name: GuardianPackagesConfigFile + value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config \ No newline at end of file diff --git a/global.json b/global.json index 73265b36f..e1f0ec366 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "6.0.126", + "dotnet": "6.0.127", "runtimes": { "dotnet": [ "$(VSRedistCommonNetCoreSharedFrameworkx6460PackageVersion)" @@ -11,7 +11,7 @@ "cmake": "3.16.4" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.24113.1", - "Microsoft.DotNet.CMake.Sdk": "6.0.0-beta.24113.1" + "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.24162.4", + "Microsoft.DotNet.CMake.Sdk": "6.0.0-beta.24162.4" } } From ac2eb96fd9426eebb53e5552348dcd3c079bcb0d Mon Sep 17 00:00:00 2001 From: Matt Thalman Date: Wed, 13 Mar 2024 15:19:07 -0500 Subject: [PATCH 18/25] Update 6.0 SDK diff baseline (#19039) --- .../assets/baselines/MsftToSbSdk.diff | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdk.diff b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdk.diff index 71ae3f0b9..dfeb1a2f8 100644 --- a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdk.diff +++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdk.diff @@ -14,7 +14,20 @@ index ------------ ./packs/Microsoft.AspNetCore.App.Ref/ ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ @@ ------------ @@ + ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.JSInterop.xml + ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Net.Http.Headers.dll + ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Net.Http.Headers.xml ++./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.DiagnosticSource.dll ++./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.DiagnosticSource.xml + ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.EventLog.dll + ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.EventLog.xml ++./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Formats.Asn1.dll ++./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Formats.Asn1.xml + ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.IO.Pipelines.dll ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.IO.Pipelines.xml ++./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.CompilerServices.Unsafe.dll ++./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Security.AccessControl.dll ++./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Security.AccessControl.xml ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.Xml.dll ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.Xml.xml -./packs/Microsoft.NETCore.App.Host.portable-rid/ @@ -29,6 +42,10 @@ index ------------ -./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/runtimes/portable-rid/native/libnethost.so -./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/runtimes/portable-rid/native/nethost.h -./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/runtimes/portable-rid/native/singlefilehost ++./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Text.Encodings.Web.dll ++./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Text.Encodings.Web.xml ++./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Text.Json.dll ++./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Text.Json.xml +./packs/Microsoft.NETCore.App.Host.banana-rid/ +./packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/ +./packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/ From a4fd17a84f7d3f0e28b6f7400c8f4cb59825d112 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 14 Mar 2024 20:33:56 +0000 Subject: [PATCH 19/25] Update dependencies from https://github.com/dotnet/arcade build Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.CMake.Sdk From Version 6.0.0-beta.24162.4 -> To Version 6.0.0-beta.24163.13 --- NuGet.config | 16 ++++++++++++++-- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 2 +- eng/common/SetupNugetSources.ps1 | 2 +- global.json | 6 +++--- 5 files changed, 25 insertions(+), 13 deletions(-) diff --git a/NuGet.config b/NuGet.config index 3b34c1513..a363b139a 100644 --- a/NuGet.config +++ b/NuGet.config @@ -7,21 +7,28 @@ - + + + + + + + + @@ -42,16 +49,21 @@ - + + + + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 94bfa989e..7593483ca 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -197,19 +197,19 @@ - + https://github.com/dotnet/arcade - c80f6c7bcfdd0e62a3012f9a97ab52be477c7d75 + 100394106fe203c112ab72bcc1576fb3753f7910 - + https://github.com/dotnet/arcade - c80f6c7bcfdd0e62a3012f9a97ab52be477c7d75 + 100394106fe203c112ab72bcc1576fb3753f7910 - + https://github.com/dotnet/arcade - c80f6c7bcfdd0e62a3012f9a97ab52be477c7d75 + 100394106fe203c112ab72bcc1576fb3753f7910 https://github.com/dotnet/source-build-reference-packages diff --git a/eng/Versions.props b/eng/Versions.props index a76ab8a7d..422a2518c 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -19,7 +19,7 @@ - 6.0.0-beta.24162.4 + 6.0.0-beta.24163.13 diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1 index 0182856ed..4ed5c54e7 100644 --- a/eng/common/SetupNugetSources.ps1 +++ b/eng/common/SetupNugetSources.ps1 @@ -49,7 +49,7 @@ function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Usern Write-Host "Package source $SourceName already present." } - AddCredential -Creds $creds -Source $SourceName -Username $Username -Password $pwd + AddCredential -Creds $creds -Source $SourceName -Username $Username -pwd $pwd } # Add a credential node for the specified source diff --git a/global.json b/global.json index e1f0ec366..fd055d417 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "tools": { - "dotnet": "6.0.127", + "dotnet": "6.0.128", "runtimes": { "dotnet": [ "$(VSRedistCommonNetCoreSharedFrameworkx6460PackageVersion)" @@ -11,7 +11,7 @@ "cmake": "3.16.4" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.24162.4", - "Microsoft.DotNet.CMake.Sdk": "6.0.0-beta.24162.4" + "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.24163.13", + "Microsoft.DotNet.CMake.Sdk": "6.0.0-beta.24163.13" } } From e8c186ecd4b08a0c9036d7d85392f7123e9df81f Mon Sep 17 00:00:00 2001 From: Ella Hathaway <67609881+ellahathaway@users.noreply.github.com> Date: Thu, 21 Mar 2024 09:06:17 -0700 Subject: [PATCH 20/25] Update MsftToSbSdk.diff baseline (#19118) --- .../assets/baselines/MsftToSbSdk.diff | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdk.diff b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdk.diff index dfeb1a2f8..71ae3f0b9 100644 --- a/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdk.diff +++ b/src/SourceBuild/tarball/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/baselines/MsftToSbSdk.diff @@ -14,20 +14,7 @@ index ------------ ./packs/Microsoft.AspNetCore.App.Ref/ ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ @@ ------------ @@ - ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.JSInterop.xml - ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Net.Http.Headers.dll - ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/Microsoft.Net.Http.Headers.xml -+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.DiagnosticSource.dll -+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.DiagnosticSource.xml - ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.EventLog.dll - ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Diagnostics.EventLog.xml -+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Formats.Asn1.dll -+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Formats.Asn1.xml - ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.IO.Pipelines.dll ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.IO.Pipelines.xml -+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Runtime.CompilerServices.Unsafe.dll -+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Security.AccessControl.dll -+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Security.AccessControl.xml ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.Xml.dll ./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Security.Cryptography.Xml.xml -./packs/Microsoft.NETCore.App.Host.portable-rid/ @@ -42,10 +29,6 @@ index ------------ -./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/runtimes/portable-rid/native/libnethost.so -./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/runtimes/portable-rid/native/nethost.h -./packs/Microsoft.NETCore.App.Host.portable-rid/x.y.z/runtimes/portable-rid/native/singlefilehost -+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Text.Encodings.Web.dll -+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Text.Encodings.Web.xml -+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Text.Json.dll -+./packs/Microsoft.AspNetCore.App.Ref/x.y.z/ref/netx.y/System.Text.Json.xml +./packs/Microsoft.NETCore.App.Host.banana-rid/ +./packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/ +./packs/Microsoft.NETCore.App.Host.banana-rid/x.y.z/runtimes/ From d30a98c1f7b63f54f5af43f5b457d06f88433862 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 1 Apr 2024 22:19:12 +0000 Subject: [PATCH 21/25] Update dependencies from https://github.com/dotnet/arcade build 20240326.9 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Build.Tasks.Installers , Microsoft.DotNet.CMake.Sdk From Version 6.0.0-beta.24163.13 -> To Version 6.0.0-beta.24176.9 --- NuGet.config | 21 ------------------- eng/Version.Details.xml | 12 +++++------ eng/Versions.props | 2 +- eng/common/templates-official/job/job.yml | 3 ++- .../job/publish-build-assets.yml | 10 +++++---- .../post-build/post-build.yml | 2 ++ global.json | 4 ++-- 7 files changed, 19 insertions(+), 35 deletions(-) diff --git a/NuGet.config b/NuGet.config index a363b139a..dd632b04b 100644 --- a/NuGet.config +++ b/NuGet.config @@ -9,26 +9,14 @@ - - - - - - - - - - - - @@ -53,18 +41,9 @@ - - - - - - - - - diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7593483ca..f230b5b49 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -197,19 +197,19 @@ - + https://github.com/dotnet/arcade - 100394106fe203c112ab72bcc1576fb3753f7910 + e438144bbffb29ed5d7c113dc4947b51650344dc - + https://github.com/dotnet/arcade - 100394106fe203c112ab72bcc1576fb3753f7910 + e438144bbffb29ed5d7c113dc4947b51650344dc - + https://github.com/dotnet/arcade - 100394106fe203c112ab72bcc1576fb3753f7910 + e438144bbffb29ed5d7c113dc4947b51650344dc https://github.com/dotnet/source-build-reference-packages diff --git a/eng/Versions.props b/eng/Versions.props index 422a2518c..bb9bd8944 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -19,7 +19,7 @@ - 6.0.0-beta.24163.13 + 6.0.0-beta.24176.9 diff --git a/eng/common/templates-official/job/job.yml b/eng/common/templates-official/job/job.yml index 616bfc386..21945ebdc 100644 --- a/eng/common/templates-official/job/job.yml +++ b/eng/common/templates-official/job/job.yml @@ -116,7 +116,7 @@ jobs: - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - ${{ if eq(parameters.enableMicrobuild, 'true') }}: - - task: MicroBuildSigningPlugin@3 + - task: MicroBuildSigningPlugin@4 displayName: Install MicroBuild plugin inputs: signType: $(_SignType) @@ -124,6 +124,7 @@ jobs: feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json env: TeamName: $(_TeamName) + MicroBuildOutputFolderOverride: '$(Agent.TempDirectory)' continueOnError: ${{ parameters.continueOnError }} condition: and(succeeded(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT')) diff --git a/eng/common/templates-official/job/publish-build-assets.yml b/eng/common/templates-official/job/publish-build-assets.yml index 9498aa412..1d84eb301 100644 --- a/eng/common/templates-official/job/publish-build-assets.yml +++ b/eng/common/templates-official/job/publish-build-assets.yml @@ -80,14 +80,16 @@ jobs: inputs: targetType: inline script: | - Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value $(BARBuildId) - Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value "$(DefaultChannels)" - Add-Content -Path "$(Build.StagingDirectory)/ReleaseConfigs.txt" -Value $(IsStableBuild) + New-Item -Path "$(Build.StagingDirectory)/ReleaseConfigs" -ItemType Directory -Force + $filePath = "$(Build.StagingDirectory)/ReleaseConfigs/ReleaseConfigs.txt" + Add-Content -Path $filePath -Value $(BARBuildId) + Add-Content -Path $filePath -Value "$(DefaultChannels)" + Add-Content -Path $filePath -Value $(IsStableBuild) - task: 1ES.PublishBuildArtifacts@1 displayName: Publish ReleaseConfigs Artifact inputs: - PathtoPublish: '$(Build.StagingDirectory)/ReleaseConfigs.txt' + PathtoPublish: '$(Build.StagingDirectory)/ReleaseConfigs' PublishLocation: Container ArtifactName: ReleaseConfigs diff --git a/eng/common/templates-official/post-build/post-build.yml b/eng/common/templates-official/post-build/post-build.yml index 80bfa4946..96048b1ba 100644 --- a/eng/common/templates-official/post-build/post-build.yml +++ b/eng/common/templates-official/post-build/post-build.yml @@ -137,6 +137,7 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO + image: 1ESPT-Windows2022 demands: Cmd os: windows # If it's not devdiv, it's dnceng @@ -251,6 +252,7 @@ stages: # We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com) ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: name: AzurePipelines-EO + image: 1ESPT-Windows2022 demands: Cmd os: windows # If it's not devdiv, it's dnceng diff --git a/global.json b/global.json index fd055d417..dd968ea93 100644 --- a/global.json +++ b/global.json @@ -11,7 +11,7 @@ "cmake": "3.16.4" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.24163.13", - "Microsoft.DotNet.CMake.Sdk": "6.0.0-beta.24163.13" + "Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.24176.9", + "Microsoft.DotNet.CMake.Sdk": "6.0.0-beta.24176.9" } } From 6ec2902bf93011d0544e67c2442220a97860ab3b Mon Sep 17 00:00:00 2001 From: Sean Reeser Date: Tue, 2 Apr 2024 11:55:35 -0700 Subject: [PATCH 22/25] Update branding to 6.0.130 --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index 422a2518c..763ab6fe1 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -8,7 +8,7 @@ 6 0 1 - 29 + 30 $(VersionMajor).$(VersionMinor).$(VersionSDKMinor)$(VersionFeature) servicing $(VersionMajor).$(VersionMinor) From ee8c8a8d63de89aaecea97c4a4a830b116d17982 Mon Sep 17 00:00:00 2001 From: v-wuzhai <46013274+v-wuzhai@users.noreply.github.com> Date: Tue, 2 Apr 2024 15:04:10 -0700 Subject: [PATCH 23/25] [release/6.0.1xx] Remove 2.1-5.0 templates (#19236) --- eng/Signing.props | 6 --- eng/Versions.props | 38 --------------- src/redist/targets/BundledTemplates.targets | 51 --------------------- 3 files changed, 95 deletions(-) diff --git a/eng/Signing.props b/eng/Signing.props index 5372bc186..7d4cd5325 100644 --- a/eng/Signing.props +++ b/eng/Signing.props @@ -34,12 +34,6 @@ - - - - - - - 1.0.2-beta4.22064.3 1.0.2-beta4.22064.3 @@ -100,13 +99,6 @@ 17.0.1 - - - 5.0.3 - 5.0.0-rc.2.20474.4 - 5.0.17-servicing.22215.4 - 5.0.17-servicing.22218.2 - $(MicrosoftNETCoreAppRuntimePackageVersion) $(MicrosoftNETCoreAppRuntimePackageVersion) @@ -125,36 +117,6 @@ $(MicrosoftDotNetCommonItemTemplatesPackageVersion) 6.0.128 $(MicrosoftAspNetCoreAppRuntimePackageVersion) - - $(MicrosoftWinFormsProjectTemplates50PackageVersion) - $(MicrosoftWPFProjectTemplates50PackageVersion) - $(NUnit3DotNetNewTemplatePackageVersion) - $(MicrosoftDotNetCommonItemTemplates50PackageVersion) - $(MicrosoftDotNetCommonItemTemplates50PackageVersion) - 5.0.17 - - 4.8.1-servicing.19605.5 - 3.1.2-servicing.20066.4 - 1.7.2 - 3.1.15 - $(MicrosoftDotNetCommonItemTemplates31PackageVersion) - $(MicrosoftDotNetTestProjectTemplates50PackageVersion) - 3.1.32 - 3.2.1 - - 4.8.0-rc2.19462.10 - 3.0.0 - 1.6.5 - 2.0.0-preview8.19373.1 - $(MicrosoftDotNetCommonItemTemplates30PackageVersion) - $(MicrosoftDotNetTestProjectTemplates50PackageVersion) - 3.0.3 - - 1.5.3 - 1.0.2-beta3 - $(MicrosoftDotNetCommonItemTemplates21PackageVersion) - 1.0.2-beta4.22064.3 - 2.1.34 diff --git a/src/redist/targets/BundledTemplates.targets b/src/redist/targets/BundledTemplates.targets index 86f7a65ac..f0a94502e 100644 --- a/src/redist/targets/BundledTemplates.targets +++ b/src/redist/targets/BundledTemplates.targets @@ -40,61 +40,10 @@ --> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 8c3184079c9171716c96e576c9272a3855528697 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 2 Apr 2024 15:06:10 -0700 Subject: [PATCH 24/25] [release/6.0.1xx] Update dependencies from dotnet/source-build-reference-packages (#19150) Co-authored-by: dotnet-maestro[bot] --- eng/Version.Details.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f230b5b49..dc6c2b426 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -211,9 +211,9 @@ https://github.com/dotnet/arcade e438144bbffb29ed5d7c113dc4947b51650344dc - + https://github.com/dotnet/source-build-reference-packages - 2e6cb1a0008be982effb0c5d9e96a4ff138352d4 + 7ce77af2d76bb40b32e483b5050df50ea07b8984 From 4308c39b28c962ed1d83e22e49cc0a5b61575b85 Mon Sep 17 00:00:00 2001 From: Michael Yanni Date: Tue, 2 Apr 2024 15:07:15 -0700 Subject: [PATCH 25/25] [6.0.1xx] Migrate to 1ES templates for internal builds (#19130) Co-authored-by: Matt Thalman --- .vsts-ci.yml | 802 +++++++++--------- .vsts-pr.yml | 31 +- eng/build-pr.yml | 166 ++++ eng/build.yml | 17 +- eng/source-build-tarball-build-official.yml | 28 +- eng/source-build-tarball-build.yml | 14 - .../job/source-build-build-tarball-pr.yml | 223 +++++ .../job/source-build-build-tarball.yml | 14 +- .../job/source-build-create-tarball-pr.yml | 85 ++ .../job/source-build-create-tarball.yml | 20 +- .../job/source-build-run-tarball-build-pr.yml | 132 +++ .../job/source-build-run-tarball-build.yml | 14 +- 12 files changed, 1088 insertions(+), 458 deletions(-) create mode 100644 eng/build-pr.yml delete mode 100644 eng/source-build-tarball-build.yml create mode 100644 src/SourceBuild/Arcade/eng/common/templates/job/source-build-build-tarball-pr.yml create mode 100644 src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball-pr.yml create mode 100644 src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build-pr.yml diff --git a/.vsts-ci.yml b/.vsts-ci.yml index 6067e7c1e..52443cb34 100644 --- a/.vsts-ci.yml +++ b/.vsts-ci.yml @@ -1,3 +1,5 @@ +# Pipeline: https://dnceng.visualstudio.com/internal/_build?definitionId=286 + trigger: batch: true branches: @@ -21,7 +23,6 @@ variables: - group: DotNet-Installer-SDLValidation-Params - name: _PublishUsingPipelines value: true - # Default to running tests in PRs and public CI, but not in official builds - name: _WindowsTestArg value: '-test' @@ -32,403 +33,430 @@ variables: value: '' - name: _NonWindowsTestArg value: '' - - name: _InternalRuntimeDownloadArgs value: '' - - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - group: DotNetBuilds storage account read tokens - name: _InternalRuntimeDownloadArgs value: /p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) /p:dotnetbuilds-internal-container-read-token-base64=$(dotnetbuilds-internal-container-read-token-base64) +- name: DncEngPublicBuildPool + value: NetCore-Svc-Public +- name: DncEngInternalBuildPool + value: NetCore1ESPool-Svc-Internal +# Set the MicroBuild plugin installation directory to the agent temp directory to avoid SDL tool scanning. +- name: MicroBuildOutputFolderOverride + value: $(Agent.TempDirectory) -stages: -- stage: build - jobs: - - job: Publish_Build_Configuration - pool: - ${{ if eq(variables['System.TeamProject'], 'public') }}: - name: NetCore-Svc-Public - demands: ImageOverride -equals windows.vs2019.amd64.open - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - name: NetCore1ESPool-Svc-Internal - demands: ImageOverride -equals windows.vs2019.amd64 - steps: - - publish: $(Build.SourcesDirectory)\eng\BuildConfiguration - artifact: BuildConfiguration - displayName: Publish Build Config - - template: /eng/build.yml - parameters: - agentOs: Windows_NT - pool: - ${{ if eq(variables['System.TeamProject'], 'public') }}: - name: NetCore-Svc-Public - demands: ImageOverride -equals windows.vs2019.amd64.open - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - name: NetCore1ESPool-Svc-Internal - demands: ImageOverride -equals windows.vs2019.amd64 - timeoutInMinutes: 180 - strategy: - matrix: - # Public-only builds - ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: - Build_Debug_x86: - _BuildConfig: Debug - _BuildArchitecture: x86 - _DOTNET_CLI_UI_LANGUAGE: '' - _AdditionalBuildParameters: '' - _TestArg: $(_WindowsTestArg) - Build_ES_Debug_x64: - _BuildConfig: Debug - _BuildArchitecture: x64 - _DOTNET_CLI_UI_LANGUAGE: es - _AdditionalBuildParameters: '' - _TestArg: '' - # Internal-only builds - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - Build_Release_x86: - _BuildConfig: Release - _BuildArchitecture: x86 - _DOTNET_CLI_UI_LANGUAGE: '' - _AdditionalBuildParameters: '' - _TestArg: $(_WindowsTestArg) - # Always run builds - Build_Release_x64: - _BuildConfig: Release - _BuildArchitecture: x64 - _DOTNET_CLI_UI_LANGUAGE: '' - _AdditionalBuildParameters: '/p:PublishInternalAsset=true' - _TestArg: $(_WindowsTestArg) - Build_Release_arm: - _BuildConfig: Release - _BuildArchitecture: arm - _DOTNET_CLI_UI_LANGUAGE: '' - _AdditionalBuildParameters: '' - # Never run tests on arm64 - _TestArg: '' - Build_Release_arm64: - _BuildConfig: Release - _BuildArchitecture: arm64 - _DOTNET_CLI_UI_LANGUAGE: '' - _AdditionalBuildParameters: '' - # Never run tests on arm64 - _TestArg: '' +resources: + repositories: + - repository: 1esPipelines + type: git + name: 1ESPipelineTemplates/1ESPipelineTemplates + ref: refs/tags/release - - template: /eng/build.yml - parameters: - agentOs: Windows_NT - pool: - ${{ if eq(variables['System.TeamProject'], 'public') }}: - name: NetCore-Svc-Public - demands: ImageOverride -equals windows.vs2019.amd64.open - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - name: NetCore1ESPool-Svc-Internal - demands: ImageOverride -equals windows.vs2019.amd64 - timeoutInMinutes: 180 - strategy: - matrix: - # Always run builds - Build_Release_x64: - _BuildConfig: Release - _BuildArchitecture: x64 - _DOTNET_CLI_UI_LANGUAGE: '' - _AdditionalBuildParameters: '/p:PublishInternalAsset=true' - # Never run tests on PGO bits - _TestArg: '' - Build_Release_x86: - _BuildConfig: Release - _BuildArchitecture: x86 - _DOTNET_CLI_UI_LANGUAGE: '' - _AdditionalBuildParameters: '' - _TestArg: '' - pgoInstrument: true - - - template: /eng/build.yml - parameters: - agentOs: Linux - pool: - ${{ if eq(variables['System.TeamProject'], 'public') }}: - name: NetCore-Svc-Public - demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - name: NetCore1ESPool-Svc-Internal - demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 - timeoutInMinutes: 180 - strategy: - matrix: - ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: - Build_Ubuntu_18_04_Debug_x64: - _BuildConfig: Debug - _DockerParameter: '--docker ubuntu.18.04' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _TestArg: $(_NonWindowsTestArg) - Build_Fedora_29_Debug_x64: - _BuildConfig: Debug - _DockerParameter: '--docker fedora.29' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _TestArg: $(_NonWindowsTestArg) - Build_CentOS_7_1_Debug_x64: - _BuildConfig: Debug - _DockerParameter: '--docker centos' - _LinuxPortable: '' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _TestArg: $(_NonWindowsTestArg) - Build_Debian_11_Debug_x64: - _BuildConfig: Debug - _DockerParameter: '--docker debian' - _LinuxPortable: '' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _AdditionalBuildParameters: '/p:BuildSdkDeb=true' - _TestArg: $(_NonWindowsTestArg) - Build_Rhel_7_2_Release_x64: - _BuildConfig: Release - _DockerParameter: '--docker rhel' - _LinuxPortable: '' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _TestArg: $(_NonWindowsTestArg) - Build_Rhel_7_2_Release_Arm64: - _BuildConfig: Release - _DockerParameter: '--docker rhel' - _LinuxPortable: '' - _RuntimeIdentifier: '--runtime-id linux-arm64' - _BuildArchitecture: 'arm64' - # Never run tests on arm - _TestArg: '' - _AdditionalBuildParameters: '/p:CLIBUILD_SKIP_TESTS=true' - Build_Arm_Debug: - _BuildConfig: Debug - _DockerParameter: '' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '--runtime-id linux-arm' - _BuildArchitecture: 'arm' - # Never run tests on arm - _TestArg: '' - Build_Arm64_Debug: - _BuildConfig: Debug - _DockerParameter: '' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '--runtime-id linux-arm64' - _BuildArchitecture: 'arm64' - # Never run tests on arm64 - _TestArg: '' - Build_Linux_musl_Debug_arm: - _BuildConfig: Debug - # linux-musl-arm cross gen depends on glibc 2.27 (this OS has it) - _DockerParameter: '--docker ubuntu.18.04' - _LinuxPortable: '' - _RuntimeIdentifier: '--runtime-id linux-musl-arm' - _BuildArchitecture: 'arm' - _AdditionalBuildParameters: '/p:OSName="linux-musl"' - # Never run tests on arm - _TestArg: '' - Build_Linux_musl_Debug_arm64: - _BuildConfig: Debug - _DockerParameter: '' - _LinuxPortable: '' - _RuntimeIdentifier: '--runtime-id linux-musl-arm64' - _BuildArchitecture: 'arm64' - _AdditionalBuildParameters: '/p:OSName="linux-musl"' - # Never run tests on arm64 - _TestArg: '' - Build_Linux_musl_Debug_x64: - _BuildConfig: Debug - _DockerParameter: '--docker alpine.3.13' - _LinuxPortable: '' - _RuntimeIdentifier: '--runtime-id linux-musl-x64' - _BuildArchitecture: 'x64' - # Pass in HostOSName when running on alpine - _AdditionalBuildParameters: '/p:HostOSName="linux-musl"' - _TestArg: $(_NonWindowsTestArg) - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - Build_Arm_Release: - _BuildConfig: Release - _DockerParameter: '' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '--runtime-id linux-arm' - _BuildArchitecture: 'arm' - # Never run tests on arm - _TestArg: '' - Build_Arm64_Release: - _BuildConfig: Release - _DockerParameter: '' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '--runtime-id linux-arm64' - _BuildArchitecture: 'arm64' - # Never run tests on arm64 - _TestArg: '' - Build_Linux_musl_Release_arm: - _BuildConfig: Release - # linux-musl-arm cross gen depends on glibc 2.27 (this OS has it) - _DockerParameter: '--docker ubuntu.18.04' - _LinuxPortable: '' - _RuntimeIdentifier: '--runtime-id linux-musl-arm' - _BuildArchitecture: 'arm' - _AdditionalBuildParameters: '/p:OSName="linux-musl"' - # Never run tests on arm - _TestArg: '' - Build_Linux_musl_Release_arm64: - _BuildConfig: Release - _DockerParameter: '' - _LinuxPortable: '' - _RuntimeIdentifier: '--runtime-id linux-musl-arm64' - _BuildArchitecture: 'arm64' - _AdditionalBuildParameters: '/p:OSName="linux-musl"' - # Never run tests on arm64 - _TestArg: '' - Build_Linux_musl_Release_x64: - _BuildConfig: Release - _DockerParameter: '--docker alpine.3.13' - _LinuxPortable: '' - _RuntimeIdentifier: '--runtime-id linux-musl-x64' - _BuildArchitecture: 'x64' - # Pass in HostOSName when running on alpine - _AdditionalBuildParameters: '/p:HostOSName="linux-musl"' - Build_Linux_Portable_Deb_Release_x64: - _BuildConfig: Release - _DockerParameter: '--docker ubuntu.18.04' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - # Do not publish zips and tarballs. The linux-x64 binaries are - # already published by Build_LinuxPortable_Release_x64 - _AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:BuildSdkDeb=true' - _TestArg: $(_NonWindowsTestArg) - Build_Linux_Portable_Rpm_Release_x64: - _BuildConfig: Release - _DockerParameter: '--docker rhel' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - # Do not publish zips and tarballs. The linux-x64 binaries are - # already published by Build_LinuxPortable_Release_x64 - _AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false' - _TestArg: $(_NonWindowsTestArg) - Build_Linux_Portable_Rpm_Release_Arm64: - _BuildConfig: Release - _DockerParameter: '--docker rhel' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '--runtime-id linux-arm64' - _BuildArchitecture: 'arm64' - # Do not publish zips and tarballs. The linux-x64 binaries are - # already published by Build_LinuxPortable_Release_x64 - _AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:CLIBUILD_SKIP_TESTS=true' - # Never run tests on arm64 - _TestArg: '' - Build_LinuxPortable_Release_x64: - _BuildConfig: Release - _DockerParameter: '' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _TestArg: $(_NonWindowsTestArg) - - - template: /eng/build.yml - parameters: - agentOs: Linux - pool: - ${{ if eq(variables['System.TeamProject'], 'public') }}: - name: NetCore-Svc-Public - demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - name: NetCore1ESPool-Svc-Internal - demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 - timeoutInMinutes: 180 - strategy: - matrix: - # Always run builds - Build_LinuxPortable_Release_x64: - _BuildConfig: Release - _DockerParameter: '' - _LinuxPortable: '--linux-portable' - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _TestArg: '' - pgoInstrument: true - - - template: /eng/build.yml - parameters: - agentOs: Darwin - pool: - vmImage: 'macOS-latest' - timeoutInMinutes: 180 - strategy: - matrix: - Build_Release_x64: - _BuildConfig: Release - _RuntimeIdentifier: '' - _BuildArchitecture: 'x64' - _TestArg: $(_NonWindowsTestArg) - Build_Release_arm64: - _BuildConfig: Release - _RuntimeIdentifier: '--runtime-id osx-arm64' - _BuildArchitecture: 'arm64' - # Never run tests on arm64 - _TestArg: '' - - - template: /eng/common/templates/jobs/source-build.yml - - - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball.yml - - - ${{ if in(variables['Build.Reason'], 'PullRequest') }}: - - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml - parameters: - dependsOn: Source_Build_Create_Tarball - - # https://github.com/dotnet/core-sdk/issues/248 - # - template: /eng/build.yml - # parameters: - # agentOs: FreeBSD - # queue: - # name: dnceng-freebsd-internal - # timeoutInMinutes: 180 - # matrix: - # Build_Release: - # _BuildConfig: Release - # _BuildArchitecture: 'x64' - # _AdditionalBuildParameters: '/p:DisableSourceLink=true /p:DISABLE_CROSSGEN=true' - - - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - template: /eng/common/templates/job/publish-build-assets.yml - parameters: - dependsOn: - - Windows_NT - - Linux - - Darwin - - Source_Build_Managed - - Source_Build_Create_Tarball - publishUsingPipelines: true +extends: + ${{ if notin(variables['Build.Reason'], 'PullRequest') }}: + template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines + ${{ else }}: + template: v1/1ES.Unofficial.PipelineTemplate.yml@1esPipelines + parameters: + containers: + fedora38: + image: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-38 + sdl: + sourceAnalysisPool: + name: $(DncEngInternalBuildPool) + image: 1es-windows-2019 + os: windows + stages: + - stage: build + jobs: + # Build Retry Configuration + - job: Publish_Build_Configuration pool: + ${{ if eq(variables['System.TeamProject'], 'public') }}: + name: $(DncEngPublicBuildPool) + image: 1es-windows-2019-open + os: windows ${{ if eq(variables['System.TeamProject'], 'internal') }}: - name: NetCore1ESPool-Svc-Internal - demands: ImageOverride -equals windows.vs2017.amd64 + name: $(DncEngInternalBuildPool) + image: 1es-windows-2019 + os: windows + steps: + - task: 1ES.PublishPipelineArtifact@1 + displayName: Publish Build Config + inputs: + targetPath: $(Build.SourcesDirectory)\eng\BuildConfiguration + artifactName: BuildConfiguration + - template: /eng/build.yml@self + parameters: + agentOs: Windows_NT + pool: + ${{ if eq(variables['System.TeamProject'], 'public') }}: + name: $(DncEngPublicBuildPool) + image: 1es-windows-2019-open + os: windows + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + name: $(DncEngInternalBuildPool) + image: 1es-windows-2019 + os: windows + timeoutInMinutes: 180 + strategy: + matrix: + # Public-only builds + ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: + Build_Debug_x86: + _BuildConfig: Debug + _BuildArchitecture: x86 + _DOTNET_CLI_UI_LANGUAGE: '' + _AdditionalBuildParameters: '' + _TestArg: $(_WindowsTestArg) + Build_ES_Debug_x64: + _BuildConfig: Debug + _BuildArchitecture: x64 + _DOTNET_CLI_UI_LANGUAGE: es + _AdditionalBuildParameters: '' + _TestArg: '' + # Internal-only builds + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + Build_Release_x86: + _BuildConfig: Release + _BuildArchitecture: x86 + _DOTNET_CLI_UI_LANGUAGE: '' + _AdditionalBuildParameters: '' + _TestArg: $(_WindowsTestArg) + # Always run builds + Build_Release_x64: + _BuildConfig: Release + _BuildArchitecture: x64 + _DOTNET_CLI_UI_LANGUAGE: '' + _AdditionalBuildParameters: '/p:PublishInternalAsset=true' + _TestArg: $(_WindowsTestArg) + Build_Release_arm: + _BuildConfig: Release + _BuildArchitecture: arm + _DOTNET_CLI_UI_LANGUAGE: '' + _AdditionalBuildParameters: '' + # Never run tests on arm64 + _TestArg: '' + Build_Release_arm64: + _BuildConfig: Release + _BuildArchitecture: arm64 + _DOTNET_CLI_UI_LANGUAGE: '' + _AdditionalBuildParameters: '' + # Never run tests on arm64 + _TestArg: '' + - template: /eng/build.yml@self + parameters: + agentOs: Windows_NT + pool: + ${{ if eq(variables['System.TeamProject'], 'public') }}: + name: $(DncEngPublicBuildPool) + image: 1es-windows-2019-open + os: windows + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + name: $(DncEngInternalBuildPool) + image: 1es-windows-2019 + os: windows + timeoutInMinutes: 180 + strategy: + matrix: + # Always run builds + Build_Release_x64: + _BuildConfig: Release + _BuildArchitecture: x64 + _DOTNET_CLI_UI_LANGUAGE: '' + _AdditionalBuildParameters: '/p:PublishInternalAsset=true' + # Never run tests on PGO bits + _TestArg: '' + Build_Release_x86: + _BuildConfig: Release + _BuildArchitecture: x86 + _DOTNET_CLI_UI_LANGUAGE: '' + _AdditionalBuildParameters: '' + _TestArg: '' + pgoInstrument: true -- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - template: eng\common\templates\post-build\post-build.yml - parameters: - publishingInfraVersion: 3 - enableSymbolValidation: false - enableSigningValidation: false - enableNugetValidation: false - enableSourceLinkValidation: false - publishInstallersAndChecksums: true - SDLValidationParameters: - enable: false - params: ' -SourceToolsList @("policheck","credscan") - -TsaInstanceURL $(_TsaInstanceURL) - -TsaProjectName $(_TsaProjectName) - -TsaNotificationEmail $(_TsaNotificationEmail) - -TsaCodebaseAdmin $(_TsaCodebaseAdmin) - -TsaBugAreaPath $(_TsaBugAreaPath) - -TsaIterationPath $(_TsaIterationPath) - -TsaRepositoryName "dotnet-installer" - -TsaCodebaseName "dotnet-installer" - -TsaPublish $True' + - template: /eng/build.yml@self + parameters: + agentOs: Linux + pool: + ${{ if eq(variables['System.TeamProject'], 'public') }}: + name: $(DncEngPublicBuildPool) + image: 1es-ubuntu-2004-open + os: linux + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + name: $(DncEngInternalBuildPool) + image: 1es-ubuntu-2004 + os: linux + timeoutInMinutes: 180 + strategy: + matrix: + ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: + Build_Ubuntu_18_04_Debug_x64: + _BuildConfig: Debug + _DockerParameter: '--docker ubuntu.18.04' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _TestArg: $(_NonWindowsTestArg) + Build_Fedora_29_Debug_x64: + _BuildConfig: Debug + _DockerParameter: '--docker fedora.29' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _TestArg: $(_NonWindowsTestArg) + Build_CentOS_7_1_Debug_x64: + _BuildConfig: Debug + _DockerParameter: '--docker centos' + _LinuxPortable: '' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _TestArg: $(_NonWindowsTestArg) + Build_Debian_11_Debug_x64: + _BuildConfig: Debug + _DockerParameter: '--docker debian' + _LinuxPortable: '' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _AdditionalBuildParameters: '/p:BuildSdkDeb=true' + _TestArg: $(_NonWindowsTestArg) + Build_Rhel_7_2_Release_x64: + _BuildConfig: Release + _DockerParameter: '--docker rhel' + _LinuxPortable: '' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _TestArg: $(_NonWindowsTestArg) + Build_Rhel_7_2_Release_Arm64: + _BuildConfig: Release + _DockerParameter: '--docker rhel' + _LinuxPortable: '' + _RuntimeIdentifier: '--runtime-id linux-arm64' + _BuildArchitecture: 'arm64' + # Never run tests on arm + _TestArg: '' + _AdditionalBuildParameters: '/p:CLIBUILD_SKIP_TESTS=true' + Build_Arm_Debug: + _BuildConfig: Debug + _DockerParameter: '' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '--runtime-id linux-arm' + _BuildArchitecture: 'arm' + # Never run tests on arm + _TestArg: '' + Build_Arm64_Debug: + _BuildConfig: Debug + _DockerParameter: '' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '--runtime-id linux-arm64' + _BuildArchitecture: 'arm64' + # Never run tests on arm64 + _TestArg: '' + Build_Linux_musl_Debug_arm: + _BuildConfig: Debug + # linux-musl-arm cross gen depends on glibc 2.27 (this OS has it) + _DockerParameter: '--docker ubuntu.18.04' + _LinuxPortable: '' + _RuntimeIdentifier: '--runtime-id linux-musl-arm' + _BuildArchitecture: 'arm' + _AdditionalBuildParameters: '/p:OSName="linux-musl"' + # Never run tests on arm + _TestArg: '' + Build_Linux_musl_Debug_arm64: + _BuildConfig: Debug + _DockerParameter: '' + _LinuxPortable: '' + _RuntimeIdentifier: '--runtime-id linux-musl-arm64' + _BuildArchitecture: 'arm64' + _AdditionalBuildParameters: '/p:OSName="linux-musl"' + # Never run tests on arm64 + _TestArg: '' + Build_Linux_musl_Debug_x64: + _BuildConfig: Debug + _DockerParameter: '--docker alpine.3.13' + _LinuxPortable: '' + _RuntimeIdentifier: '--runtime-id linux-musl-x64' + _BuildArchitecture: 'x64' + # Pass in HostOSName when running on alpine + _AdditionalBuildParameters: '/p:HostOSName="linux-musl"' + _TestArg: $(_NonWindowsTestArg) + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + Build_Arm_Release: + _BuildConfig: Release + _DockerParameter: '' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '--runtime-id linux-arm' + _BuildArchitecture: 'arm' + # Never run tests on arm + _TestArg: '' + Build_Arm64_Release: + _BuildConfig: Release + _DockerParameter: '' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '--runtime-id linux-arm64' + _BuildArchitecture: 'arm64' + # Never run tests on arm64 + _TestArg: '' + Build_Linux_musl_Release_arm: + _BuildConfig: Release + # linux-musl-arm cross gen depends on glibc 2.27 (this OS has it) + _DockerParameter: '--docker ubuntu.18.04' + _LinuxPortable: '' + _RuntimeIdentifier: '--runtime-id linux-musl-arm' + _BuildArchitecture: 'arm' + _AdditionalBuildParameters: '/p:OSName="linux-musl"' + # Never run tests on arm + _TestArg: '' + Build_Linux_musl_Release_arm64: + _BuildConfig: Release + _DockerParameter: '' + _LinuxPortable: '' + _RuntimeIdentifier: '--runtime-id linux-musl-arm64' + _BuildArchitecture: 'arm64' + _AdditionalBuildParameters: '/p:OSName="linux-musl"' + # Never run tests on arm64 + _TestArg: '' + Build_Linux_musl_Release_x64: + _BuildConfig: Release + _DockerParameter: '--docker alpine.3.13' + _LinuxPortable: '' + _RuntimeIdentifier: '--runtime-id linux-musl-x64' + _BuildArchitecture: 'x64' + # Pass in HostOSName when running on alpine + _AdditionalBuildParameters: '/p:HostOSName="linux-musl"' + Build_Linux_Portable_Deb_Release_x64: + _BuildConfig: Release + _DockerParameter: '--docker ubuntu.18.04' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + # Do not publish zips and tarballs. The linux-x64 binaries are + # already published by Build_LinuxPortable_Release_x64 + _AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:BuildSdkDeb=true' + _TestArg: $(_NonWindowsTestArg) + Build_Linux_Portable_Rpm_Release_x64: + _BuildConfig: Release + _DockerParameter: '--docker rhel' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + # Do not publish zips and tarballs. The linux-x64 binaries are + # already published by Build_LinuxPortable_Release_x64 + _AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false' + _TestArg: $(_NonWindowsTestArg) + Build_Linux_Portable_Rpm_Release_Arm64: + _BuildConfig: Release + _DockerParameter: '--docker rhel' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '--runtime-id linux-arm64' + _BuildArchitecture: 'arm64' + # Do not publish zips and tarballs. The linux-x64 binaries are + # already published by Build_LinuxPortable_Release_x64 + _AdditionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:CLIBUILD_SKIP_TESTS=true' + # Never run tests on arm64 + _TestArg: '' + Build_LinuxPortable_Release_x64: + _BuildConfig: Release + _DockerParameter: '' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _TestArg: $(_NonWindowsTestArg) + + - template: /eng/build.yml@self + parameters: + agentOs: Linux + pool: + ${{ if eq(variables['System.TeamProject'], 'public') }}: + name: $(DncEngPublicBuildPool) + image: 1es-ubuntu-2004-open + os: linux + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + name: $(DncEngInternalBuildPool) + image: 1es-ubuntu-2004 + os: linux + timeoutInMinutes: 180 + strategy: + matrix: + # Always run builds + Build_LinuxPortable_Release_x64: + _BuildConfig: Release + _DockerParameter: '' + _LinuxPortable: '--linux-portable' + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _TestArg: '' + pgoInstrument: true + + - template: /eng/build.yml@self + parameters: + agentOs: Darwin + pool: + name: Azure Pipelines + image: macOS-latest + os: macOS + timeoutInMinutes: 180 + strategy: + matrix: + Build_Release_x64: + _BuildConfig: Release + _RuntimeIdentifier: '' + _BuildArchitecture: 'x64' + _TestArg: $(_NonWindowsTestArg) + Build_Release_arm64: + _BuildConfig: Release + _RuntimeIdentifier: '--runtime-id osx-arm64' + _BuildArchitecture: 'arm64' + # Never run tests on arm64 + _TestArg: '' + + - template: /eng/common/templates-official/jobs/source-build.yml@self + + - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball.yml@self + + - ${{ if in(variables['Build.Reason'], 'PullRequest') }}: + - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml@self + parameters: + dependsOn: Source_Build_Create_Tarball + + - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - template: /eng/common/templates-official/job/publish-build-assets.yml@self + parameters: + dependsOn: + - Windows_NT + - Linux + - Darwin + - Source_Build_Managed + - Source_Build_Create_Tarball + publishUsingPipelines: true + pool: + name: $(DncEngInternalBuildPool) + image: 1es-windows-2019 + os: windows + + - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - template: /eng/common/templates-official/post-build/post-build.yml@self + parameters: + publishingInfraVersion: 3 + enableSymbolValidation: false + enableSigningValidation: false + enableNugetValidation: false + enableSourceLinkValidation: false + publishInstallersAndChecksums: true + SDLValidationParameters: + enable: false + params: ' -SourceToolsList @("policheck","credscan") + -TsaInstanceURL $(_TsaInstanceURL) + -TsaProjectName $(_TsaProjectName) + -TsaNotificationEmail $(_TsaNotificationEmail) + -TsaCodebaseAdmin $(_TsaCodebaseAdmin) + -TsaBugAreaPath $(_TsaBugAreaPath) + -TsaIterationPath $(_TsaIterationPath) + -TsaRepositoryName "dotnet-installer" + -TsaCodebaseName "dotnet-installer" + -TsaPublish $True' diff --git a/.vsts-pr.yml b/.vsts-pr.yml index 6067e7c1e..4fb55d65e 100644 --- a/.vsts-pr.yml +++ b/.vsts-pr.yml @@ -21,7 +21,6 @@ variables: - group: DotNet-Installer-SDLValidation-Params - name: _PublishUsingPipelines value: true - # Default to running tests in PRs and public CI, but not in official builds - name: _WindowsTestArg value: '-test' @@ -32,10 +31,8 @@ variables: value: '' - name: _NonWindowsTestArg value: '' - - name: _InternalRuntimeDownloadArgs value: '' - - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - group: DotNetBuilds storage account read tokens - name: _InternalRuntimeDownloadArgs @@ -58,7 +55,7 @@ stages: - publish: $(Build.SourcesDirectory)\eng\BuildConfiguration artifact: BuildConfiguration displayName: Publish Build Config - - template: /eng/build.yml + - template: /eng/build-pr.yml parameters: agentOs: Windows_NT pool: @@ -115,7 +112,7 @@ stages: # Never run tests on arm64 _TestArg: '' - - template: /eng/build.yml + - template: /eng/build-pr.yml parameters: agentOs: Windows_NT pool: @@ -144,7 +141,7 @@ stages: _TestArg: '' pgoInstrument: true - - template: /eng/build.yml + - template: /eng/build-pr.yml parameters: agentOs: Linux pool: @@ -330,7 +327,7 @@ stages: _BuildArchitecture: 'x64' _TestArg: $(_NonWindowsTestArg) - - template: /eng/build.yml + - template: /eng/build-pr.yml parameters: agentOs: Linux pool: @@ -353,7 +350,7 @@ stages: _TestArg: '' pgoInstrument: true - - template: /eng/build.yml + - template: /eng/build-pr.yml parameters: agentOs: Darwin pool: @@ -375,26 +372,13 @@ stages: - template: /eng/common/templates/jobs/source-build.yml - - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball.yml + - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball-pr.yml - ${{ if in(variables['Build.Reason'], 'PullRequest') }}: - - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml + - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build-pr.yml parameters: dependsOn: Source_Build_Create_Tarball - # https://github.com/dotnet/core-sdk/issues/248 - # - template: /eng/build.yml - # parameters: - # agentOs: FreeBSD - # queue: - # name: dnceng-freebsd-internal - # timeoutInMinutes: 180 - # matrix: - # Build_Release: - # _BuildConfig: Release - # _BuildArchitecture: 'x64' - # _AdditionalBuildParameters: '/p:DisableSourceLink=true /p:DISABLE_CROSSGEN=true' - - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - template: /eng/common/templates/job/publish-build-assets.yml parameters: @@ -410,7 +394,6 @@ stages: name: NetCore1ESPool-Svc-Internal demands: ImageOverride -equals windows.vs2017.amd64 - - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - template: eng\common\templates\post-build\post-build.yml parameters: diff --git a/eng/build-pr.yml b/eng/build-pr.yml new file mode 100644 index 000000000..f05d66fa6 --- /dev/null +++ b/eng/build-pr.yml @@ -0,0 +1,166 @@ +parameters: + # Agent OS identifier and used as job name + agentOs: '' + + # Agent pool + pool: {} + + # Additional variables + variables: {} + + # Build strategy - matrix + strategy: {} + + # Job timeout + timeoutInMinutes: 180 + + # Publish using pipelines + enablePublishUsingPipelines: true + +phases: +- template: /eng/common/templates/job/job.yml + parameters: + ${{ if parameters.pgoInstrument }}: + name: PGO_${{ parameters.agentOs }} + ${{ if not(parameters.pgoInstrument) }}: + name: ${{ parameters.agentOs }} + timeoutInMinutes: ${{ parameters.timeoutInMinutes }} + ${{ if eq(parameters.agentOs, 'Windows_NT') }}: + enableMicrobuild: true + enablePublishBuildAssets: true + enablePublishUsingPipelines: ${{parameters.enablePublishUsingPipelines}} + enableTelemetry: true + helixRepo: dotnet/installer + pool: ${{ parameters.pool }} + ${{ if ne(parameters.strategy, '') }}: + strategy: ${{ parameters.strategy }} + workspace: + clean: all + + variables: + - _PgoInstrument: '' + - ${{ if eq(parameters.agentOs, 'Windows_NT') }}: + - _PackArg: '-pack' + - ${{ if ne(parameters.agentOs, 'Windows_NT') }}: + - _PackArg: '--pack' + - ${{ if parameters.pgoInstrument }}: + - _PgoInstrument: '/p:PgoInstrument=true' + - _PackArg: '' + - _AgentOSName: ${{ parameters.agentOs }} + - _TeamName: Roslyn-Project-System + - _SignType: test + - _BuildArgs: '/p:DotNetSignType=$(_SignType) $(_PgoInstrument)' + - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - group: DotNet-Symbol-Server-PATs + - group: DotNet-HelixApi-Access + - group: DotNet-Blob-Feed + - _DotNetPublishToBlobFeed: true + - _PushToVSFeed: true + - _SignType: real + - _BuildArgs: /p:OfficialBuildId=$(BUILD.BUILDNUMBER) + /p:DotNetSignType=$(_SignType) + /p:TeamName=$(_TeamName) + /p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines) + $(_PgoInstrument) + + steps: + - checkout: self + clean: true + - ${{ if eq(parameters.agentOs, 'Windows_NT') }}: + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - task: PowerShell@2 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1 + arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + - script: build.cmd + $(_TestArg) $(_PackArg) + -publish -ci -sign + -Configuration $(_BuildConfig) + -Architecture $(_BuildArchitecture) + $(_BuildArgs) + $(_AdditionalBuildParameters) + $(_InternalRuntimeDownloadArgs) + displayName: Build + env: + DOTNET_CLI_UI_LANGUAGE: $(_DOTNET_CLI_UI_LANGUAGE) + + - ${{ if ne(parameters.agentOs, 'Windows_NT') }}: + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - task: Bash@3 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh + arguments: $(Build.SourcesDirectory)/NuGet.config $Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + + - ${{ if eq(parameters.agentOs, 'Linux') }}: + - script: ./build.sh + $(_TestArg) $(_PackArg) + --publish --ci + --noprettyprint + --configuration $(_BuildConfig) + $(_DockerParameter) + --architecture $(_BuildArchitecture) + $(_LinuxPortable) + $(_RuntimeIdentifier) + $(_BuildArgs) + $(_AdditionalBuildParameters) + $(_InternalRuntimeDownloadArgs) + displayName: Build + + - ${{ if or(eq(parameters.agentOs, 'Darwin'), eq(parameters.agentOs, 'FreeBSD')) }}: + - script: ./build.sh + $(_TestArg) + --pack --publish --ci + --noprettyprint + --configuration $(_BuildConfig) + --architecture $(_BuildArchitecture) + $(_RuntimeIdentifier) + $(_BuildArgs) + $(_AdditionalBuildParameters) + $(_InternalRuntimeDownloadArgs) + displayName: Build + + - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.agentOs, 'Windows_NT'), ne(variables['PostBuildSign'], 'true')) }}: + - task: NuGetCommand@2 + displayName: Push Visual Studio NuPkgs + inputs: + command: push + packagesToPush: '$(Build.SourcesDirectory)/artifacts/packages/$(_BuildConfig)/NonShipping/VS.*.nupkg' + nuGetFeedType: external + publishFeedCredentials: 'DevDiv - VS package feed' + condition: and(succeeded(), ne(variables['PostBuildSign'], true), eq(variables['_PushToVSFeed'], 'true'), eq(variables['_DotNetPublishToBlobFeed'], 'true'), or(eq(variables['_BuildArchitecture'], 'x64'), eq(variables['_BuildArchitecture'], 'x86'))) + + - task: PublishTestResults@2 + displayName: Publish Test Results + inputs: + testRunner: XUnit + testResultsFiles: 'artifacts/TestResults/$(_BuildConfig)/*.xml' + testRunTitle: '$(_AgentOSName)_$(Agent.JobName)' + platform: '$(BuildPlatform)' + configuration: '$(_BuildConfig)' + condition: ne(variables['_TestArg'], '') + + - task: CopyFiles@2 + displayName: Gather Logs + inputs: + SourceFolder: '$(Build.SourcesDirectory)/artifacts' + Contents: | + log/$(_BuildConfig)/**/* + TestResults/$(_BuildConfig)/**/* + TargetFolder: '$(Build.ArtifactStagingDirectory)' + continueOnError: true + condition: always() + + - task: PublishBuildArtifacts@1 + displayName: Publish Logs to VSTS + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)' + ArtifactName: '$(_AgentOSName)_$(Agent.JobName)_$(Build.BuildNumber)' + publishLocation: Container + continueOnError: true + condition: always() diff --git a/eng/build.yml b/eng/build.yml index c23bbb11b..2ce873c3d 100644 --- a/eng/build.yml +++ b/eng/build.yml @@ -18,7 +18,7 @@ parameters: enablePublishUsingPipelines: true phases: -- template: /eng/common/templates/job/job.yml +- template: /eng/common/templates-official/job/job.yml parameters: ${{ if parameters.pgoInstrument }}: name: PGO_${{ parameters.agentOs }} @@ -28,9 +28,6 @@ phases: ${{ if eq(parameters.agentOs, 'Windows_NT') }}: enableMicrobuild: true enablePublishBuildAssets: true - # Don't use built-in arcade logic for publishing artifacts and test results, as we manually do this and give better names - #enablePublishBuildArtifacts: true - #enablePublishTestResults: true enablePublishUsingPipelines: ${{parameters.enablePublishUsingPipelines}} enableTelemetry: true helixRepo: dotnet/installer @@ -49,12 +46,10 @@ phases: - ${{ if parameters.pgoInstrument }}: - _PgoInstrument: '/p:PgoInstrument=true' - _PackArg: '' - - _AgentOSName: ${{ parameters.agentOs }} - _TeamName: Roslyn-Project-System - _SignType: test - _BuildArgs: '/p:DotNetSignType=$(_SignType) $(_PgoInstrument)' - - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - group: DotNet-Symbol-Server-PATs - group: DotNet-HelixApi-Access @@ -101,6 +96,7 @@ phases: arguments: $(Build.SourcesDirectory)/NuGet.config $Token env: Token: $(dn-bot-dnceng-artifact-feeds-rw) + - ${{ if eq(parameters.agentOs, 'Linux') }}: - script: ./build.sh $(_TestArg) $(_PackArg) @@ -130,10 +126,9 @@ phases: displayName: Build - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.agentOs, 'Windows_NT'), ne(variables['PostBuildSign'], 'true')) }}: - - task: NuGetCommand@2 + - task: 1ES.PublishNuget@1 displayName: Push Visual Studio NuPkgs inputs: - command: push packagesToPush: '$(Build.SourcesDirectory)/artifacts/packages/$(_BuildConfig)/NonShipping/VS.*.nupkg' nuGetFeedType: external publishFeedCredentials: 'DevDiv - VS package feed' @@ -154,13 +149,13 @@ phases: inputs: SourceFolder: '$(Build.SourcesDirectory)/artifacts' Contents: | - log/$(_BuildConfig)/**/* - TestResults/$(_BuildConfig)/**/* + log/$(_BuildConfig)/**/* + TestResults/$(_BuildConfig)/**/* TargetFolder: '$(Build.ArtifactStagingDirectory)' continueOnError: true condition: always() - - task: PublishBuildArtifacts@1 + - task: 1ES.PublishBuildArtifacts@1 displayName: Publish Logs to VSTS inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)' diff --git a/eng/source-build-tarball-build-official.yml b/eng/source-build-tarball-build-official.yml index 38753d24d..705bd8d5f 100644 --- a/eng/source-build-tarball-build-official.yml +++ b/eng/source-build-tarball-build-official.yml @@ -1,5 +1,6 @@ trigger: none pr: none + resources: pipelines: - pipeline: installer-build-resource @@ -12,10 +13,25 @@ resources: - internal/release/* stages: - build + repositories: + - repository: 1ESPipelineTemplates + type: git + name: 1ESPipelineTemplates/1ESPipelineTemplates + ref: refs/tags/release -stages: -- stage: build - jobs: - - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml - parameters: - installerBuildResourceId: installer-build-resource +extends: + template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates + parameters: + sdl: + sourceAnalysisPool: + name: NetCore1ESPool-Svc-Internal + image: 1es-windows-2022 + os: windows + customBuildTags: + - ES365AIMigrationTooling + stages: + - stage: build + jobs: + - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml@self + parameters: + installerBuildResourceId: installer-build-resource diff --git a/eng/source-build-tarball-build.yml b/eng/source-build-tarball-build.yml deleted file mode 100644 index da87d93cf..000000000 --- a/eng/source-build-tarball-build.yml +++ /dev/null @@ -1,14 +0,0 @@ -trigger: none -pr: none -resources: - pipelines: - - pipeline: installer-build-resource - source: installer - trigger: none - -stages: -- stage: build - jobs: - - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml - parameters: - installerBuildResourceId: installer-build-resource diff --git a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-build-tarball-pr.yml b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-build-tarball-pr.yml new file mode 100644 index 000000000..f5569e26b --- /dev/null +++ b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-build-tarball-pr.yml @@ -0,0 +1,223 @@ +# Builds a source-build tarball + +parameters: + # Architecture to build + architecture: + + # Custom condition to apply to the job + condition: + + # Dependent jobs that must be completed before this job will run + dependsOn: + + # Skip running the SDK content smoke-tests + excludeSdkContentTests: false + + # Resource id of the installer build to retrieve source/product tarball's from + installerBuildResourceId: + + # Matrix to run jobs over + matrix: + + # Job name + name: + + # Agent pool to use + pool: + + # Build using the previous source-build artifacts + usePreviousArtifacts: false + +jobs: +- job: ${{ parameters.name }} + condition: ${{ parameters.condition }} + dependsOn: ${{ parameters.dependsOn }} + pool: ${{ parameters.pool }} + strategy: + matrix: ${{ parameters.matrix }} + timeoutInMinutes: 300 + variables: + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - group: AzureDevOps-Artifact-Feeds-Pats + - ${{ if eq(parameters.usePreviousArtifacts, 'true') }}: + - name: additionalBuildArgs + value: --with-sdk /tarball/.dotnet + - name: tarballDir + ${{ if eq(parameters.installerBuildResourceId, '') }}: + value: $(Build.SourcesDirectory) + ${{ else }}: + value: $(Build.StagingDirectory)/tarball + - name: installerSrcDir + ${{ if eq(parameters.installerBuildResourceId, '') }}: + value: $(Build.SourcesDirectory)/src/installer + ${{ else }}: + value: $(Build.SourcesDirectory) + workspace: + clean: all + + steps: + - checkout: self + clean: true + + - ${{ if ne(parameters.installerBuildResourceId, '') }}: + - download: ${{ parameters.installerBuildResourceId }} + artifact: BlobArtifacts + patterns: '**/dotnet-sdk-source*.tar.gz' + displayName: Download Source Tarball + + - script: | + set -x + + resourceIdPathSegment= + if [[ '${{ parameters.installerBuildResourceId }}' != 'current' ]]; then + resourceIdPathSegment='${{ parameters.installerBuildResourceId }}/' + fi + + mkdir -p "$(tarballDir)" + tarballFilePath="$(PIPELINE.WORKSPACE)/${resourceIdPathSegment}BlobArtifacts/dotnet-sdk-source*.tar.gz" + eval tar -ozxf "$tarballFilePath" -C "$(tarballDir)" + eval rm -f "$tarballFilePath" + displayName: Extract Tarball + + - script: cp $(installerSrcDir)/NuGet.config $(tarballDir)/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/online.NuGet.Config + displayName: Copy Test NuGet Config + + - ${{ if ne(parameters.excludeSdkContentTests, 'true') }}: + - download: ${{ parameters.installerBuildResourceId }} + artifact: BlobArtifacts + patterns: '**/dotnet-sdk-+([0-9]).+([0-9]).+([0-9])?(-@(preview|rc|rtm)*)-linux*-${{ parameters.architecture }}.tar.gz' + displayName: Download MSFT sdk Tarball + + - ${{ if eq(parameters.usePreviousArtifacts, 'true') }}: + - download: current + artifact: $(_PreviousSourceBuildArtifact) + patterns: '*.tar.gz' + displayName: Download Previous Source Build Artifacts + + - task: CopyFiles@2 + displayName: Copy Previous Source Build Artifacts + inputs: + SourceFolder: $(PIPELINE.WORKSPACE)/$(_PreviousSourceBuildArtifact) + Contents: '*.tar.gz' + TargetFolder: $(tarballDir)/packages/archive/ + + - script: | + set -x + + if [[ '${{ parameters.usePreviousArtifacts }}' != 'true' ]]; then + customPrepArgs= + if [[ '$(_BootstrapPrep)' == 'true' ]]; then + customPrepArgs='--bootstrap' + fi + + docker run --rm -v $(tarballDir):/tarball -w /tarball $(_Container) ./prep.sh ${customPrepArgs} + else + mkdir $(tarballDir)/.dotnet + tarballFilePath="$(tarballDir)/packages/archive/dotnet-sdk-*.tar.gz" + eval tar -ozxf "$tarballFilePath" -C "$(tarballDir)/.dotnet" + eval rm -f "$tarballFilePath" + fi + displayName: Prep Tarball + + - script: | + set -x + df -h + + customRunArgs= + customBuildArgs= + if [[ '$(_RunOnline)' == 'true' ]]; then + customBuildArgs='--online' + else + customRunArgs='--network none' + fi + + # See https://github.com/dotnet/source-build/issues/3712 + if [[ '$(_OverrideDistroDisablingSha1)' == 'true' ]]; then + customRunArgs="$customRunArgs -e OPENSSL_ENABLE_SHA1_SIGNATURES=1" + fi + + if [[ '$(_EnablePoison)' == 'true' ]]; then + customBuildArgs="$customBuildArgs --poison" + fi + + docker run --rm -v $(tarballDir):/tarball -w /tarball ${customRunArgs} $(_Container) ./build.sh --clean-while-building ${customBuildArgs} $(additionalBuildArgs) + displayName: Build Tarball + + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - task: Bash@3 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(installerSrcDir)/eng/common/SetupNugetSources.sh + arguments: $(tarballDir)/test/Microsoft.DotNet.SourceBuild.SmokeTests/assets/online.NuGet.Config $Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + + - script: | + set -x + + dockerVolumeArgs="-v $(tarballDir):/tarball" + dockerEnvArgs="-e SMOKE_TESTS_EXCLUDE_OMNISHARP=$(_ExcludeOmniSharpTests) -e SMOKE_TESTS_WARN_SDK_CONTENT_DIFFS=true" + poisonArg='' + + if [[ '${{ parameters.excludeSdkContentTests}}' != 'true' ]]; then + dockerVolumeArgs+=" -v $(PIPELINE.WORKSPACE)/${{ parameters.installerBuildResourceId }}/BlobArtifacts/:/BlobArtifacts" + platform="linux" + docker run --rm $(_Container) /bin/sh -c "cat /etc/os-release | grep -q alpine" + if [[ $? == 0 ]]; then + platform="$platform-musl" + fi + msftSdkTarballName=$(find "$(PIPELINE.WORKSPACE)/${{ parameters.installerBuildResourceId }}/BlobArtifacts/" -name "dotnet-sdk-*-$platform-${{ parameters.architecture }}.tar.gz" -exec basename {} \;) + dockerEnvArgs+=" -e SMOKE_TESTS_MSFT_SDK_TARBALL_PATH=/BlobArtifacts/$msftSdkTarballName" + fi + + if [[ '$(_EnablePoison)' == 'true' ]]; then + poisonArg='--poison' + dockerEnvArgs+=" -e SMOKE_TESTS_WARN_POISON_DIFFS=true" + fi + + docker run --rm $dockerVolumeArgs -w /tarball $dockerEnvArgs $(_Container) ./build.sh $poisonArg --run-smoke-test $(additionalBuildArgs) -- /p:SmokeTestConsoleVerbosity=detailed + displayName: Run Tests + + # Don't use CopyFiles@2 as it encounters permissions issues because it indexes all files in the source directory graph. + - script: | + set -x + + targetFolder=$(Build.StagingDirectory)/BuildLogs/ + mkdir -p ${targetFolder} + + cd "$(tarballDir)" + find artifacts/ -type f -name "*.binlog" -exec cp {} --parents -t ${targetFolder} \; + find artifacts/ -type f -name "*.log" -exec cp {} --parents -t ${targetFolder} \; + find artifacts/prebuilt-report/ -exec cp {} --parents -t ${targetFolder} \; + find src/ -type f -name "*.binlog" -exec cp {} --parents -t ${targetFolder} \; + find src/ -type f -name "*.log" -exec cp {} --parents -t ${targetFolder} \; + find test/ -type f -name "*.binlog" -exec cp {} --parents -t ${targetFolder} \; + find test/ -type f -name "Updated*.diff" -exec cp {} --parents -t ${targetFolder} \; + find test/ -type f -name "Updated*.txt" -exec cp {} --parents -t ${targetFolder} \; + displayName: Prepare BuildLogs staging directory + continueOnError: true + condition: succeededOrFailed() + + - publish: '$(Build.StagingDirectory)/BuildLogs' + artifact: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt) + displayName: Publish BuildLogs + continueOnError: true + condition: succeededOrFailed() + + - task: PublishTestResults@2 + displayName: Publish Test Results + condition: succeededOrFailed() + continueOnError: true + inputs: + testRunner: vSTest + testResultsFiles: 'test/**/*.trx' + searchFolder: $(tarballDir) + mergeTestResults: true + publishRunAttachments: true + testRunTitle: SourceBuild_SmokeTests_$(Agent.JobName) + + - publish: '$(tarballDir)/artifacts/${{ parameters.architecture}}/Release/' + artifact: $(Agent.JobName)_Artifacts + displayName: Publish Artifacts + condition: succeededOrFailed() + continueOnError: true diff --git a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-build-tarball.yml b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-build-tarball.yml index f5569e26b..f13e9193b 100644 --- a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-build-tarball.yml +++ b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-build-tarball.yml @@ -198,9 +198,11 @@ jobs: continueOnError: true condition: succeededOrFailed() - - publish: '$(Build.StagingDirectory)/BuildLogs' - artifact: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt) + - task: 1ES.PublishPipelineArtifact@1 displayName: Publish BuildLogs + inputs: + targetPath: $(Build.StagingDirectory)/BuildLogs + artifactName: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt) continueOnError: true condition: succeededOrFailed() @@ -216,8 +218,10 @@ jobs: publishRunAttachments: true testRunTitle: SourceBuild_SmokeTests_$(Agent.JobName) - - publish: '$(tarballDir)/artifacts/${{ parameters.architecture}}/Release/' - artifact: $(Agent.JobName)_Artifacts + - task: 1ES.PublishPipelineArtifact@1 displayName: Publish Artifacts - condition: succeededOrFailed() + inputs: + targetPath: $(tarballDir)/artifacts/${{ parameters.architecture}}/Release/ + artifactName: $(Agent.JobName)_Artifacts continueOnError: true + condition: succeededOrFailed() diff --git a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball-pr.yml b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball-pr.yml new file mode 100644 index 000000000..347f61cf8 --- /dev/null +++ b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball-pr.yml @@ -0,0 +1,85 @@ +# Creates a source-build tarball + +jobs: +- job: Source_Build_Create_Tarball + container: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-38 + displayName: Source-Build Create Tarball + pool: + ${{ if eq(variables['System.TeamProject'], 'public') }}: + ${{ if in(variables['Build.Reason'], 'PullRequest') }}: + name: NetCore-Public-XL + demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open + ${{ else }}: + name: NetCore-Svc-Public + demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + ${{ if in(variables['Build.Reason'], 'PullRequest') }}: + name: NetCore1ESPool-Internal-XL + demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 + ${{ else }}: + name: NetCore1ESPool-Svc-Internal + demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 + + variables: + - name: _BuildConfig + value: Release + + - ${{ if eq(variables['System.TeamProject'], 'internal') }}: + - group: DotNet-Source-Build-All-Orgs-Source-Access + workspace: + clean: all + + steps: + - ${{ if ne(variables['System.TeamProject'], 'public') }}: + - task: Bash@3 + displayName: Setup Private Feeds Credentials + inputs: + filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh + arguments: $(Build.SourcesDirectory)/NuGet.config $Token + env: + Token: $(dn-bot-dnceng-artifact-feeds-rw) + - script: | + set -x + df -h + + officialBuildArgs= + if [ '${{ and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}' = 'True' ]; then + officialBuildArgs='/p:OfficialBuildId=$(BUILD.BUILDNUMBER)' + fi + + # If building on the internal project, the internal storage variable may be available (usually only if needed) + # In that case, add variables to allow the download of internal runtimes if the specified versions are not found + # in the default public locations. + internalRuntimeDownloadArgs= + if [ '$(dotnetbuilds-internal-container-read-token-base64)' != '$''(dotnetbuilds-internal-container-read-token-base64)' ]; then + internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://dotnetbuilds.blob.core.windows.net/internal --runtimesourcefeedkey $(dotnetbuilds-internal-container-read-token-base64)' + fi + + ./build.sh \ + --ci \ + --configuration $(_BuildConfig) \ + --publish \ + -bl \ + $officialBuildArgs \ + $internalRuntimeDownloadArgs \ + /p:DotNetPublishUsingPipelines=true \ + /p:ArcadeBuildTarball=true \ + /p:AzDoPat=$(dn-bot-all-orgs-build-rw-code-rw) + displayName: Create Tarball + + - task: CopyFiles@2 + displayName: Prepare BuildLogs staging directory + inputs: + Contents: | + **/*.log + **/*.binlog + TargetFolder: '$(Build.StagingDirectory)/BuildLogs' + CleanTargetFolder: true + continueOnError: true + condition: succeededOrFailed() + + - publish: '$(Build.StagingDirectory)/BuildLogs' + artifact: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt) + displayName: Publish BuildLogs + continueOnError: true + condition: succeededOrFailed() diff --git a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball.yml b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball.yml index 347f61cf8..7cba0c4ea 100644 --- a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball.yml +++ b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-create-tarball.yml @@ -2,23 +2,27 @@ jobs: - job: Source_Build_Create_Tarball - container: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-38 + container: fedora38 displayName: Source-Build Create Tarball pool: ${{ if eq(variables['System.TeamProject'], 'public') }}: ${{ if in(variables['Build.Reason'], 'PullRequest') }}: name: NetCore-Public-XL - demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open + image: 1es-ubuntu-2004-open + os: linux ${{ else }}: name: NetCore-Svc-Public - demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open + image: 1es-ubuntu-2004-open + os: linux ${{ if eq(variables['System.TeamProject'], 'internal') }}: ${{ if in(variables['Build.Reason'], 'PullRequest') }}: name: NetCore1ESPool-Internal-XL - demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 + image: 1es-ubuntu-2004 + os: linux ${{ else }}: name: NetCore1ESPool-Svc-Internal - demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 + image: 1es-ubuntu-2004 + os: linux variables: - name: _BuildConfig @@ -78,8 +82,10 @@ jobs: continueOnError: true condition: succeededOrFailed() - - publish: '$(Build.StagingDirectory)/BuildLogs' - artifact: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt) + - task: 1ES.PublishPipelineArtifact@1 displayName: Publish BuildLogs + inputs: + targetPath: $(Build.StagingDirectory)/BuildLogs + artifactName: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt) continueOnError: true condition: succeededOrFailed() diff --git a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build-pr.yml b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build-pr.yml new file mode 100644 index 000000000..277fee33f --- /dev/null +++ b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build-pr.yml @@ -0,0 +1,132 @@ +# Builds a source-build tarball + +parameters: + # Dependent jobs that must be completed before this job will run + dependsOn: + + # Resource id of the installer build to retrieve source/product tarball's from + installerBuildResourceId: current + + # The following parameters aren't expected to be passed in rather they are used for encapsulation + # ----------------------------------------------------------------------------------------------- + alpine317Container: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.17 + centOS7Container: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-source-build + centOSStream9Container: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9 + debian11Arm64Container: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-11-arm64v8 + fedora38Container: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-38 + ubuntu1804Container: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04 + poolInternalAmd64: + name: NetCore1ESPool-Svc-Internal + demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 + poolInternalAmd64PR: + name: NetCore1ESPool-Internal-XL + demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 + poolInternalArm64: + name: Docker-Linux-Arm-Internal + poolPublicAmd64: + name: NetCore-Public-XL + demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open + +jobs: +- template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-build-tarball-pr.yml + parameters: + architecture: x64 + dependsOn: ${{ parameters.dependsOn }} + ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: + excludeSdkContentTests: true + installerBuildResourceId: ${{ parameters.installerBuildResourceId }} + matrix: + Alpine317-Offline: + _BootstrapPrep: true + _Container: ${{ parameters.alpine317Container }} + _ExcludeOmniSharpTests: true + _OverrideDistroDisablingSha1: false + _RunOnline: false + CentOS7-Online: + _BootstrapPrep: false + _Container: ${{ parameters.centOS7Container }} + _EnablePoison: false + _ExcludeOmniSharpTests: true + _OverrideDistroDisablingSha1: false + _RunOnline: true + CentOS7-Offline: + _BootstrapPrep: false + _Container: ${{ parameters.centOS7Container }} + _EnablePoison: false + _ExcludeOmniSharpTests: true + _OverrideDistroDisablingSha1: false + _RunOnline: false + ${{ if ne(variables['Build.Reason'], 'PullRequest') }}: + CentOSStream9-Offline: + _BootstrapPrep: false + _Container: ${{ parameters.centOSStream9Container }} + _EnablePoison: false + _ExcludeOmniSharpTests: false + _OverrideDistroDisablingSha1: true + _RunOnline: false + Fedora38-Offline: + _BootstrapPrep: false + _Container: ${{ parameters.fedora38Container }} + _EnablePoison: true + _ExcludeOmniSharpTests: false + _OverrideDistroDisablingSha1: false + _RunOnline: false + Ubuntu1804-Offline: + _BootstrapPrep: false + _Container: ${{ parameters.ubuntu1804Container }} + _EnablePoison: false + _ExcludeOmniSharpTests: false + _OverrideDistroDisablingSha1: false + _RunOnline: false + name: Build_Tarball_x64 + pool: + ${{ if eq(variables['System.TeamProject'], 'public') }}: + ${{ parameters.poolPublicAmd64 }} + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + ${{ if in(variables['Build.Reason'], 'PullRequest') }}: + ${{ parameters.poolInternalAmd64PR }} + ${{ else }}: + ${{ parameters.poolInternalAmd64 }} + +- ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}: + - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-build-tarball-pr.yml + parameters: + architecture: arm64 + dependsOn: ${{ parameters.dependsOn }} + installerBuildResourceId: ${{ parameters.installerBuildResourceId }} + matrix: + Debian11-Offline: + _BootstrapPrep: true + _Container: ${{ parameters.debian11Arm64Container }} + _EnablePoison: false + _ExcludeOmniSharpTests: false + _OverrideDistroDisablingSha1: false + _RunOnline: false + name: Build_Tarball_arm64 + pool: ${{ parameters.poolInternalArm64 }} + +- ${{ if ne(variables['Build.Reason'], 'PullRequest') }}: + - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-build-tarball-pr.yml + parameters: + architecture: x64 + # Always attempt to run the bootstrap leg (e.g. even when stage 1 tests fail) in order to get a complete assessment of the build status. + # The bootstrap build will shortcut if the stage 1 build failed. + condition: succeededOrFailed() + dependsOn: Build_Tarball_x64 + excludeSdkContentTests: true + installerBuildResourceId: ${{ parameters.installerBuildResourceId }} + matrix: + Fedora38-Offline: + _PreviousSourceBuildArtifact: Build_Tarball_x64 Fedora38-Offline_Artifacts + _Container: ${{ parameters.fedora38Container }} + _EnablePoison: false + _ExcludeOmniSharpTests: false + _OverrideDistroDisablingSha1: false + _RunOnline: false + name: Build_Tarball_x64_Using_Previous + pool: + ${{ if eq(variables['System.TeamProject'], 'public') }}: + ${{ parameters.poolPublicAmd64 }} + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + ${{ parameters.poolInternalAmd64 }} + usePreviousArtifacts: true diff --git a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml index a4a18425a..65b221f27 100644 --- a/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml +++ b/src/SourceBuild/Arcade/eng/common/templates/job/source-build-run-tarball-build.yml @@ -17,15 +17,21 @@ parameters: ubuntu1804Container: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04 poolInternalAmd64: name: NetCore1ESPool-Svc-Internal - demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 + image: 1es-ubuntu-2004 + os: linux poolInternalAmd64PR: name: NetCore1ESPool-Internal-XL - demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 + image: 1es-ubuntu-2004 + os: linux poolInternalArm64: name: Docker-Linux-Arm-Internal + image: Mariner-2-Docker-ARM64 + os: linux + hostArchitecture: Arm64 poolPublicAmd64: name: NetCore-Public-XL - demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open + image: 1es-ubuntu-2004-open + os: linux jobs: - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-build-tarball.yml @@ -109,7 +115,7 @@ jobs: - template: /src/SourceBuild/Arcade/eng/common/templates/job/source-build-build-tarball.yml parameters: architecture: x64 - # Always attempt to run the bootstrap leg (e.g. even when stage 1 tests fail) in order to get a complete accessment of the build status. + # Always attempt to run the bootstrap leg (e.g. even when stage 1 tests fail) in order to get a complete assessment of the build status. # The bootstrap build will shortcut if the stage 1 build failed. condition: succeededOrFailed() dependsOn: Build_Tarball_x64