From af11d4f253ee5c813bfd4f9d5902772638014572 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 13 Jun 2025 09:08:05 +0800 Subject: [PATCH 01/23] [vs17.8] Update dependencies from dotnet/arcade (#11995) * Update dependencies from https://github.com/dotnet/arcade build 20250610.3 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.25264.2 -> To Version 8.0.0-beta.25310.3 * Update VersionPrefix to 17.8.31 --------- Co-authored-by: dotnet-maestro[bot] Co-authored-by: Gang Wang --- eng/Version.Details.xml | 10 +++++----- eng/Versions.props | 4 ++-- global.json | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 70ef3bdd70d..eb1c16e7128 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -58,9 +58,9 @@ - + https://github.com/dotnet/arcade - 983d15077d88cfed26837e40e8f984fdee5d1715 + 2ce3f8c7b2614c2b19985b669ffcd934bc39ffd1 @@ -77,9 +77,9 @@ dc3d0694a4b31b8e27038431888cd4e8dd5b6cb6 - + https://github.com/dotnet/arcade - 983d15077d88cfed26837e40e8f984fdee5d1715 + 2ce3f8c7b2614c2b19985b669ffcd934bc39ffd1 - \ No newline at end of file + diff --git a/eng/Versions.props b/eng/Versions.props index 8980db64ffa..2e71b3d8ec7 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.8.30 + 17.8.31 release 17.7.0 15.1.0.0 @@ -48,7 +48,7 @@ Otherwise, this version of dotnet will not be installed and the build will error out. --> $([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\global.json')), '"dotnet": "([^"]*)"').Groups.get_Item(1)) 4.2.0-1.22102.8 - 8.0.0-beta.25264.2 + 8.0.0-beta.25310.3 7.0.0 6.0.0 4.8.0-3.23465.5 diff --git a/global.json b/global.json index 8a261f30d42..113f5fc130d 100644 --- a/global.json +++ b/global.json @@ -3,13 +3,13 @@ "allowPrerelease": true }, "tools": { - "dotnet": "8.0.116", + "dotnet": "8.0.117", "vs": { "version": "17.8.0" }, "xcopy-msbuild": "17.8.5" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25264.2" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25310.3" } } From bb7294f72e2779834a7898b8d7f1d8c54eac9845 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 13 Jun 2025 09:08:35 +0800 Subject: [PATCH 02/23] [vs17.10] Update dependencies from dotnet/arcade (#11997) * Update dependencies from https://github.com/dotnet/arcade build 20250610.3 Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.25264.2 -> To Version 8.0.0-beta.25310.3 * Update VersionPrefix to 17.10.32 --------- Co-authored-by: dotnet-maestro[bot] Co-authored-by: Gang Wang --- eng/Version.Details.xml | 14 +++++++------- eng/Versions.props | 6 +++--- global.json | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7d618e936fb..00df41a1a20 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -67,14 +67,14 @@ - + https://github.com/dotnet/arcade - 983d15077d88cfed26837e40e8f984fdee5d1715 + 2ce3f8c7b2614c2b19985b669ffcd934bc39ffd1 - + https://github.com/dotnet/arcade - 983d15077d88cfed26837e40e8f984fdee5d1715 + 2ce3f8c7b2614c2b19985b669ffcd934bc39ffd1 @@ -96,9 +96,9 @@ 919d4dbfb0dffb35a702417e28ceea652d248bc6 - + https://github.com/dotnet/arcade - 983d15077d88cfed26837e40e8f984fdee5d1715 + 2ce3f8c7b2614c2b19985b669ffcd934bc39ffd1 - \ No newline at end of file + diff --git a/eng/Versions.props b/eng/Versions.props index 869b58e4706..05341fec543 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.10.31 + 17.10.32 release 17.8.3 15.1.0.0 @@ -49,7 +49,7 @@ Otherwise, this version of dotnet will not be installed and the build will error out. --> $([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\global.json')), '"dotnet": "([^"]*)"').Groups.get_Item(1)) 4.2.0-1.22102.8 - 8.0.0-beta.25264.2 + 8.0.0-beta.25310.3 7.0.0 6.0.0 4.10.0-3.24175.2 @@ -72,4 +72,4 @@ $(VersionPrefix).$(FileVersion.Split('.')[3]) - \ No newline at end of file + diff --git a/global.json b/global.json index dd530ee261a..c5cf6d0b02a 100644 --- a/global.json +++ b/global.json @@ -10,6 +10,6 @@ "xcopy-msbuild": "17.8.5" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25264.2" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25310.3" } } From 74df0b3f5a40864840fb8d7d597631ffcfd5215a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 2 Jul 2025 08:35:56 +0000 Subject: [PATCH 03/23] [vs17.8] Update dependencies from dotnet/arcade (#12086) * Update dependencies from https://github.com/dotnet/arcade build 20250626.1 Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.25310.3 -> To Version 8.0.0-beta.25326.1 * Update VersionPrefix for 17.8 --------- Co-authored-by: dotnet-maestro[bot] Co-authored-by: Nguyen Huu Linh <43189610+huulinhnguyen-dev@users.noreply.github.com> --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- eng/common/templates-official/job/job.yml | 4 ++++ eng/common/templates/job/job.yml | 4 ++++ global.json | 2 +- 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index eb1c16e7128..21c844f73e6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -58,9 +58,9 @@ - + https://github.com/dotnet/arcade - 2ce3f8c7b2614c2b19985b669ffcd934bc39ffd1 + 6e3320b5eaab29bd1bff1f398c7f4e18ef0ed57d @@ -77,9 +77,9 @@ dc3d0694a4b31b8e27038431888cd4e8dd5b6cb6 - + https://github.com/dotnet/arcade - 2ce3f8c7b2614c2b19985b669ffcd934bc39ffd1 + 6e3320b5eaab29bd1bff1f398c7f4e18ef0ed57d diff --git a/eng/Versions.props b/eng/Versions.props index 2e71b3d8ec7..40ab6fd902d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.8.31 + 17.8.32 release 17.7.0 15.1.0.0 @@ -48,7 +48,7 @@ Otherwise, this version of dotnet will not be installed and the build will error out. --> $([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\global.json')), '"dotnet": "([^"]*)"').Groups.get_Item(1)) 4.2.0-1.22102.8 - 8.0.0-beta.25310.3 + 8.0.0-beta.25326.1 7.0.0 6.0.0 4.8.0-3.23465.5 diff --git a/eng/common/templates-official/job/job.yml b/eng/common/templates-official/job/job.yml index 98ccbd7a9c1..9713e93c84c 100644 --- a/eng/common/templates-official/job/job.yml +++ b/eng/common/templates-official/job/job.yml @@ -135,6 +135,10 @@ jobs: signType: $(_SignType) zipSources: false feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea + ${{ else }}: + ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca env: TeamName: $(_TeamName) MicroBuildOutputFolderOverride: '$(Agent.TempDirectory)' diff --git a/eng/common/templates/job/job.yml b/eng/common/templates/job/job.yml index e295031c098..2856f7de106 100644 --- a/eng/common/templates/job/job.yml +++ b/eng/common/templates/job/job.yml @@ -134,6 +134,10 @@ jobs: signType: $(_SignType) zipSources: false feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea + ${{ else }}: + ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca env: TeamName: $(_TeamName) continueOnError: ${{ parameters.continueOnError }} diff --git a/global.json b/global.json index 113f5fc130d..eecbd72978a 100644 --- a/global.json +++ b/global.json @@ -10,6 +10,6 @@ "xcopy-msbuild": "17.8.5" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25310.3" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25326.1" } } From dbc02fd53b9594bf912231e2955694827ed18884 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 3 Jul 2025 09:19:46 +0800 Subject: [PATCH 04/23] [vs17.10] Update dependencies from dotnet/arcade (#12089) * Update dependencies from https://github.com/dotnet/arcade build 20250626.1 Microsoft.SourceBuild.Intermediate.arcade , Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.XUnitExtensions From Version 8.0.0-beta.25310.3 -> To Version 8.0.0-beta.25326.1 * Update VersionPrefix for vs17.10 --------- Co-authored-by: dotnet-maestro[bot] Co-authored-by: Nguyen Huu Linh <43189610+huulinhnguyen-dev@users.noreply.github.com> --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- eng/common/templates-official/job/job.yml | 4 ++++ eng/common/templates/job/job.yml | 4 ++++ global.json | 2 +- 5 files changed, 17 insertions(+), 9 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 00df41a1a20..4b23a85097b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -67,14 +67,14 @@ - + https://github.com/dotnet/arcade - 2ce3f8c7b2614c2b19985b669ffcd934bc39ffd1 + 6e3320b5eaab29bd1bff1f398c7f4e18ef0ed57d - + https://github.com/dotnet/arcade - 2ce3f8c7b2614c2b19985b669ffcd934bc39ffd1 + 6e3320b5eaab29bd1bff1f398c7f4e18ef0ed57d @@ -96,9 +96,9 @@ 919d4dbfb0dffb35a702417e28ceea652d248bc6 - + https://github.com/dotnet/arcade - 2ce3f8c7b2614c2b19985b669ffcd934bc39ffd1 + 6e3320b5eaab29bd1bff1f398c7f4e18ef0ed57d diff --git a/eng/Versions.props b/eng/Versions.props index 05341fec543..ae76ccc1bd0 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.10.32 + 17.10.33 release 17.8.3 15.1.0.0 @@ -49,7 +49,7 @@ Otherwise, this version of dotnet will not be installed and the build will error out. --> $([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\global.json')), '"dotnet": "([^"]*)"').Groups.get_Item(1)) 4.2.0-1.22102.8 - 8.0.0-beta.25310.3 + 8.0.0-beta.25326.1 7.0.0 6.0.0 4.10.0-3.24175.2 diff --git a/eng/common/templates-official/job/job.yml b/eng/common/templates-official/job/job.yml index 98ccbd7a9c1..9713e93c84c 100644 --- a/eng/common/templates-official/job/job.yml +++ b/eng/common/templates-official/job/job.yml @@ -135,6 +135,10 @@ jobs: signType: $(_SignType) zipSources: false feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea + ${{ else }}: + ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca env: TeamName: $(_TeamName) MicroBuildOutputFolderOverride: '$(Agent.TempDirectory)' diff --git a/eng/common/templates/job/job.yml b/eng/common/templates/job/job.yml index e295031c098..2856f7de106 100644 --- a/eng/common/templates/job/job.yml +++ b/eng/common/templates/job/job.yml @@ -134,6 +134,10 @@ jobs: signType: $(_SignType) zipSources: false feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea + ${{ else }}: + ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca env: TeamName: $(_TeamName) continueOnError: ${{ parameters.continueOnError }} diff --git a/global.json b/global.json index c5cf6d0b02a..cfdfd6becfc 100644 --- a/global.json +++ b/global.json @@ -10,6 +10,6 @@ "xcopy-msbuild": "17.8.5" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25310.3" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25326.1" } } From 9cec38ae1c3ab6cbf54738cc2e1e27872a317d0e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 21 Jul 2025 12:37:46 +0200 Subject: [PATCH 05/23] [vs17.8] Update dependencies from dotnet/arcade (#12200) --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- eng/common/tools.ps1 | 2 +- global.json | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 21c844f73e6..a08f9c3e171 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -58,9 +58,9 @@ - + https://github.com/dotnet/arcade - 6e3320b5eaab29bd1bff1f398c7f4e18ef0ed57d + a73c08ec0de5a6e5e2a8668837df67edecb3a3da @@ -77,9 +77,9 @@ dc3d0694a4b31b8e27038431888cd4e8dd5b6cb6 - + https://github.com/dotnet/arcade - 6e3320b5eaab29bd1bff1f398c7f4e18ef0ed57d + a73c08ec0de5a6e5e2a8668837df67edecb3a3da diff --git a/eng/Versions.props b/eng/Versions.props index 40ab6fd902d..8a11cbae402 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.8.32 + 17.8.33 release 17.7.0 15.1.0.0 @@ -48,7 +48,7 @@ Otherwise, this version of dotnet will not be installed and the build will error out. --> $([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\global.json')), '"dotnet": "([^"]*)"').Groups.get_Item(1)) 4.2.0-1.22102.8 - 8.0.0-beta.25326.1 + 8.0.0-beta.25366.2 7.0.0 6.0.0 4.8.0-3.23465.5 diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 82b2798ba30..bb048ad125a 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -417,7 +417,7 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements = # Locate Visual Studio installation or download x-copy msbuild. $vsInfo = LocateVisualStudio $vsRequirements - if ($vsInfo -ne $null) { + if ($vsInfo -ne $null -and $env:ForceUseXCopyMSBuild -eq $null) { # Ensure vsInstallDir has a trailing slash $vsInstallDir = Join-Path $vsInfo.installationPath "\" $vsMajorVersion = $vsInfo.installationVersion.Split('.')[0] diff --git a/global.json b/global.json index eecbd72978a..d7354b5d38a 100644 --- a/global.json +++ b/global.json @@ -10,6 +10,6 @@ "xcopy-msbuild": "17.8.5" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25326.1" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25366.2" } } From 15234f77a6483703b639123549a36bceebc8f8d2 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 21 Jul 2025 13:39:59 +0200 Subject: [PATCH 06/23] [vs17.10] Update dependencies from dotnet/arcade (#12203) This pull request updates the following dependencies [marker]: <> (Begin:42961865-e7dd-40be-a923-7af2e4664f80) ## From https://github.com/dotnet/arcade - **Subscription**: [42961865-e7dd-40be-a923-7af2e4664f80](https://maestro.dot.net/subscriptions?search=42961865-e7dd-40be-a923-7af2e4664f80) - **Build**: [20250716.2](https://dev.azure.com/dnceng/internal/_build/results?buildId=2751532) - **Date Produced**: July 16, 2025 7:28:41 PM UTC - **Commit**: [a73c08ec0de5a6e5e2a8668837df67edecb3a3da](https://github.com/dotnet/arcade/commit/a73c08ec0de5a6e5e2a8668837df67edecb3a3da) - **Branch**: refs/heads/release/8.0 [DependencyUpdate]: <> (Begin) - **Updates**: - From [8.0.0-beta.25326.1 to 8.0.0-beta.25366.2][1] - Microsoft.SourceBuild.Intermediate.arcade - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.XUnitExtensions [1]: https://github.com/dotnet/arcade/compare/6e3320b5ea...a73c08ec0d [DependencyUpdate]: <> (End) [marker]: <> (End:42961865-e7dd-40be-a923-7af2e4664f80) --------- Co-authored-by: dotnet-maestro[bot] Co-authored-by: YuliiaKovalova <95473390+YuliiaKovalova@users.noreply.github.com> --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- eng/common/tools.ps1 | 2 +- global.json | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4b23a85097b..8f4e7d4b1d8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -67,14 +67,14 @@ - + https://github.com/dotnet/arcade - 6e3320b5eaab29bd1bff1f398c7f4e18ef0ed57d + a73c08ec0de5a6e5e2a8668837df67edecb3a3da - + https://github.com/dotnet/arcade - 6e3320b5eaab29bd1bff1f398c7f4e18ef0ed57d + a73c08ec0de5a6e5e2a8668837df67edecb3a3da @@ -96,9 +96,9 @@ 919d4dbfb0dffb35a702417e28ceea652d248bc6 - + https://github.com/dotnet/arcade - 6e3320b5eaab29bd1bff1f398c7f4e18ef0ed57d + a73c08ec0de5a6e5e2a8668837df67edecb3a3da diff --git a/eng/Versions.props b/eng/Versions.props index ae76ccc1bd0..5ac93b6a704 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.10.33 + 17.10.34 release 17.8.3 15.1.0.0 @@ -49,7 +49,7 @@ Otherwise, this version of dotnet will not be installed and the build will error out. --> $([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\global.json')), '"dotnet": "([^"]*)"').Groups.get_Item(1)) 4.2.0-1.22102.8 - 8.0.0-beta.25326.1 + 8.0.0-beta.25366.2 7.0.0 6.0.0 4.10.0-3.24175.2 diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 82b2798ba30..bb048ad125a 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -417,7 +417,7 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements = # Locate Visual Studio installation or download x-copy msbuild. $vsInfo = LocateVisualStudio $vsRequirements - if ($vsInfo -ne $null) { + if ($vsInfo -ne $null -and $env:ForceUseXCopyMSBuild -eq $null) { # Ensure vsInstallDir has a trailing slash $vsInstallDir = Join-Path $vsInfo.installationPath "\" $vsMajorVersion = $vsInfo.installationVersion.Split('.')[0] diff --git a/global.json b/global.json index cfdfd6becfc..cedb5989439 100644 --- a/global.json +++ b/global.json @@ -10,6 +10,6 @@ "xcopy-msbuild": "17.8.5" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25326.1" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25366.2" } } From a0194b4a44352e26cd9fcbdb97c80a2158d1d3d9 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 4 Aug 2025 09:51:26 +0200 Subject: [PATCH 07/23] [vs17.8] Update dependencies from dotnet/arcade (#12271) --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- eng/common/templates-official/job/job.yml | 10 ++++++---- global.json | 2 +- 4 files changed, 13 insertions(+), 11 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a08f9c3e171..50534f5d7dc 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -58,9 +58,9 @@ - + https://github.com/dotnet/arcade - a73c08ec0de5a6e5e2a8668837df67edecb3a3da + 8dca4f8ae100b102230287f8cc1b75264c9f1a6f @@ -77,9 +77,9 @@ dc3d0694a4b31b8e27038431888cd4e8dd5b6cb6 - + https://github.com/dotnet/arcade - a73c08ec0de5a6e5e2a8668837df67edecb3a3da + 8dca4f8ae100b102230287f8cc1b75264c9f1a6f diff --git a/eng/Versions.props b/eng/Versions.props index 8a11cbae402..2543520da1d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.8.33 + 17.8.34 release 17.7.0 15.1.0.0 @@ -48,7 +48,7 @@ Otherwise, this version of dotnet will not be installed and the build will error out. --> $([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\global.json')), '"dotnet": "([^"]*)"').Groups.get_Item(1)) 4.2.0-1.22102.8 - 8.0.0-beta.25366.2 + 8.0.0-beta.25378.1 7.0.0 6.0.0 4.8.0-3.23465.5 diff --git a/eng/common/templates-official/job/job.yml b/eng/common/templates-official/job/job.yml index 9713e93c84c..b98f6a6505d 100644 --- a/eng/common/templates-official/job/job.yml +++ b/eng/common/templates-official/job/job.yml @@ -21,6 +21,7 @@ parameters: # See schema documentation - https://github.com/dotnet/arcade/blob/master/Documentation/AzureDevOps/TemplateSchema.md artifacts: '' enableMicrobuild: false + microbuildUseESRP: true enablePublishBuildArtifacts: false enablePublishBuildAssets: false enablePublishTestResults: false @@ -135,10 +136,11 @@ jobs: signType: $(_SignType) zipSources: false feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json - ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: - ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea - ${{ else }}: - ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca + ${{ if eq(parameters.microbuildUseESRP, true) }}: + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea + ${{ else }}: + ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca env: TeamName: $(_TeamName) MicroBuildOutputFolderOverride: '$(Agent.TempDirectory)' diff --git a/global.json b/global.json index d7354b5d38a..c861f6a4b62 100644 --- a/global.json +++ b/global.json @@ -10,6 +10,6 @@ "xcopy-msbuild": "17.8.5" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25366.2" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25378.1" } } From cac01d670cd054af080c4b696a8e8261549146e1 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 4 Aug 2025 09:52:23 +0200 Subject: [PATCH 08/23] [vs17.10] Update dependencies from dotnet/arcade (#12274) This pull request updates the following dependencies [marker]: <> (Begin:42961865-e7dd-40be-a923-7af2e4664f80) ## From https://github.com/dotnet/arcade - **Subscription**: [42961865-e7dd-40be-a923-7af2e4664f80](https://maestro.dot.net/subscriptions?search=42961865-e7dd-40be-a923-7af2e4664f80) - **Build**: [20250728.1](https://dev.azure.com/dnceng/internal/_build/results?buildId=2759925) - **Date Produced**: July 28, 2025 7:56:32 PM UTC - **Commit**: [8dca4f8ae100b102230287f8cc1b75264c9f1a6f](https://github.com/dotnet/arcade/commit/8dca4f8ae100b102230287f8cc1b75264c9f1a6f) - **Branch**: [release/8.0](https://github.com/dotnet/arcade/tree/release/8.0) [DependencyUpdate]: <> (Begin) - **Updates**: - From [8.0.0-beta.25366.2 to 8.0.0-beta.25378.1][1] - Microsoft.SourceBuild.Intermediate.arcade - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.XUnitExtensions [1]: https://github.com/dotnet/arcade/compare/a73c08ec0d...8dca4f8ae1 [DependencyUpdate]: <> (End) [marker]: <> (End:42961865-e7dd-40be-a923-7af2e4664f80) --------- Co-authored-by: dotnet-maestro[bot] Co-authored-by: huulinh99 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- eng/common/templates-official/job/job.yml | 10 ++++++---- global.json | 2 +- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8f4e7d4b1d8..6d8e9567efb 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -67,14 +67,14 @@ - + https://github.com/dotnet/arcade - a73c08ec0de5a6e5e2a8668837df67edecb3a3da + 8dca4f8ae100b102230287f8cc1b75264c9f1a6f - + https://github.com/dotnet/arcade - a73c08ec0de5a6e5e2a8668837df67edecb3a3da + 8dca4f8ae100b102230287f8cc1b75264c9f1a6f @@ -96,9 +96,9 @@ 919d4dbfb0dffb35a702417e28ceea652d248bc6 - + https://github.com/dotnet/arcade - a73c08ec0de5a6e5e2a8668837df67edecb3a3da + 8dca4f8ae100b102230287f8cc1b75264c9f1a6f diff --git a/eng/Versions.props b/eng/Versions.props index 5ac93b6a704..3424cc64d13 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.10.34 + 17.10.35 release 17.8.3 15.1.0.0 @@ -49,7 +49,7 @@ Otherwise, this version of dotnet will not be installed and the build will error out. --> $([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\global.json')), '"dotnet": "([^"]*)"').Groups.get_Item(1)) 4.2.0-1.22102.8 - 8.0.0-beta.25366.2 + 8.0.0-beta.25378.1 7.0.0 6.0.0 4.10.0-3.24175.2 diff --git a/eng/common/templates-official/job/job.yml b/eng/common/templates-official/job/job.yml index 9713e93c84c..b98f6a6505d 100644 --- a/eng/common/templates-official/job/job.yml +++ b/eng/common/templates-official/job/job.yml @@ -21,6 +21,7 @@ parameters: # See schema documentation - https://github.com/dotnet/arcade/blob/master/Documentation/AzureDevOps/TemplateSchema.md artifacts: '' enableMicrobuild: false + microbuildUseESRP: true enablePublishBuildArtifacts: false enablePublishBuildAssets: false enablePublishTestResults: false @@ -135,10 +136,11 @@ jobs: signType: $(_SignType) zipSources: false feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json - ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: - ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea - ${{ else }}: - ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca + ${{ if eq(parameters.microbuildUseESRP, true) }}: + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea + ${{ else }}: + ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca env: TeamName: $(_TeamName) MicroBuildOutputFolderOverride: '$(Agent.TempDirectory)' diff --git a/global.json b/global.json index cedb5989439..2560f8fe7e1 100644 --- a/global.json +++ b/global.json @@ -10,6 +10,6 @@ "xcopy-msbuild": "17.8.5" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25366.2" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25378.1" } } From fe4b4c2c710f9ffdc4db980d1a2a4cb62fdd3c67 Mon Sep 17 00:00:00 2001 From: Gang Wang Date: Thu, 7 Aug 2025 08:35:57 +0000 Subject: [PATCH 09/23] [vs17.8] Recover bootstrap and corresponding disabled tests (#12294) --- .vsts-dotnet-ci.yml | 2 + eng/Versions.props | 2 +- eng/cibuild_bootstrapped_msbuild.ps1 | 58 ++++++++++++++++++- eng/cibuild_bootstrapped_msbuild.sh | 8 ++- src/Build.UnitTests/BackEnd/MSBuild_Tests.cs | 2 +- .../EscapingInProjects_Tests.cs | 16 ++--- src/Tasks.UnitTests/MSBuild_Tests.cs | 2 +- .../GenerateResourceOutOfProc_Tests.cs | 4 +- .../GenerateResource_Tests.cs | 4 +- 9 files changed, 81 insertions(+), 17 deletions(-) diff --git a/.vsts-dotnet-ci.yml b/.vsts-dotnet-ci.yml index b999b6fd978..000fcd40c37 100644 --- a/.vsts-dotnet-ci.yml +++ b/.vsts-dotnet-ci.yml @@ -49,6 +49,8 @@ jobs: displayName: cibuild_bootstrapped_msbuild.cmd inputs: filename: 'eng/cibuild_bootstrapped_msbuild.cmd' + env: + ForceUseXCopyMSBuild: 1 - task: PublishTestResults@2 displayName: Publish .NET Framework Test Results inputs: diff --git a/eng/Versions.props b/eng/Versions.props index 2543520da1d..d2b676dac86 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.8.34 + 17.8.35 release 17.7.0 15.1.0.0 diff --git a/eng/cibuild_bootstrapped_msbuild.ps1 b/eng/cibuild_bootstrapped_msbuild.ps1 index 2c4bb6601a9..46d471d042b 100644 --- a/eng/cibuild_bootstrapped_msbuild.ps1 +++ b/eng/cibuild_bootstrapped_msbuild.ps1 @@ -64,11 +64,67 @@ try { if ($buildStage1) { - & $PSScriptRoot\Common\Build.ps1 -restore -build -test -ci -msbuildEngine $msbuildEngine /p:CreateBootstrap=true @properties + & $PSScriptRoot\Common\Build.ps1 -restore -build -ci -msbuildEngine $msbuildEngine /p:CreateBootstrap=true @properties } KillProcessesFromRepo + $bootstrapRoot = Join-Path $Stage1BinDir "bootstrap" + + # we need to do this to guarantee we have/know where dotnet.exe is installed + $dotnetToolPath = InitializeDotNetCli $true + $dotnetExePath = Join-Path $dotnetToolPath "dotnet.exe" + + if ($msbuildEngine -eq 'vs') + { + $buildToolPath = Join-Path $bootstrapRoot "net472\MSBuild\Current\Bin\MSBuild.exe" + $buildToolCommand = ""; + $buildToolFramework = "net472" + + if ($configuration -eq "Debug-MONO" -or $configuration -eq "Release-MONO") + { + # Copy MSBuild.dll to MSBuild.exe so we can run it without a host + $sourceDll = Join-Path $bootstrapRoot "net472\MSBuild\Current\Bin\MSBuild.dll" + Copy-Item -Path $sourceDll -Destination $msbuildToUse + } + } + else + { + $buildToolPath = $dotnetExePath + $buildToolCommand = Join-Path $bootstrapRoot "net8.0\MSBuild\MSBuild.dll" + $buildToolFramework = "net8.0" + } + + # Use separate artifacts folder for stage 2 + # $env:ArtifactsDir = Join-Path $ArtifactsDir "2\" + + & $dotnetExePath build-server shutdown + + if ($buildStage1) + { + if (Test-Path $Stage1Dir) + { + Remove-Item -Force -Recurse $Stage1Dir + } + + Move-Item -Path $ArtifactsDir -Destination $Stage1Dir -Force + } + + $buildTool = @{ Path = $buildToolPath; Command = $buildToolCommand; Tool = $msbuildEngine; Framework = $buildToolFramework } + $global:_BuildTool = $buildTool + + # Ensure that debug bits fail fast, rather than hanging waiting for a debugger attach. + $env:MSBUILDDONOTLAUNCHDEBUGGER="true" + + # Opt into performance logging. https://github.com/dotnet/msbuild/issues/5900 + $env:DOTNET_PERFLOG_DIR=$PerfLogDir + + # When using bootstrapped MSBuild: + # - Turn off node reuse (so that bootstrapped MSBuild processes don't stay running and lock files) + # - Do run tests + # - Don't try to create a bootstrap deployment + & $PSScriptRoot\Common\Build.ps1 -restore -build -test -ci /p:CreateBootstrap=false /nr:false @properties + exit $lastExitCode } catch { diff --git a/eng/cibuild_bootstrapped_msbuild.sh b/eng/cibuild_bootstrapped_msbuild.sh index 9d4b441ed3c..ceb2b343329 100755 --- a/eng/cibuild_bootstrapped_msbuild.sh +++ b/eng/cibuild_bootstrapped_msbuild.sh @@ -55,7 +55,7 @@ fi if [[ $build_stage1 == true ]]; then - /bin/bash "$ScriptRoot/common/build.sh" --restore --build --ci --test --configuration $configuration /p:CreateBootstrap=false $properties $extra_properties || exit $? + /bin/bash "$ScriptRoot/common/build.sh" --restore --build --ci --configuration $configuration /p:CreateBootstrap=true $properties $extra_properties || exit $? fi bootstrapRoot="$Stage1Dir/bin/bootstrap" @@ -93,3 +93,9 @@ export DOTNET_PERFLOG_DIR=$PerfLogDir # Prior to 3.0, the Csc task uses this environment variable to decide whether to run # a CLI host or directly execute the compiler. export DOTNET_HOST_PATH="$_InitializeDotNetCli/dotnet" + +# When using bootstrapped MSBuild: +# - Turn off node reuse (so that bootstrapped MSBuild processes don't stay running and lock files) +# - Do run tests +# - Don't try to create a bootstrap deployment +. "$ScriptRoot/common/build.sh" --restore --build --test --ci --nodereuse false --configuration $configuration /p:CreateBootstrap=false $properties $extra_properties diff --git a/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs b/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs index 96e6ec8f609..9b0a1eae9bb 100644 --- a/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs +++ b/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs @@ -412,7 +412,7 @@ public void LogErrorWhenBuildingVCProj() /// However, it's a situation where the project author doesn't have control over the /// property value and so he can't escape it himself. /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void PropertyOverridesContainSemicolon() { ObjectModelHelpers.DeleteTempProjectDirectory(); diff --git a/src/Build.UnitTests/EscapingInProjects_Tests.cs b/src/Build.UnitTests/EscapingInProjects_Tests.cs index cd7406fa9e3..3df737c387a 100644 --- a/src/Build.UnitTests/EscapingInProjects_Tests.cs +++ b/src/Build.UnitTests/EscapingInProjects_Tests.cs @@ -957,7 +957,7 @@ public FullProjectsUsingMicrosoftCommonTargets(ITestOutputHelper output) /// /// ESCAPING: Escaping in conditionals is broken. /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void SemicolonInConfiguration() { ObjectModelHelpers.DeleteTempProjectDirectory(); @@ -1017,7 +1017,7 @@ public class Class1 /// /// ESCAPING: Escaping in conditionals is broken. /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void SemicolonInConfiguration_UsingTaskHost() { string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC"); @@ -1087,7 +1087,7 @@ public class Class1 /// /// ESCAPING: CopyBuildTarget target fails if the output assembly name contains a semicolon or single-quote /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void SemicolonInAssemblyName() { ObjectModelHelpers.DeleteTempProjectDirectory(); @@ -1142,7 +1142,7 @@ public class Class1 /// /// ESCAPING: CopyBuildTarget target fails if the output assembly name contains a semicolon or single-quote /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void SemicolonInAssemblyName_UsingTaskHost() { string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC"); @@ -1207,7 +1207,7 @@ public class Class1 /// /// ESCAPING: Conversion Issue: Properties with $(xxx) as literals are not being converted correctly /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void DollarSignInAssemblyName() { ObjectModelHelpers.DeleteTempProjectDirectory(); @@ -1262,7 +1262,7 @@ public class Class1 /// /// ESCAPING: Conversion Issue: Properties with $(xxx) as literals are not being converted correctly /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void DollarSignInAssemblyName_UsingTaskHost() { string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC"); @@ -1327,7 +1327,7 @@ public class Class1 /// /// This is the case when one of the source code files in the project has a filename containing a semicolon. /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void SemicolonInSourceCodeFilename() { ObjectModelHelpers.DeleteTempProjectDirectory(); @@ -1382,7 +1382,7 @@ public class Class1 /// /// This is the case when one of the source code files in the project has a filename containing a semicolon. /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void SemicolonInSourceCodeFilename_UsingTaskHost() { string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC"); diff --git a/src/Tasks.UnitTests/MSBuild_Tests.cs b/src/Tasks.UnitTests/MSBuild_Tests.cs index 78e99d99f1e..f8dcf89bbfe 100644 --- a/src/Tasks.UnitTests/MSBuild_Tests.cs +++ b/src/Tasks.UnitTests/MSBuild_Tests.cs @@ -389,7 +389,7 @@ public void LogErrorWhenBuildingVCProj() #if RUNTIME_TYPE_NETCORE [Fact(Skip = "https://github.com/dotnet/msbuild/issues/259")] #else - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] #endif public void PropertyOverridesContainSemicolon() { diff --git a/src/Tasks.UnitTests/ResourceHandling/GenerateResourceOutOfProc_Tests.cs b/src/Tasks.UnitTests/ResourceHandling/GenerateResourceOutOfProc_Tests.cs index 6ccb9f0854f..4172d013c78 100644 --- a/src/Tasks.UnitTests/ResourceHandling/GenerateResourceOutOfProc_Tests.cs +++ b/src/Tasks.UnitTests/ResourceHandling/GenerateResourceOutOfProc_Tests.cs @@ -2566,7 +2566,7 @@ public References(ITestOutputHelper output) _output = output; } - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] // FIXME: mono: looks for csc.exe // https://github.com/dotnet/msbuild/issues/677 public void DontLockP2PReferenceWhenResolvingSystemTypes() @@ -2743,7 +2743,7 @@ public class Class1 /// Assembly.LoadFile on that relative path, which fails (LoadFile requires an /// absolute path). The fix was to use Assembly.LoadFrom instead. /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] // FIXME: mono: looks for csc.exe // https://github.com/dotnet/msbuild/issues/677 public void ReferencedAssemblySpecifiedUsingRelativePath() diff --git a/src/Tasks.UnitTests/ResourceHandling/GenerateResource_Tests.cs b/src/Tasks.UnitTests/ResourceHandling/GenerateResource_Tests.cs index 68a707586e2..f704ef169a1 100644 --- a/src/Tasks.UnitTests/ResourceHandling/GenerateResource_Tests.cs +++ b/src/Tasks.UnitTests/ResourceHandling/GenerateResource_Tests.cs @@ -3010,7 +3010,7 @@ public References(ITestOutputHelper output) _output = output; } - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [WindowsFullFrameworkOnlyFact(additionalMessage: "Linked resources not supported on Core: https://github.com/dotnet/msbuild/issues/4094")] public void DontLockP2PReferenceWhenResolvingSystemTypes() { // This WriteLine is a hack. On a slow machine, the Tasks unittest fails because remoting @@ -3186,7 +3186,7 @@ public class Class1 /// which fails (LoadFile requires an absolute path). The fix was to use /// Assembly.LoadFrom instead. /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [WindowsFullFrameworkOnlyFact(additionalMessage: "Linked resources not supported on Core: https://github.com/dotnet/msbuild/issues/4094")] public void ReferencedAssemblySpecifiedUsingRelativePath() { // This WriteLine is a hack. On a slow machine, the Tasks unittest fails because remoting From b8adc522ee7d5037466b4a6a79cef640357b5ace Mon Sep 17 00:00:00 2001 From: Gang Wang Date: Thu, 7 Aug 2025 08:36:03 +0000 Subject: [PATCH 10/23] [vs17.10] Recover bootstrap and corresponding disabled tests (#12293) --- .vsts-dotnet-ci.yml | 2 + eng/Versions.props | 2 +- eng/cibuild_bootstrapped_msbuild.ps1 | 56 ++++++++++++++++++- eng/cibuild_bootstrapped_msbuild.sh | 14 ++++- src/Build.UnitTests/BackEnd/MSBuild_Tests.cs | 2 +- .../EscapingInProjects_Tests.cs | 16 +++--- src/Tasks.UnitTests/MSBuild_Tests.cs | 2 +- .../GenerateResourceOutOfProc_Tests.cs | 4 +- .../GenerateResource_Tests.cs | 4 +- 9 files changed, 85 insertions(+), 17 deletions(-) diff --git a/.vsts-dotnet-ci.yml b/.vsts-dotnet-ci.yml index ee746763650..87e34ce0927 100644 --- a/.vsts-dotnet-ci.yml +++ b/.vsts-dotnet-ci.yml @@ -89,6 +89,8 @@ jobs: inputs: filename: 'eng/cibuild_bootstrapped_msbuild.cmd' arguments: -onlyDocChanged $(onlyDocChanged) + env: + ForceUseXCopyMSBuild: 1 - task: PublishTestResults@2 displayName: Publish .NET Framework Test Results inputs: diff --git a/eng/Versions.props b/eng/Versions.props index 3424cc64d13..09f2d992bf8 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.10.35 + 17.10.36 release 17.8.3 15.1.0.0 diff --git a/eng/cibuild_bootstrapped_msbuild.ps1 b/eng/cibuild_bootstrapped_msbuild.ps1 index d587daad534..71cbf493110 100644 --- a/eng/cibuild_bootstrapped_msbuild.ps1 +++ b/eng/cibuild_bootstrapped_msbuild.ps1 @@ -65,11 +65,65 @@ try { if ($buildStage1) { - & $PSScriptRoot\Common\Build.ps1 -restore -build -test -ci -msbuildEngine $msbuildEngine /p:CreateBootstrap=true @properties + & $PSScriptRoot\Common\Build.ps1 -restore -build -ci -msbuildEngine $msbuildEngine /p:CreateBootstrap=true @properties } KillProcessesFromRepo + $bootstrapRoot = Join-Path $Stage1BinDir "bootstrap" + + # we need to do this to guarantee we have/know where dotnet.exe is installed + $dotnetToolPath = InitializeDotNetCli $true + $dotnetExePath = Join-Path $dotnetToolPath "dotnet.exe" + + if ($msbuildEngine -eq 'vs') + { + $buildToolPath = Join-Path $bootstrapRoot "net472\MSBuild\Current\Bin\MSBuild.exe" + $buildToolCommand = ""; + $buildToolFramework = "net472" + } + else + { + $buildToolPath = $dotnetExePath + $buildToolCommand = Join-Path $bootstrapRoot "net8.0\MSBuild\MSBuild.dll" + $buildToolFramework = "net8.0" + } + + # Use separate artifacts folder for stage 2 + # $env:ArtifactsDir = Join-Path $ArtifactsDir "2\" + + & $dotnetExePath build-server shutdown + + if ($buildStage1) + { + if (Test-Path $Stage1Dir) + { + Remove-Item -Force -Recurse $Stage1Dir + } + + Move-Item -Path $ArtifactsDir -Destination $Stage1Dir -Force + } + + $buildTool = @{ Path = $buildToolPath; Command = $buildToolCommand; Tool = $msbuildEngine; Framework = $buildToolFramework } + $global:_BuildTool = $buildTool + + # Ensure that debug bits fail fast, rather than hanging waiting for a debugger attach. + $env:MSBUILDDONOTLAUNCHDEBUGGER="true" + + # Opt into performance logging. https://github.com/dotnet/msbuild/issues/5900 + $env:DOTNET_PERFLOG_DIR=$PerfLogDir + + # When using bootstrapped MSBuild: + # - Turn off node reuse (so that bootstrapped MSBuild processes don't stay running and lock files) + # - Do run tests + # - Don't try to create a bootstrap deployment + if ($onlyDocChanged) { + & $PSScriptRoot\Common\Build.ps1 -restore -build -ci /p:CreateBootstrap=false /nr:false @properties + } + else { + & $PSScriptRoot\Common\Build.ps1 -restore -build -test -ci /p:CreateBootstrap=false /nr:false @properties + } + exit $lastExitCode } catch { diff --git a/eng/cibuild_bootstrapped_msbuild.sh b/eng/cibuild_bootstrapped_msbuild.sh index 37683f4fb1a..06d4ba46e21 100755 --- a/eng/cibuild_bootstrapped_msbuild.sh +++ b/eng/cibuild_bootstrapped_msbuild.sh @@ -51,7 +51,7 @@ InitializeDotNetCli true if [[ $build_stage1 == true ]]; then - /bin/bash "$ScriptRoot/common/build.sh" --restore --build --ci --test --configuration $configuration /p:CreateBootstrap=false $properties $extra_properties || exit $? + /bin/bash "$ScriptRoot/common/build.sh" --restore --build --ci --configuration $configuration /p:CreateBootstrap=true $properties $extra_properties || exit $? fi bootstrapRoot="$Stage1Dir/bin/bootstrap" @@ -77,3 +77,15 @@ export DOTNET_PERFLOG_DIR=$PerfLogDir # Prior to 3.0, the Csc task uses this environment variable to decide whether to run # a CLI host or directly execute the compiler. export DOTNET_HOST_PATH="$_InitializeDotNetCli/dotnet" + +# When using bootstrapped MSBuild: +# - Turn off node reuse (so that bootstrapped MSBuild processes don't stay running and lock files) +# - Do run tests +# - Don't try to create a bootstrap deployment +if [ $onlyDocChanged = 0 ] +then + . "$ScriptRoot/common/build.sh" --restore --build --test --ci --nodereuse false --configuration $configuration /p:CreateBootstrap=false $properties $extra_properties + +else + . "$ScriptRoot/common/build.sh" --restore --build --ci --nodereuse false --configuration $configuration /p:CreateBootstrap=false $properties $extra_properties +fi diff --git a/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs b/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs index 16a963128d0..003bf735988 100644 --- a/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs +++ b/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs @@ -412,7 +412,7 @@ public void LogErrorWhenBuildingVCProj() /// However, it's a situation where the project author doesn't have control over the /// property value and so he can't escape it himself. /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void PropertyOverridesContainSemicolon() { ObjectModelHelpers.DeleteTempProjectDirectory(); diff --git a/src/Build.UnitTests/EscapingInProjects_Tests.cs b/src/Build.UnitTests/EscapingInProjects_Tests.cs index cd7406fa9e3..3df737c387a 100644 --- a/src/Build.UnitTests/EscapingInProjects_Tests.cs +++ b/src/Build.UnitTests/EscapingInProjects_Tests.cs @@ -957,7 +957,7 @@ public FullProjectsUsingMicrosoftCommonTargets(ITestOutputHelper output) /// /// ESCAPING: Escaping in conditionals is broken. /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void SemicolonInConfiguration() { ObjectModelHelpers.DeleteTempProjectDirectory(); @@ -1017,7 +1017,7 @@ public class Class1 /// /// ESCAPING: Escaping in conditionals is broken. /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void SemicolonInConfiguration_UsingTaskHost() { string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC"); @@ -1087,7 +1087,7 @@ public class Class1 /// /// ESCAPING: CopyBuildTarget target fails if the output assembly name contains a semicolon or single-quote /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void SemicolonInAssemblyName() { ObjectModelHelpers.DeleteTempProjectDirectory(); @@ -1142,7 +1142,7 @@ public class Class1 /// /// ESCAPING: CopyBuildTarget target fails if the output assembly name contains a semicolon or single-quote /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void SemicolonInAssemblyName_UsingTaskHost() { string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC"); @@ -1207,7 +1207,7 @@ public class Class1 /// /// ESCAPING: Conversion Issue: Properties with $(xxx) as literals are not being converted correctly /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void DollarSignInAssemblyName() { ObjectModelHelpers.DeleteTempProjectDirectory(); @@ -1262,7 +1262,7 @@ public class Class1 /// /// ESCAPING: Conversion Issue: Properties with $(xxx) as literals are not being converted correctly /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void DollarSignInAssemblyName_UsingTaskHost() { string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC"); @@ -1327,7 +1327,7 @@ public class Class1 /// /// This is the case when one of the source code files in the project has a filename containing a semicolon. /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void SemicolonInSourceCodeFilename() { ObjectModelHelpers.DeleteTempProjectDirectory(); @@ -1382,7 +1382,7 @@ public class Class1 /// /// This is the case when one of the source code files in the project has a filename containing a semicolon. /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void SemicolonInSourceCodeFilename_UsingTaskHost() { string originalOverrideTaskHostVariable = Environment.GetEnvironmentVariable("MSBUILDFORCEALLTASKSOUTOFPROC"); diff --git a/src/Tasks.UnitTests/MSBuild_Tests.cs b/src/Tasks.UnitTests/MSBuild_Tests.cs index 4e4c0a0ef81..ad1ab81787a 100644 --- a/src/Tasks.UnitTests/MSBuild_Tests.cs +++ b/src/Tasks.UnitTests/MSBuild_Tests.cs @@ -389,7 +389,7 @@ public void LogErrorWhenBuildingVCProj() #if RUNTIME_TYPE_NETCORE [Fact(Skip = "https://github.com/dotnet/msbuild/issues/259")] #else - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] #endif public void PropertyOverridesContainSemicolon() { diff --git a/src/Tasks.UnitTests/ResourceHandling/GenerateResourceOutOfProc_Tests.cs b/src/Tasks.UnitTests/ResourceHandling/GenerateResourceOutOfProc_Tests.cs index 8f5a1bcd6bc..472d732a973 100644 --- a/src/Tasks.UnitTests/ResourceHandling/GenerateResourceOutOfProc_Tests.cs +++ b/src/Tasks.UnitTests/ResourceHandling/GenerateResourceOutOfProc_Tests.cs @@ -2566,7 +2566,7 @@ public References(ITestOutputHelper output) _output = output; } - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void DontLockP2PReferenceWhenResolvingSystemTypes() { // This WriteLine is a hack. On a slow machine, the Tasks unittest fails because remoting @@ -2741,7 +2741,7 @@ public class Class1 /// Assembly.LoadFile on that relative path, which fails (LoadFile requires an /// absolute path). The fix was to use Assembly.LoadFrom instead. /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [Fact] public void ReferencedAssemblySpecifiedUsingRelativePath() { // This WriteLine is a hack. On a slow machine, the Tasks unittest fails because remoting diff --git a/src/Tasks.UnitTests/ResourceHandling/GenerateResource_Tests.cs b/src/Tasks.UnitTests/ResourceHandling/GenerateResource_Tests.cs index ba93bb422e4..a38fd0f4bbd 100644 --- a/src/Tasks.UnitTests/ResourceHandling/GenerateResource_Tests.cs +++ b/src/Tasks.UnitTests/ResourceHandling/GenerateResource_Tests.cs @@ -3064,7 +3064,7 @@ public References(ITestOutputHelper output) _output = output; } - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [WindowsFullFrameworkOnlyFact(additionalMessage: "Linked resources not supported on Core: https://github.com/dotnet/msbuild/issues/4094")] public void DontLockP2PReferenceWhenResolvingSystemTypes() { // This WriteLine is a hack. On a slow machine, the Tasks unittest fails because remoting @@ -3240,7 +3240,7 @@ public class Class1 /// which fails (LoadFile requires an absolute path). The fix was to use /// Assembly.LoadFrom instead. /// - [Fact(Skip = "https://github.com/dotnet/msbuild/issues/11888")] + [WindowsFullFrameworkOnlyFact(additionalMessage: "Linked resources not supported on Core: https://github.com/dotnet/msbuild/issues/4094")] public void ReferencedAssemblySpecifiedUsingRelativePath() { // This WriteLine is a hack. On a slow machine, the Tasks unittest fails because remoting From da89d7e734ee4174f5a95703b2cdd4ea592f4f69 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 8 Aug 2025 12:11:24 +0200 Subject: [PATCH 11/23] [automated] Merge branch 'vs17.8' => 'vs17.10' (#12299) I detected changes in the vs17.8 branch which have not been merged yet to vs17.10. I'm a robot and am configured to help you automatically keep vs17.10 up to date, so I've opened this PR. This PR merges commits made on vs17.8 by the following committers: * @GangWang01 * @dotnet-maestro[bot] ## Instructions for merging from UI This PR will not be auto-merged. When pull request checks pass, complete this PR by creating a merge commit, *not* a squash or rebase commit. merge button instructions If this repo does not allow creating merge commits from the GitHub UI, use command line instructions. ## Instructions for merging via command line Run these commands to merge this pull request from the command line. ``` sh git fetch git checkout vs17.8 git pull --ff-only git checkout vs17.10 git pull --ff-only git merge --no-ff vs17.8 # If there are merge conflicts, resolve them and then run git merge --continue to complete the merge # Pushing the changes to the PR branch will re-trigger PR validation. git push https://github.com/dotnet/msbuild HEAD:merge/vs17.8-to-vs17.10 ```
or if you are using SSH ``` git push git@github.com:dotnet/msbuild HEAD:merge/vs17.8-to-vs17.10 ```
After PR checks are complete push the branch ``` git push ``` ## Instructions for resolving conflicts :warning: If there are merge conflicts, you will need to resolve them manually before merging. You can do this [using GitHub][resolve-github] or using the [command line][resolve-cli]. [resolve-github]: https://help.github.com/articles/resolving-a-merge-conflict-on-github/ [resolve-cli]: https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/ ## Instructions for updating this pull request Contributors to this repo have permission update this pull request by pushing to the branch 'merge/vs17.8-to-vs17.10'. This can be done to resolve conflicts or make other changes to this pull request before it is merged. The provided examples assume that the remote is named 'origin'. If you have a different remote name, please replace 'origin' with the name of your remote. ``` git fetch git checkout -b merge/vs17.8-to-vs17.10 origin/vs17.10 git pull https://github.com/dotnet/msbuild merge/vs17.8-to-vs17.10 (make changes) git commit -m "Updated PR with my changes" git push https://github.com/dotnet/msbuild HEAD:merge/vs17.8-to-vs17.10 ```
or if you are using SSH ``` git fetch git checkout -b merge/vs17.8-to-vs17.10 origin/vs17.10 git pull git@github.com:dotnet/msbuild merge/vs17.8-to-vs17.10 (make changes) git commit -m "Updated PR with my changes" git push git@github.com:dotnet/msbuild HEAD:merge/vs17.8-to-vs17.10 ```
Contact .NET Core Engineering (dotnet/dnceng) if you have questions or issues. Also, if this PR was generated incorrectly, help us fix it. See https://github.com/dotnet/arcade/blob/main/.github/workflows/scripts/inter-branch-merge.ps1. --------- Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] Co-authored-by: Gang Wang Co-authored-by: Nguyen Huu Linh <43189610+huulinhnguyen-dev@users.noreply.github.com> --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index 09f2d992bf8..addcb73a43d 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.10.36 + 17.10.37 release 17.8.3 15.1.0.0 From 03e28d165c0959ee43aa91c2612776b011522a70 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 11 Aug 2025 11:07:45 +0200 Subject: [PATCH 12/23] [vs17.8] Update dependencies from dotnet/arcade (#12308) This pull request updates the following dependencies [marker]: <> (Begin:5f9c9524-456b-43ca-a978-063daaf53c38) ## From https://github.com/dotnet/arcade - **Subscription**: [5f9c9524-456b-43ca-a978-063daaf53c38](https://maestro.dot.net/subscriptions?search=5f9c9524-456b-43ca-a978-063daaf53c38) - **Build**: [20250807.1](https://dev.azure.com/dnceng/internal/_build/results?buildId=2767075) - **Date Produced**: August 7, 2025 4:53:08 PM UTC - **Commit**: [a5ec3fab69ac440afe6764b2e046af6e8fcafa74](https://github.com/dotnet/arcade/commit/a5ec3fab69ac440afe6764b2e046af6e8fcafa74) - **Branch**: [release/8.0](https://github.com/dotnet/arcade/tree/release/8.0) [DependencyUpdate]: <> (Begin) - **Updates**: - From [8.0.0-beta.25378.1 to 8.0.0-beta.25407.1][1] - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.XUnitExtensions [1]: https://github.com/dotnet/arcade/compare/8dca4f8ae1...a5ec3fab69 [DependencyUpdate]: <> (End) - **Updates to .NET SDKs:** - Updates tools.dotnet to 8.0.119 [marker]: <> (End:5f9c9524-456b-43ca-a978-063daaf53c38) --------- Co-authored-by: dotnet-maestro[bot] Co-authored-by: huulinh99 --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- global.json | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 50534f5d7dc..a88c19eeb1f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -58,9 +58,9 @@ - + https://github.com/dotnet/arcade - 8dca4f8ae100b102230287f8cc1b75264c9f1a6f + a5ec3fab69ac440afe6764b2e046af6e8fcafa74 @@ -77,9 +77,9 @@ dc3d0694a4b31b8e27038431888cd4e8dd5b6cb6 - + https://github.com/dotnet/arcade - 8dca4f8ae100b102230287f8cc1b75264c9f1a6f + a5ec3fab69ac440afe6764b2e046af6e8fcafa74 diff --git a/eng/Versions.props b/eng/Versions.props index d2b676dac86..3644184ad57 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.8.35 + 17.8.36 release 17.7.0 15.1.0.0 @@ -48,7 +48,7 @@ Otherwise, this version of dotnet will not be installed and the build will error out. --> $([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\global.json')), '"dotnet": "([^"]*)"').Groups.get_Item(1)) 4.2.0-1.22102.8 - 8.0.0-beta.25378.1 + 8.0.0-beta.25407.1 7.0.0 6.0.0 4.8.0-3.23465.5 diff --git a/global.json b/global.json index c861f6a4b62..a20ad1f06e1 100644 --- a/global.json +++ b/global.json @@ -3,13 +3,13 @@ "allowPrerelease": true }, "tools": { - "dotnet": "8.0.117", + "dotnet": "8.0.119", "vs": { "version": "17.8.0" }, "xcopy-msbuild": "17.8.5" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25378.1" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25407.1" } } From 02960019913e12a2a104a41249c9f8df2c2aa20d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 11 Aug 2025 11:08:08 +0200 Subject: [PATCH 13/23] [vs17.10] Update dependencies from dotnet/arcade (#12310) This pull request updates the following dependencies [marker]: <> (Begin:42961865-e7dd-40be-a923-7af2e4664f80) ## From https://github.com/dotnet/arcade - **Subscription**: [42961865-e7dd-40be-a923-7af2e4664f80](https://maestro.dot.net/subscriptions?search=42961865-e7dd-40be-a923-7af2e4664f80) - **Build**: [20250807.1](https://dev.azure.com/dnceng/internal/_build/results?buildId=2767075) - **Date Produced**: August 7, 2025 4:53:08 PM UTC - **Commit**: [a5ec3fab69ac440afe6764b2e046af6e8fcafa74](https://github.com/dotnet/arcade/commit/a5ec3fab69ac440afe6764b2e046af6e8fcafa74) - **Branch**: [release/8.0](https://github.com/dotnet/arcade/tree/release/8.0) [DependencyUpdate]: <> (Begin) - **Updates**: - From [8.0.0-beta.25378.1 to 8.0.0-beta.25407.1][1] - Microsoft.SourceBuild.Intermediate.arcade - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.XUnitExtensions [1]: https://github.com/dotnet/arcade/compare/8dca4f8ae1...a5ec3fab69 [DependencyUpdate]: <> (End) [marker]: <> (End:42961865-e7dd-40be-a923-7af2e4664f80) --------- Co-authored-by: dotnet-maestro[bot] Co-authored-by: huulinh99 --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- global.json | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 6d8e9567efb..d8f0c910253 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -67,14 +67,14 @@ - + https://github.com/dotnet/arcade - 8dca4f8ae100b102230287f8cc1b75264c9f1a6f + a5ec3fab69ac440afe6764b2e046af6e8fcafa74 - + https://github.com/dotnet/arcade - 8dca4f8ae100b102230287f8cc1b75264c9f1a6f + a5ec3fab69ac440afe6764b2e046af6e8fcafa74 @@ -96,9 +96,9 @@ 919d4dbfb0dffb35a702417e28ceea652d248bc6 - + https://github.com/dotnet/arcade - 8dca4f8ae100b102230287f8cc1b75264c9f1a6f + a5ec3fab69ac440afe6764b2e046af6e8fcafa74 diff --git a/eng/Versions.props b/eng/Versions.props index addcb73a43d..ac8fb854384 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.10.37 + 17.10.38 release 17.8.3 15.1.0.0 @@ -49,7 +49,7 @@ Otherwise, this version of dotnet will not be installed and the build will error out. --> $([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\global.json')), '"dotnet": "([^"]*)"').Groups.get_Item(1)) 4.2.0-1.22102.8 - 8.0.0-beta.25378.1 + 8.0.0-beta.25407.1 7.0.0 6.0.0 4.10.0-3.24175.2 diff --git a/global.json b/global.json index 2560f8fe7e1..c2d90882763 100644 --- a/global.json +++ b/global.json @@ -10,6 +10,6 @@ "xcopy-msbuild": "17.8.5" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25378.1" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25407.1" } } From c765bdccd66f924b3244a57ec0df32abe3a11ef0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 18 Aug 2025 14:46:48 +0200 Subject: [PATCH 14/23] [automated] Merge branch 'vs17.8' => 'vs17.10' (#12317) I detected changes in the vs17.8 branch which have not been merged yet to vs17.10. I'm a robot and am configured to help you automatically keep vs17.10 up to date, so I've opened this PR. This PR merges commits made on vs17.8 by the following committers: * @dotnet-maestro[bot] * @GangWang01 ## Instructions for merging from UI This PR will not be auto-merged. When pull request checks pass, complete this PR by creating a merge commit, *not* a squash or rebase commit. merge button instructions If this repo does not allow creating merge commits from the GitHub UI, use command line instructions. ## Instructions for merging via command line Run these commands to merge this pull request from the command line. ``` sh git fetch git checkout vs17.8 git pull --ff-only git checkout vs17.10 git pull --ff-only git merge --no-ff vs17.8 # If there are merge conflicts, resolve them and then run git merge --continue to complete the merge # Pushing the changes to the PR branch will re-trigger PR validation. git push https://github.com/dotnet/msbuild HEAD:merge/vs17.8-to-vs17.10 ```
or if you are using SSH ``` git push git@github.com:dotnet/msbuild HEAD:merge/vs17.8-to-vs17.10 ```
After PR checks are complete push the branch ``` git push ``` ## Instructions for resolving conflicts :warning: If there are merge conflicts, you will need to resolve them manually before merging. You can do this [using GitHub][resolve-github] or using the [command line][resolve-cli]. [resolve-github]: https://help.github.com/articles/resolving-a-merge-conflict-on-github/ [resolve-cli]: https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/ ## Instructions for updating this pull request Contributors to this repo have permission update this pull request by pushing to the branch 'merge/vs17.8-to-vs17.10'. This can be done to resolve conflicts or make other changes to this pull request before it is merged. The provided examples assume that the remote is named 'origin'. If you have a different remote name, please replace 'origin' with the name of your remote. ``` git fetch git checkout -b merge/vs17.8-to-vs17.10 origin/vs17.10 git pull https://github.com/dotnet/msbuild merge/vs17.8-to-vs17.10 (make changes) git commit -m "Updated PR with my changes" git push https://github.com/dotnet/msbuild HEAD:merge/vs17.8-to-vs17.10 ```
or if you are using SSH ``` git fetch git checkout -b merge/vs17.8-to-vs17.10 origin/vs17.10 git pull git@github.com:dotnet/msbuild merge/vs17.8-to-vs17.10 (make changes) git commit -m "Updated PR with my changes" git push git@github.com:dotnet/msbuild HEAD:merge/vs17.8-to-vs17.10 ```
Contact .NET Core Engineering (dotnet/dnceng) if you have questions or issues. Also, if this PR was generated incorrectly, help us fix it. See https://github.com/dotnet/arcade/blob/main/.github/workflows/scripts/inter-branch-merge.ps1. --------- Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] Co-authored-by: Gang Wang Co-authored-by: Nguyen Huu Linh <43189610+huulinhnguyen-dev@users.noreply.github.com> Co-authored-by: huulinh99 --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index ac8fb854384..19a49de60fd 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.10.38 + 17.10.39 release 17.8.3 15.1.0.0 From 77bc77a53cffc208304e422a3e9bd612177ea9d1 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 19 Aug 2025 10:18:57 +0200 Subject: [PATCH 15/23] [vs17.10] Update dependencies from dotnet/arcade (#12361) Co-authored-by: dotnet-maestro[bot] Co-authored-by: Gang Wang --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- eng/common/SetupNugetSources.ps1 | 4 ++-- eng/common/SetupNugetSources.sh | 4 ++-- eng/common/templates-official/job/job.yml | 12 ++++++------ eng/common/templates-official/job/onelocbuild.yml | 6 +++--- .../job/publish-build-assets.yml | 13 +++++++++---- .../templates-official/job/source-index-stage1.yml | 2 +- .../templates-official/jobs/codeql-build.yml | 2 +- eng/common/templates-official/jobs/jobs.yml | 2 ++ .../templates-official/post-build/post-build.yml | 8 ++++---- .../post-build/trigger-subscription.yml | 2 +- .../steps/add-build-to-channel.yml | 2 +- .../templates-official/steps/execute-sdl.yml | 14 +++++++------- .../templates-official/steps/generate-sbom.yml | 2 +- .../templates-official/steps/publish-logs.yml | 6 +++--- .../templates-official/steps/source-build.yml | 8 ++++---- .../templates-official/variables/sdl-variables.yml | 2 +- eng/common/templates/job/job.yml | 12 ++++++------ eng/common/templates/job/onelocbuild.yml | 6 +++--- eng/common/templates/job/publish-build-assets.yml | 13 +++++++++---- eng/common/templates/job/source-index-stage1.yml | 2 +- eng/common/templates/jobs/codeql-build.yml | 2 +- eng/common/templates/jobs/jobs.yml | 2 ++ eng/common/templates/post-build/post-build.yml | 8 ++++---- .../templates/post-build/setup-maestro-vars.yml | 2 +- .../templates/post-build/trigger-subscription.yml | 2 +- .../templates/steps/add-build-to-channel.yml | 2 +- eng/common/templates/steps/execute-sdl.yml | 14 +++++++------- eng/common/templates/steps/generate-sbom.yml | 2 +- eng/common/templates/steps/publish-logs.yml | 6 +++--- eng/common/templates/steps/source-build.yml | 8 ++++---- eng/common/templates/variables/sdl-variables.yml | 2 +- global.json | 2 +- 34 files changed, 102 insertions(+), 88 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d8f0c910253..4b960c6a573 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -67,14 +67,14 @@ - + https://github.com/dotnet/arcade - a5ec3fab69ac440afe6764b2e046af6e8fcafa74 + 2f70e458e03e348a3a1f3fd6b9b70b4fcd5ba596 - + https://github.com/dotnet/arcade - a5ec3fab69ac440afe6764b2e046af6e8fcafa74 + 2f70e458e03e348a3a1f3fd6b9b70b4fcd5ba596 @@ -96,9 +96,9 @@ 919d4dbfb0dffb35a702417e28ceea652d248bc6 - + https://github.com/dotnet/arcade - a5ec3fab69ac440afe6764b2e046af6e8fcafa74 + 2f70e458e03e348a3a1f3fd6b9b70b4fcd5ba596 diff --git a/eng/Versions.props b/eng/Versions.props index 19a49de60fd..8b5f03d8623 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.10.39 + 17.10.40 release 17.8.3 15.1.0.0 @@ -49,7 +49,7 @@ Otherwise, this version of dotnet will not be installed and the build will error out. --> $([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\global.json')), '"dotnet": "([^"]*)"').Groups.get_Item(1)) 4.2.0-1.22102.8 - 8.0.0-beta.25407.1 + 8.0.0-beta.25415.2 7.0.0 6.0.0 4.10.0-3.24175.2 diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1 index efa2fd72bfa..59b2d55e1a3 100644 --- a/eng/common/SetupNugetSources.ps1 +++ b/eng/common/SetupNugetSources.ps1 @@ -17,8 +17,8 @@ # displayName: Setup Private Feeds Credentials # condition: eq(variables['Agent.OS'], 'Windows_NT') # inputs: -# filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1 -# arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token +# filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.ps1 +# arguments: -ConfigFile $(System.DefaultWorkingDirectory)/NuGet.config -Password $Env:Token # env: # Token: $(dn-bot-dnceng-artifact-feeds-rw) diff --git a/eng/common/SetupNugetSources.sh b/eng/common/SetupNugetSources.sh index d387c7eac95..c0e7bbef21c 100644 --- a/eng/common/SetupNugetSources.sh +++ b/eng/common/SetupNugetSources.sh @@ -18,8 +18,8 @@ # - task: Bash@3 # displayName: Setup Private Feeds Credentials # inputs: -# filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh -# arguments: $(Build.SourcesDirectory)/NuGet.config $Token +# filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.sh +# arguments: $(System.DefaultWorkingDirectory)/NuGet.config $Token # condition: ne(variables['Agent.OS'], 'Windows_NT') # env: # Token: $(dn-bot-dnceng-artifact-feeds-rw) diff --git a/eng/common/templates-official/job/job.yml b/eng/common/templates-official/job/job.yml index b98f6a6505d..4cca1114fcc 100644 --- a/eng/common/templates-official/job/job.yml +++ b/eng/common/templates-official/job/job.yml @@ -38,7 +38,7 @@ parameters: # Sbom related params enableSbom: true PackageVersion: 7.0.0 - BuildDropPath: '$(Build.SourcesDirectory)/artifacts' + BuildDropPath: '$(System.DefaultWorkingDirectory)/artifacts' ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom jobs: @@ -167,7 +167,7 @@ jobs: inputs: languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }} environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'production') }} - richNavLogOutputDirectory: $(Build.SourcesDirectory)/artifacts/bin + richNavLogOutputDirectory: $(System.DefaultWorkingDirectory)/artifacts/bin uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }} continueOnError: true @@ -226,7 +226,7 @@ jobs: - task: 1ES.PublishBuildArtifacts@1 displayName: Publish Logs inputs: - PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)' + PathtoPublish: '$(System.DefaultWorkingDirectory)/artifacts/log/$(_BuildConfig)' PublishLocation: Container ArtifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }} continueOnError: true @@ -238,7 +238,7 @@ jobs: inputs: testResultsFormat: 'xUnit' testResultsFiles: '*.xml' - searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)' + searchFolder: '$(System.DefaultWorkingDirectory)/artifacts/TestResults/$(_BuildConfig)' testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-xunit mergeTestResults: ${{ parameters.mergeTestResults }} continueOnError: true @@ -249,7 +249,7 @@ jobs: inputs: testResultsFormat: 'VSTest' testResultsFiles: '*.trx' - searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)' + searchFolder: '$(System.DefaultWorkingDirectory)/artifacts/TestResults/$(_BuildConfig)' testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-trx mergeTestResults: ${{ parameters.mergeTestResults }} continueOnError: true @@ -265,7 +265,7 @@ jobs: - ${{ if eq(parameters.enableBuildRetry, 'true') }}: - task: 1ES.PublishPipelineArtifact@1 inputs: - targetPath: '$(Build.SourcesDirectory)\eng\common\BuildConfiguration' + targetPath: '$(System.DefaultWorkingDirectory)\eng\common\BuildConfiguration' artifactName: 'BuildConfiguration' displayName: 'Publish build retry configuration' continueOnError: true diff --git a/eng/common/templates-official/job/onelocbuild.yml b/eng/common/templates-official/job/onelocbuild.yml index 52b4d05d3f8..68e7a65605c 100644 --- a/eng/common/templates-official/job/onelocbuild.yml +++ b/eng/common/templates-official/job/onelocbuild.yml @@ -8,7 +8,7 @@ parameters: 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) + SourcesDirectory: $(System.DefaultWorkingDirectory) CreatePr: true AutoCompletePr: false ReusePr: true @@ -63,7 +63,7 @@ jobs: - ${{ if ne(parameters.SkipLocProjectJsonGeneration, 'true') }}: - task: Powershell@2 inputs: - filePath: $(Build.SourcesDirectory)/eng/common/generate-locproject.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/generate-locproject.ps1 arguments: $(_GenerateLocProjectArguments) displayName: Generate LocProject.json condition: ${{ parameters.condition }} @@ -106,7 +106,7 @@ jobs: - task: 1ES.PublishBuildArtifacts@1 displayName: Publish LocProject.json inputs: - PathtoPublish: '$(Build.SourcesDirectory)/eng/Localize/' + PathtoPublish: '$(System.DefaultWorkingDirectory)/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 index b2ccd9df680..7a320e9bab2 100644 --- a/eng/common/templates-official/job/publish-build-assets.yml +++ b/eng/common/templates-official/job/publish-build-assets.yml @@ -30,6 +30,8 @@ parameters: signingValidationAdditionalParameters: '' + repositoryAlias: self + jobs: - job: Asset_Registry_Publish @@ -65,6 +67,9 @@ jobs: os: windows steps: - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - checkout: ${{ parameters.repositoryAlias }} + fetchDepth: 3 + clean: true - task: DownloadBuildArtifacts@0 displayName: Download artifact inputs: @@ -82,7 +87,7 @@ jobs: azureSubscription: "Darc: Maestro Production" scriptType: ps scriptLocation: scriptPath - scriptPath: $(Build.SourcesDirectory)/eng/common/sdk-task.ps1 + scriptPath: $(System.DefaultWorkingDirectory)/eng/common/sdk-task.ps1 arguments: > -task PublishBuildAssets -restore -msbuildEngine dotnet /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests' @@ -115,7 +120,7 @@ jobs: inputs: targetType: inline script: | - $symbolExclusionfile = "$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt" + $symbolExclusionfile = "$(System.DefaultWorkingDirectory)/eng/SymbolPublishingExclusionsFile.txt" if(Test-Path -Path $symbolExclusionfile) { Write-Host "SymbolExclusionFile exists" @@ -130,7 +135,7 @@ jobs: displayName: Publish SymbolPublishingExclusionsFile Artifact condition: eq(variables['SymbolExclusionFile'], 'true') inputs: - PathtoPublish: '$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt' + PathtoPublish: '$(System.DefaultWorkingDirectory)/eng/SymbolPublishingExclusionsFile.txt' PublishLocation: Container ArtifactName: ReleaseConfigs @@ -146,7 +151,7 @@ jobs: azureSubscription: "Darc: Maestro Production" scriptType: ps scriptLocation: scriptPath - scriptPath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1 + scriptPath: $(System.DefaultWorkingDirectory)/eng/common/post-build/publish-using-darc.ps1 arguments: -BuildId $(BARBuildId) -PublishingInfraVersion 3 -AzdoToken '$(System.AccessToken)' diff --git a/eng/common/templates-official/job/source-index-stage1.yml b/eng/common/templates-official/job/source-index-stage1.yml index fb632b71a25..0579e692fc8 100644 --- a/eng/common/templates-official/job/source-index-stage1.yml +++ b/eng/common/templates-official/job/source-index-stage1.yml @@ -59,7 +59,7 @@ jobs: - 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 + - script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i $(BinlogPath) -r $(System.DefaultWorkingDirectory) -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')) }}: diff --git a/eng/common/templates-official/jobs/codeql-build.yml b/eng/common/templates-official/jobs/codeql-build.yml index b68d3c2f319..f6476912a86 100644 --- a/eng/common/templates-official/jobs/codeql-build.yml +++ b/eng/common/templates-official/jobs/codeql-build.yml @@ -23,7 +23,7 @@ jobs: - name: DefaultGuardianVersion value: 0.109.0 - name: GuardianPackagesConfigFile - value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config + value: $(System.DefaultWorkingDirectory)\eng\common\sdl\packages.config - name: GuardianVersion value: ${{ coalesce(parameters.overrideGuardianVersion, '$(DefaultGuardianVersion)') }} diff --git a/eng/common/templates-official/jobs/jobs.yml b/eng/common/templates-official/jobs/jobs.yml index 857a0f8ba43..803a95aacf4 100644 --- a/eng/common/templates-official/jobs/jobs.yml +++ b/eng/common/templates-official/jobs/jobs.yml @@ -40,6 +40,7 @@ parameters: enableSourceIndex: false sourceIndexParams: {} + repositoryAlias: self # 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. @@ -95,3 +96,4 @@ jobs: enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }} artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} signingValidationAdditionalParameters: ${{ parameters.signingValidationAdditionalParameters }} + repositoryAlias: ${{ parameters.repositoryAlias }} diff --git a/eng/common/templates-official/post-build/post-build.yml b/eng/common/templates-official/post-build/post-build.yml index b81b8770b34..9fef8103991 100644 --- a/eng/common/templates-official/post-build/post-build.yml +++ b/eng/common/templates-official/post-build/post-build.yml @@ -133,7 +133,7 @@ stages: - task: PowerShell@2 displayName: Validate inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/nuget-validation.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/nuget-validation.ps1 arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ -ToolDestinationPath $(Agent.BuildDirectory)/Extract/ @@ -186,7 +186,7 @@ stages: filePath: eng\common\sdk-task.ps1 arguments: -task SigningValidation -restore -msbuildEngine vs /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts' - /p:SignCheckExclusionsFile='$(Build.SourcesDirectory)/eng/SignCheckExclusionsFile.txt' + /p:SignCheckExclusionsFile='$(System.DefaultWorkingDirectory)/eng/SignCheckExclusionsFile.txt' ${{ parameters.signingValidationAdditionalParameters }} - template: ../steps/publish-logs.yml @@ -230,7 +230,7 @@ stages: - task: PowerShell@2 displayName: Validate inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/sourcelink-validation.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/sourcelink-validation.ps1 arguments: -InputPath $(Build.ArtifactStagingDirectory)/BlobArtifacts/ -ExtractPath $(Agent.BuildDirectory)/Extract/ -GHRepoName $(Build.Repository.Name) @@ -278,7 +278,7 @@ stages: azureSubscription: "Darc: Maestro Production" scriptType: ps scriptLocation: scriptPath - scriptPath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1 + scriptPath: $(System.DefaultWorkingDirectory)/eng/common/post-build/publish-using-darc.ps1 arguments: -BuildId $(BARBuildId) -PublishingInfraVersion ${{ parameters.publishingInfraVersion }} -AzdoToken '$(System.AccessToken)' diff --git a/eng/common/templates-official/post-build/trigger-subscription.yml b/eng/common/templates-official/post-build/trigger-subscription.yml index da669030daf..52df7077482 100644 --- a/eng/common/templates-official/post-build/trigger-subscription.yml +++ b/eng/common/templates-official/post-build/trigger-subscription.yml @@ -5,7 +5,7 @@ steps: - task: PowerShell@2 displayName: Triggering subscriptions inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/trigger-subscriptions.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/trigger-subscriptions.ps1 arguments: -SourceRepo $(Build.Repository.Uri) -ChannelId ${{ parameters.ChannelId }} -MaestroApiAccessToken $(MaestroAccessToken) diff --git a/eng/common/templates-official/steps/add-build-to-channel.yml b/eng/common/templates-official/steps/add-build-to-channel.yml index f67a210d62f..5b6fec257ea 100644 --- a/eng/common/templates-official/steps/add-build-to-channel.yml +++ b/eng/common/templates-official/steps/add-build-to-channel.yml @@ -5,7 +5,7 @@ steps: - task: PowerShell@2 displayName: Add Build to Channel inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/add-build-to-channel.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/add-build-to-channel.ps1 arguments: -BuildId $(BARBuildId) -ChannelId ${{ parameters.ChannelId }} -MaestroApiAccessToken $(MaestroApiAccessToken) diff --git a/eng/common/templates-official/steps/execute-sdl.yml b/eng/common/templates-official/steps/execute-sdl.yml index 301d5c591eb..d9dcd1e1cde 100644 --- a/eng/common/templates-official/steps/execute-sdl.yml +++ b/eng/common/templates-official/steps/execute-sdl.yml @@ -15,17 +15,17 @@ steps: - ${{ if ne(parameters.overrideGuardianVersion, '') }}: - pwsh: | - Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl + Set-Location -Path $(System.DefaultWorkingDirectory)\eng\common\sdl . .\sdl.ps1 - $guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts -Version ${{ parameters.overrideGuardianVersion }} + $guardianCliLocation = Install-Gdn -Path $(System.DefaultWorkingDirectory)\.artifacts -Version ${{ parameters.overrideGuardianVersion }} Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation" displayName: Install Guardian (Overridden) - ${{ if eq(parameters.overrideGuardianVersion, '') }}: - pwsh: | - Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl + Set-Location -Path $(System.DefaultWorkingDirectory)\eng\common\sdl . .\sdl.ps1 - $guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts + $guardianCliLocation = Install-Gdn -Path $(System.DefaultWorkingDirectory)\.artifacts Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation" displayName: Install Guardian @@ -38,7 +38,7 @@ steps: - ${{ if eq(parameters.overrideParameters, '') }}: - powershell: ${{ parameters.executeAllSdlToolsScript }} -GuardianCliLocation $(GuardianCliLocation) - -NugetPackageDirectory $(Build.SourcesDirectory)\.packages + -NugetPackageDirectory $(System.DefaultWorkingDirectory)\.packages -AzureDevOpsAccessToken $(dn-bot-dotnet-build-rw-code-rw) ${{ parameters.additionalParameters }} displayName: Execute SDL @@ -73,7 +73,7 @@ steps: flattenFolders: true sourceFolder: $(Agent.BuildDirectory)/.gdn/rc/ contents: '**/*.sarif' - targetFolder: $(Build.SourcesDirectory)/CodeAnalysisLogs + targetFolder: $(System.DefaultWorkingDirectory)/CodeAnalysisLogs condition: succeededOrFailed() # Use PublishBuildArtifacts because the SARIF extension only checks this case @@ -81,6 +81,6 @@ steps: - task: PublishBuildArtifacts@1 displayName: Publish SARIF files to CodeAnalysisLogs container inputs: - pathToPublish: $(Build.SourcesDirectory)/CodeAnalysisLogs + pathToPublish: $(System.DefaultWorkingDirectory)/CodeAnalysisLogs artifactName: CodeAnalysisLogs condition: succeededOrFailed() \ 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 index daf0957b68d..1536353566c 100644 --- a/eng/common/templates-official/steps/generate-sbom.yml +++ b/eng/common/templates-official/steps/generate-sbom.yml @@ -6,7 +6,7 @@ parameters: PackageVersion: 8.0.0 - BuildDropPath: '$(Build.SourcesDirectory)/artifacts' + BuildDropPath: '$(System.DefaultWorkingDirectory)/artifacts' PackageName: '.NET' ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom IgnoreDirectories: '' diff --git a/eng/common/templates-official/steps/publish-logs.yml b/eng/common/templates-official/steps/publish-logs.yml index 04012fed182..af5a40b64c4 100644 --- a/eng/common/templates-official/steps/publish-logs.yml +++ b/eng/common/templates-official/steps/publish-logs.yml @@ -8,15 +8,15 @@ steps: 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}}/ + New-Item -ItemType Directory $(System.DefaultWorkingDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/ + Move-Item -Path $(System.DefaultWorkingDirectory)/artifacts/log/Debug/* $(System.DefaultWorkingDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/ continueOnError: true condition: always() - task: 1ES.PublishBuildArtifacts@1 displayName: Publish Logs inputs: - PathtoPublish: '$(Build.SourcesDirectory)/PostBuildLogs' + PathtoPublish: '$(System.DefaultWorkingDirectory)/PostBuildLogs' PublishLocation: Container ArtifactName: PostBuildLogs continueOnError: true diff --git a/eng/common/templates-official/steps/source-build.yml b/eng/common/templates-official/steps/source-build.yml index 829f17c34d1..a69631446da 100644 --- a/eng/common/templates-official/steps/source-build.yml +++ b/eng/common/templates-official/steps/source-build.yml @@ -26,8 +26,8 @@ steps: 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) + chmod +x $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.sh + $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.sh $(System.DefaultWorkingDirectory)/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. @@ -101,7 +101,7 @@ steps: - task: CopyFiles@2 displayName: Prepare BuildLogs staging directory inputs: - SourceFolder: '$(Build.SourcesDirectory)' + SourceFolder: '$(System.DefaultWorkingDirectory)' Contents: | **/*.log **/*.binlog @@ -126,4 +126,4 @@ steps: - task: ComponentGovernanceComponentDetection@0 displayName: Component Detection (Exclude upstream cache) inputs: - ignoreDirectories: '$(Build.SourcesDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache' + ignoreDirectories: '$(System.DefaultWorkingDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache' diff --git a/eng/common/templates-official/variables/sdl-variables.yml b/eng/common/templates-official/variables/sdl-variables.yml index dbdd66d4a4b..f1311bbb1b3 100644 --- a/eng/common/templates-official/variables/sdl-variables.yml +++ b/eng/common/templates-official/variables/sdl-variables.yml @@ -4,4 +4,4 @@ variables: - name: DefaultGuardianVersion value: 0.109.0 - name: GuardianPackagesConfigFile - value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config \ No newline at end of file + value: $(System.DefaultWorkingDirectory)\eng\common\sdl\packages.config \ No newline at end of file diff --git a/eng/common/templates/job/job.yml b/eng/common/templates/job/job.yml index 2856f7de106..80454d5a558 100644 --- a/eng/common/templates/job/job.yml +++ b/eng/common/templates/job/job.yml @@ -37,7 +37,7 @@ parameters: # Sbom related params enableSbom: true PackageVersion: 7.0.0 - BuildDropPath: '$(Build.SourcesDirectory)/artifacts' + BuildDropPath: '$(System.DefaultWorkingDirectory)/artifacts' jobs: - job: ${{ parameters.name }} @@ -163,7 +163,7 @@ jobs: inputs: languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }} environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'production') }} - richNavLogOutputDirectory: $(Build.SourcesDirectory)/artifacts/bin + richNavLogOutputDirectory: $(System.DefaultWorkingDirectory)/artifacts/bin uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }} continueOnError: true @@ -220,7 +220,7 @@ jobs: - task: PublishBuildArtifacts@1 displayName: Publish Logs inputs: - PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)' + PathtoPublish: '$(System.DefaultWorkingDirectory)/artifacts/log/$(_BuildConfig)' PublishLocation: Container ArtifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }} continueOnError: true @@ -232,7 +232,7 @@ jobs: inputs: testResultsFormat: 'xUnit' testResultsFiles: '*.xml' - searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)' + searchFolder: '$(System.DefaultWorkingDirectory)/artifacts/TestResults/$(_BuildConfig)' testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-xunit mergeTestResults: ${{ parameters.mergeTestResults }} continueOnError: true @@ -243,7 +243,7 @@ jobs: inputs: testResultsFormat: 'VSTest' testResultsFiles: '*.trx' - searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)' + searchFolder: '$(System.DefaultWorkingDirectory)/artifacts/TestResults/$(_BuildConfig)' testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-trx mergeTestResults: ${{ parameters.mergeTestResults }} continueOnError: true @@ -257,7 +257,7 @@ jobs: IgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} - ${{ if eq(parameters.enableBuildRetry, 'true') }}: - - publish: $(Build.SourcesDirectory)\eng\common\BuildConfiguration + - publish: $(System.DefaultWorkingDirectory)\eng\common\BuildConfiguration artifact: BuildConfiguration displayName: Publish build retry configuration continueOnError: true diff --git a/eng/common/templates/job/onelocbuild.yml b/eng/common/templates/job/onelocbuild.yml index 60ab00c4de3..2cd3840c992 100644 --- a/eng/common/templates/job/onelocbuild.yml +++ b/eng/common/templates/job/onelocbuild.yml @@ -8,7 +8,7 @@ parameters: 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) + SourcesDirectory: $(System.DefaultWorkingDirectory) CreatePr: true AutoCompletePr: false ReusePr: true @@ -60,7 +60,7 @@ jobs: - ${{ if ne(parameters.SkipLocProjectJsonGeneration, 'true') }}: - task: Powershell@2 inputs: - filePath: $(Build.SourcesDirectory)/eng/common/generate-locproject.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/generate-locproject.ps1 arguments: $(_GenerateLocProjectArguments) displayName: Generate LocProject.json condition: ${{ parameters.condition }} @@ -103,7 +103,7 @@ jobs: - task: PublishBuildArtifacts@1 displayName: Publish LocProject.json inputs: - PathtoPublish: '$(Build.SourcesDirectory)/eng/Localize/' + PathtoPublish: '$(System.DefaultWorkingDirectory)/eng/Localize/' PublishLocation: Container ArtifactName: Loc condition: ${{ parameters.condition }} \ No newline at end of file diff --git a/eng/common/templates/job/publish-build-assets.yml b/eng/common/templates/job/publish-build-assets.yml index cc2b346ba8b..2956d8117f7 100644 --- a/eng/common/templates/job/publish-build-assets.yml +++ b/eng/common/templates/job/publish-build-assets.yml @@ -30,6 +30,8 @@ parameters: signingValidationAdditionalParameters: '' + repositoryAlias: self + jobs: - job: Asset_Registry_Publish @@ -63,6 +65,9 @@ jobs: steps: - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - checkout: ${{ parameters.repositoryAlias }} + fetchDepth: 3 + clean: true - task: DownloadBuildArtifacts@0 displayName: Download artifact inputs: @@ -80,7 +85,7 @@ jobs: azureSubscription: "Darc: Maestro Production" scriptType: ps scriptLocation: scriptPath - scriptPath: $(Build.SourcesDirectory)/eng/common/sdk-task.ps1 + scriptPath: $(System.DefaultWorkingDirectory)/eng/common/sdk-task.ps1 arguments: > -task PublishBuildAssets -restore -msbuildEngine dotnet /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests' @@ -111,7 +116,7 @@ jobs: inputs: targetType: inline script: | - $symbolExclusionfile = "$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt" + $symbolExclusionfile = "$(System.DefaultWorkingDirectory)/eng/SymbolPublishingExclusionsFile.txt" if(Test-Path -Path $symbolExclusionfile) { Write-Host "SymbolExclusionFile exists" @@ -126,7 +131,7 @@ jobs: displayName: Publish SymbolPublishingExclusionsFile Artifact condition: eq(variables['SymbolExclusionFile'], 'true') inputs: - PathtoPublish: '$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt' + PathtoPublish: '$(System.DefaultWorkingDirectory)/eng/SymbolPublishingExclusionsFile.txt' PublishLocation: Container ArtifactName: ReleaseConfigs @@ -142,7 +147,7 @@ jobs: azureSubscription: "Darc: Maestro Production" scriptType: ps scriptLocation: scriptPath - scriptPath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1 + scriptPath: $(System.DefaultWorkingDirectory)/eng/common/post-build/publish-using-darc.ps1 arguments: -BuildId $(BARBuildId) -PublishingInfraVersion 3 -AzdoToken '$(System.AccessToken)' diff --git a/eng/common/templates/job/source-index-stage1.yml b/eng/common/templates/job/source-index-stage1.yml index 8538f44bab2..81606fd9a54 100644 --- a/eng/common/templates/job/source-index-stage1.yml +++ b/eng/common/templates/job/source-index-stage1.yml @@ -58,7 +58,7 @@ jobs: - 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 + - script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i $(BinlogPath) -r $(System.DefaultWorkingDirectory) -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')) }}: diff --git a/eng/common/templates/jobs/codeql-build.yml b/eng/common/templates/jobs/codeql-build.yml index f7dc5ea4aaa..e8b43e3b4cb 100644 --- a/eng/common/templates/jobs/codeql-build.yml +++ b/eng/common/templates/jobs/codeql-build.yml @@ -23,7 +23,7 @@ jobs: - name: DefaultGuardianVersion value: 0.109.0 - name: GuardianPackagesConfigFile - value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config + value: $(System.DefaultWorkingDirectory)\eng\common\sdl\packages.config - name: GuardianVersion value: ${{ coalesce(parameters.overrideGuardianVersion, '$(DefaultGuardianVersion)') }} diff --git a/eng/common/templates/jobs/jobs.yml b/eng/common/templates/jobs/jobs.yml index 289bb2396ce..34387a8c7ac 100644 --- a/eng/common/templates/jobs/jobs.yml +++ b/eng/common/templates/jobs/jobs.yml @@ -40,6 +40,7 @@ parameters: enableSourceIndex: false sourceIndexParams: {} + repositoryAlias: self # 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. @@ -95,3 +96,4 @@ jobs: enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }} artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} signingValidationAdditionalParameters: ${{ parameters.signingValidationAdditionalParameters }} + repositoryAlias: ${{ parameters.repositoryAlias }} diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml index c3b6a3012fe..6e5722dc2e1 100644 --- a/eng/common/templates/post-build/post-build.yml +++ b/eng/common/templates/post-build/post-build.yml @@ -130,7 +130,7 @@ stages: - task: PowerShell@2 displayName: Validate inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/nuget-validation.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/nuget-validation.ps1 arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ -ToolDestinationPath $(Agent.BuildDirectory)/Extract/ @@ -180,7 +180,7 @@ stages: filePath: eng\common\sdk-task.ps1 arguments: -task SigningValidation -restore -msbuildEngine vs /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts' - /p:SignCheckExclusionsFile='$(Build.SourcesDirectory)/eng/SignCheckExclusionsFile.txt' + /p:SignCheckExclusionsFile='$(System.DefaultWorkingDirectory)/eng/SignCheckExclusionsFile.txt' ${{ parameters.signingValidationAdditionalParameters }} - template: ../steps/publish-logs.yml @@ -220,7 +220,7 @@ stages: - task: PowerShell@2 displayName: Validate inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/sourcelink-validation.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/sourcelink-validation.ps1 arguments: -InputPath $(Build.ArtifactStagingDirectory)/BlobArtifacts/ -ExtractPath $(Agent.BuildDirectory)/Extract/ -GHRepoName $(Build.Repository.Name) @@ -274,7 +274,7 @@ stages: azureSubscription: "Darc: Maestro Production" scriptType: ps scriptLocation: scriptPath - scriptPath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1 + scriptPath: $(System.DefaultWorkingDirectory)/eng/common/post-build/publish-using-darc.ps1 arguments: -BuildId $(BARBuildId) -PublishingInfraVersion ${{ parameters.publishingInfraVersion }} -AzdoToken '$(System.AccessToken)' diff --git a/eng/common/templates/post-build/setup-maestro-vars.yml b/eng/common/templates/post-build/setup-maestro-vars.yml index 64b9abc6850..4347fa80b68 100644 --- a/eng/common/templates/post-build/setup-maestro-vars.yml +++ b/eng/common/templates/post-build/setup-maestro-vars.yml @@ -32,7 +32,7 @@ steps: $AzureDevOpsBuildId = $Env:Build_BuildId } else { - . $(Build.SourcesDirectory)\eng\common\tools.ps1 + . $(System.DefaultWorkingDirectory)\eng\common\tools.ps1 $darc = Get-Darc $buildInfo = & $darc get-build ` --id ${{ parameters.BARBuildId }} ` diff --git a/eng/common/templates/post-build/trigger-subscription.yml b/eng/common/templates/post-build/trigger-subscription.yml index da669030daf..52df7077482 100644 --- a/eng/common/templates/post-build/trigger-subscription.yml +++ b/eng/common/templates/post-build/trigger-subscription.yml @@ -5,7 +5,7 @@ steps: - task: PowerShell@2 displayName: Triggering subscriptions inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/trigger-subscriptions.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/trigger-subscriptions.ps1 arguments: -SourceRepo $(Build.Repository.Uri) -ChannelId ${{ parameters.ChannelId }} -MaestroApiAccessToken $(MaestroAccessToken) diff --git a/eng/common/templates/steps/add-build-to-channel.yml b/eng/common/templates/steps/add-build-to-channel.yml index f67a210d62f..5b6fec257ea 100644 --- a/eng/common/templates/steps/add-build-to-channel.yml +++ b/eng/common/templates/steps/add-build-to-channel.yml @@ -5,7 +5,7 @@ steps: - task: PowerShell@2 displayName: Add Build to Channel inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/add-build-to-channel.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/add-build-to-channel.ps1 arguments: -BuildId $(BARBuildId) -ChannelId ${{ parameters.ChannelId }} -MaestroApiAccessToken $(MaestroApiAccessToken) diff --git a/eng/common/templates/steps/execute-sdl.yml b/eng/common/templates/steps/execute-sdl.yml index fe0ebf8c904..047e8281ebc 100644 --- a/eng/common/templates/steps/execute-sdl.yml +++ b/eng/common/templates/steps/execute-sdl.yml @@ -15,17 +15,17 @@ steps: - ${{ if ne(parameters.overrideGuardianVersion, '') }}: - pwsh: | - Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl + Set-Location -Path $(System.DefaultWorkingDirectory)\eng\common\sdl . .\sdl.ps1 - $guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts -Version ${{ parameters.overrideGuardianVersion }} + $guardianCliLocation = Install-Gdn -Path $(System.DefaultWorkingDirectory)\.artifacts -Version ${{ parameters.overrideGuardianVersion }} Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation" displayName: Install Guardian (Overridden) - ${{ if eq(parameters.overrideGuardianVersion, '') }}: - pwsh: | - Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl + Set-Location -Path $(System.DefaultWorkingDirectory)\eng\common\sdl . .\sdl.ps1 - $guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts + $guardianCliLocation = Install-Gdn -Path $(System.DefaultWorkingDirectory)\.artifacts Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation" displayName: Install Guardian @@ -40,7 +40,7 @@ steps: - ${{ if eq(parameters.overrideParameters, '') }}: - powershell: ${{ parameters.executeAllSdlToolsScript }} -GuardianCliLocation $(GuardianCliLocation) - -NugetPackageDirectory $(Build.SourcesDirectory)\.packages + -NugetPackageDirectory $(System.DefaultWorkingDirectory)\.packages ${{ parameters.additionalParameters }} displayName: Execute SDL continueOnError: ${{ parameters.sdlContinueOnError }} @@ -76,7 +76,7 @@ steps: flattenFolders: true sourceFolder: $(Agent.BuildDirectory)/.gdn/rc/ contents: '**/*.sarif' - targetFolder: $(Build.SourcesDirectory)/CodeAnalysisLogs + targetFolder: $(System.DefaultWorkingDirectory)/CodeAnalysisLogs condition: succeededOrFailed() # Use PublishBuildArtifacts because the SARIF extension only checks this case @@ -84,6 +84,6 @@ steps: - task: PublishBuildArtifacts@1 displayName: Publish SARIF files to CodeAnalysisLogs container inputs: - pathToPublish: $(Build.SourcesDirectory)/CodeAnalysisLogs + pathToPublish: $(System.DefaultWorkingDirectory)/CodeAnalysisLogs artifactName: CodeAnalysisLogs condition: succeededOrFailed() \ No newline at end of file diff --git a/eng/common/templates/steps/generate-sbom.yml b/eng/common/templates/steps/generate-sbom.yml index 2b21eae4273..b1fe8b3944b 100644 --- a/eng/common/templates/steps/generate-sbom.yml +++ b/eng/common/templates/steps/generate-sbom.yml @@ -6,7 +6,7 @@ parameters: PackageVersion: 8.0.0 - BuildDropPath: '$(Build.SourcesDirectory)/artifacts' + BuildDropPath: '$(System.DefaultWorkingDirectory)/artifacts' PackageName: '.NET' ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom IgnoreDirectories: '' diff --git a/eng/common/templates/steps/publish-logs.yml b/eng/common/templates/steps/publish-logs.yml index 88f238f36bf..e2f8413d8e1 100644 --- a/eng/common/templates/steps/publish-logs.yml +++ b/eng/common/templates/steps/publish-logs.yml @@ -8,15 +8,15 @@ steps: 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}}/ + New-Item -ItemType Directory $(System.DefaultWorkingDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/ + Move-Item -Path $(System.DefaultWorkingDirectory)/artifacts/log/Debug/* $(System.DefaultWorkingDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/ continueOnError: true condition: always() - task: PublishBuildArtifacts@1 displayName: Publish Logs inputs: - PathtoPublish: '$(Build.SourcesDirectory)/PostBuildLogs' + PathtoPublish: '$(System.DefaultWorkingDirectory)/PostBuildLogs' PublishLocation: Container ArtifactName: PostBuildLogs continueOnError: true diff --git a/eng/common/templates/steps/source-build.yml b/eng/common/templates/steps/source-build.yml index 41bbb915736..4fb5643e5de 100644 --- a/eng/common/templates/steps/source-build.yml +++ b/eng/common/templates/steps/source-build.yml @@ -26,8 +26,8 @@ steps: 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) + chmod +x $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.sh + $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.sh $(System.DefaultWorkingDirectory)/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. @@ -101,7 +101,7 @@ steps: - task: CopyFiles@2 displayName: Prepare BuildLogs staging directory inputs: - SourceFolder: '$(Build.SourcesDirectory)' + SourceFolder: '$(System.DefaultWorkingDirectory)' Contents: | **/*.log **/*.binlog @@ -126,4 +126,4 @@ steps: - task: ComponentGovernanceComponentDetection@0 displayName: Component Detection (Exclude upstream cache) inputs: - ignoreDirectories: '$(Build.SourcesDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache' + ignoreDirectories: '$(System.DefaultWorkingDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache' diff --git a/eng/common/templates/variables/sdl-variables.yml b/eng/common/templates/variables/sdl-variables.yml index dbdd66d4a4b..f1311bbb1b3 100644 --- a/eng/common/templates/variables/sdl-variables.yml +++ b/eng/common/templates/variables/sdl-variables.yml @@ -4,4 +4,4 @@ variables: - name: DefaultGuardianVersion value: 0.109.0 - name: GuardianPackagesConfigFile - value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config \ No newline at end of file + value: $(System.DefaultWorkingDirectory)\eng\common\sdl\packages.config \ No newline at end of file diff --git a/global.json b/global.json index c2d90882763..09f9524b68c 100644 --- a/global.json +++ b/global.json @@ -10,6 +10,6 @@ "xcopy-msbuild": "17.8.5" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25407.1" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25415.2" } } From 19b03fa0ed956540e434a64171bc606d96bb812e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 20 Aug 2025 09:27:41 +0800 Subject: [PATCH 16/23] [vs17.8] Update dependencies from dotnet/arcade (#12357) This pull request updates the following dependencies [marker]: <> (Begin:5f9c9524-456b-43ca-a978-063daaf53c38) ## From https://github.com/dotnet/arcade - **Subscription**: [5f9c9524-456b-43ca-a978-063daaf53c38](https://maestro.dot.net/subscriptions?search=5f9c9524-456b-43ca-a978-063daaf53c38) - **Build**: [20250815.2](https://dev.azure.com/dnceng/internal/_build/results?buildId=2772918) - **Date Produced**: August 15, 2025 6:50:02 PM UTC - **Commit**: [2f70e458e03e348a3a1f3fd6b9b70b4fcd5ba596](https://github.com/dotnet/arcade/commit/2f70e458e03e348a3a1f3fd6b9b70b4fcd5ba596) - **Branch**: [release/8.0](https://github.com/dotnet/arcade/tree/release/8.0) [DependencyUpdate]: <> (Begin) - **Updates**: - From [8.0.0-beta.25407.1 to 8.0.0-beta.25415.2][1] - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.XUnitExtensions [1]: https://github.com/dotnet/arcade/compare/a5ec3fab69...2f70e458e0 [DependencyUpdate]: <> (End) [marker]: <> (End:5f9c9524-456b-43ca-a978-063daaf53c38) --------- Co-authored-by: dotnet-maestro[bot] Co-authored-by: YuliiaKovalova <95473390+YuliiaKovalova@users.noreply.github.com> --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- eng/common/SetupNugetSources.ps1 | 4 ++-- eng/common/SetupNugetSources.sh | 4 ++-- eng/common/templates-official/job/job.yml | 12 ++++++------ eng/common/templates-official/job/onelocbuild.yml | 6 +++--- .../job/publish-build-assets.yml | 13 +++++++++---- .../templates-official/job/source-index-stage1.yml | 2 +- .../templates-official/jobs/codeql-build.yml | 2 +- eng/common/templates-official/jobs/jobs.yml | 2 ++ .../templates-official/post-build/post-build.yml | 8 ++++---- .../post-build/trigger-subscription.yml | 2 +- .../steps/add-build-to-channel.yml | 2 +- .../templates-official/steps/execute-sdl.yml | 14 +++++++------- .../templates-official/steps/generate-sbom.yml | 2 +- .../templates-official/steps/publish-logs.yml | 6 +++--- .../templates-official/steps/source-build.yml | 8 ++++---- .../templates-official/variables/sdl-variables.yml | 2 +- eng/common/templates/job/job.yml | 12 ++++++------ eng/common/templates/job/onelocbuild.yml | 6 +++--- eng/common/templates/job/publish-build-assets.yml | 13 +++++++++---- eng/common/templates/job/source-index-stage1.yml | 2 +- eng/common/templates/jobs/codeql-build.yml | 2 +- eng/common/templates/jobs/jobs.yml | 2 ++ eng/common/templates/post-build/post-build.yml | 8 ++++---- .../templates/post-build/setup-maestro-vars.yml | 2 +- .../templates/post-build/trigger-subscription.yml | 2 +- .../templates/steps/add-build-to-channel.yml | 2 +- eng/common/templates/steps/execute-sdl.yml | 14 +++++++------- eng/common/templates/steps/generate-sbom.yml | 2 +- eng/common/templates/steps/publish-logs.yml | 6 +++--- eng/common/templates/steps/source-build.yml | 8 ++++---- eng/common/templates/variables/sdl-variables.yml | 2 +- global.json | 2 +- 34 files changed, 100 insertions(+), 86 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a88c19eeb1f..8030f0ebfc8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -58,9 +58,9 @@ - + https://github.com/dotnet/arcade - a5ec3fab69ac440afe6764b2e046af6e8fcafa74 + 2f70e458e03e348a3a1f3fd6b9b70b4fcd5ba596 @@ -77,9 +77,9 @@ dc3d0694a4b31b8e27038431888cd4e8dd5b6cb6 - + https://github.com/dotnet/arcade - a5ec3fab69ac440afe6764b2e046af6e8fcafa74 + 2f70e458e03e348a3a1f3fd6b9b70b4fcd5ba596 diff --git a/eng/Versions.props b/eng/Versions.props index 3644184ad57..963e8f545d3 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.8.36 + 17.8.37 release 17.7.0 15.1.0.0 @@ -48,7 +48,7 @@ Otherwise, this version of dotnet will not be installed and the build will error out. --> $([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\global.json')), '"dotnet": "([^"]*)"').Groups.get_Item(1)) 4.2.0-1.22102.8 - 8.0.0-beta.25407.1 + 8.0.0-beta.25415.2 7.0.0 6.0.0 4.8.0-3.23465.5 diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1 index efa2fd72bfa..59b2d55e1a3 100644 --- a/eng/common/SetupNugetSources.ps1 +++ b/eng/common/SetupNugetSources.ps1 @@ -17,8 +17,8 @@ # displayName: Setup Private Feeds Credentials # condition: eq(variables['Agent.OS'], 'Windows_NT') # inputs: -# filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1 -# arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token +# filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.ps1 +# arguments: -ConfigFile $(System.DefaultWorkingDirectory)/NuGet.config -Password $Env:Token # env: # Token: $(dn-bot-dnceng-artifact-feeds-rw) diff --git a/eng/common/SetupNugetSources.sh b/eng/common/SetupNugetSources.sh index d387c7eac95..c0e7bbef21c 100644 --- a/eng/common/SetupNugetSources.sh +++ b/eng/common/SetupNugetSources.sh @@ -18,8 +18,8 @@ # - task: Bash@3 # displayName: Setup Private Feeds Credentials # inputs: -# filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh -# arguments: $(Build.SourcesDirectory)/NuGet.config $Token +# filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.sh +# arguments: $(System.DefaultWorkingDirectory)/NuGet.config $Token # condition: ne(variables['Agent.OS'], 'Windows_NT') # env: # Token: $(dn-bot-dnceng-artifact-feeds-rw) diff --git a/eng/common/templates-official/job/job.yml b/eng/common/templates-official/job/job.yml index b98f6a6505d..4cca1114fcc 100644 --- a/eng/common/templates-official/job/job.yml +++ b/eng/common/templates-official/job/job.yml @@ -38,7 +38,7 @@ parameters: # Sbom related params enableSbom: true PackageVersion: 7.0.0 - BuildDropPath: '$(Build.SourcesDirectory)/artifacts' + BuildDropPath: '$(System.DefaultWorkingDirectory)/artifacts' ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom jobs: @@ -167,7 +167,7 @@ jobs: inputs: languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }} environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'production') }} - richNavLogOutputDirectory: $(Build.SourcesDirectory)/artifacts/bin + richNavLogOutputDirectory: $(System.DefaultWorkingDirectory)/artifacts/bin uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }} continueOnError: true @@ -226,7 +226,7 @@ jobs: - task: 1ES.PublishBuildArtifacts@1 displayName: Publish Logs inputs: - PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)' + PathtoPublish: '$(System.DefaultWorkingDirectory)/artifacts/log/$(_BuildConfig)' PublishLocation: Container ArtifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }} continueOnError: true @@ -238,7 +238,7 @@ jobs: inputs: testResultsFormat: 'xUnit' testResultsFiles: '*.xml' - searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)' + searchFolder: '$(System.DefaultWorkingDirectory)/artifacts/TestResults/$(_BuildConfig)' testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-xunit mergeTestResults: ${{ parameters.mergeTestResults }} continueOnError: true @@ -249,7 +249,7 @@ jobs: inputs: testResultsFormat: 'VSTest' testResultsFiles: '*.trx' - searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)' + searchFolder: '$(System.DefaultWorkingDirectory)/artifacts/TestResults/$(_BuildConfig)' testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-trx mergeTestResults: ${{ parameters.mergeTestResults }} continueOnError: true @@ -265,7 +265,7 @@ jobs: - ${{ if eq(parameters.enableBuildRetry, 'true') }}: - task: 1ES.PublishPipelineArtifact@1 inputs: - targetPath: '$(Build.SourcesDirectory)\eng\common\BuildConfiguration' + targetPath: '$(System.DefaultWorkingDirectory)\eng\common\BuildConfiguration' artifactName: 'BuildConfiguration' displayName: 'Publish build retry configuration' continueOnError: true diff --git a/eng/common/templates-official/job/onelocbuild.yml b/eng/common/templates-official/job/onelocbuild.yml index 52b4d05d3f8..68e7a65605c 100644 --- a/eng/common/templates-official/job/onelocbuild.yml +++ b/eng/common/templates-official/job/onelocbuild.yml @@ -8,7 +8,7 @@ parameters: 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) + SourcesDirectory: $(System.DefaultWorkingDirectory) CreatePr: true AutoCompletePr: false ReusePr: true @@ -63,7 +63,7 @@ jobs: - ${{ if ne(parameters.SkipLocProjectJsonGeneration, 'true') }}: - task: Powershell@2 inputs: - filePath: $(Build.SourcesDirectory)/eng/common/generate-locproject.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/generate-locproject.ps1 arguments: $(_GenerateLocProjectArguments) displayName: Generate LocProject.json condition: ${{ parameters.condition }} @@ -106,7 +106,7 @@ jobs: - task: 1ES.PublishBuildArtifacts@1 displayName: Publish LocProject.json inputs: - PathtoPublish: '$(Build.SourcesDirectory)/eng/Localize/' + PathtoPublish: '$(System.DefaultWorkingDirectory)/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 index b2ccd9df680..7a320e9bab2 100644 --- a/eng/common/templates-official/job/publish-build-assets.yml +++ b/eng/common/templates-official/job/publish-build-assets.yml @@ -30,6 +30,8 @@ parameters: signingValidationAdditionalParameters: '' + repositoryAlias: self + jobs: - job: Asset_Registry_Publish @@ -65,6 +67,9 @@ jobs: os: windows steps: - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - checkout: ${{ parameters.repositoryAlias }} + fetchDepth: 3 + clean: true - task: DownloadBuildArtifacts@0 displayName: Download artifact inputs: @@ -82,7 +87,7 @@ jobs: azureSubscription: "Darc: Maestro Production" scriptType: ps scriptLocation: scriptPath - scriptPath: $(Build.SourcesDirectory)/eng/common/sdk-task.ps1 + scriptPath: $(System.DefaultWorkingDirectory)/eng/common/sdk-task.ps1 arguments: > -task PublishBuildAssets -restore -msbuildEngine dotnet /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests' @@ -115,7 +120,7 @@ jobs: inputs: targetType: inline script: | - $symbolExclusionfile = "$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt" + $symbolExclusionfile = "$(System.DefaultWorkingDirectory)/eng/SymbolPublishingExclusionsFile.txt" if(Test-Path -Path $symbolExclusionfile) { Write-Host "SymbolExclusionFile exists" @@ -130,7 +135,7 @@ jobs: displayName: Publish SymbolPublishingExclusionsFile Artifact condition: eq(variables['SymbolExclusionFile'], 'true') inputs: - PathtoPublish: '$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt' + PathtoPublish: '$(System.DefaultWorkingDirectory)/eng/SymbolPublishingExclusionsFile.txt' PublishLocation: Container ArtifactName: ReleaseConfigs @@ -146,7 +151,7 @@ jobs: azureSubscription: "Darc: Maestro Production" scriptType: ps scriptLocation: scriptPath - scriptPath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1 + scriptPath: $(System.DefaultWorkingDirectory)/eng/common/post-build/publish-using-darc.ps1 arguments: -BuildId $(BARBuildId) -PublishingInfraVersion 3 -AzdoToken '$(System.AccessToken)' diff --git a/eng/common/templates-official/job/source-index-stage1.yml b/eng/common/templates-official/job/source-index-stage1.yml index fb632b71a25..0579e692fc8 100644 --- a/eng/common/templates-official/job/source-index-stage1.yml +++ b/eng/common/templates-official/job/source-index-stage1.yml @@ -59,7 +59,7 @@ jobs: - 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 + - script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i $(BinlogPath) -r $(System.DefaultWorkingDirectory) -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')) }}: diff --git a/eng/common/templates-official/jobs/codeql-build.yml b/eng/common/templates-official/jobs/codeql-build.yml index b68d3c2f319..f6476912a86 100644 --- a/eng/common/templates-official/jobs/codeql-build.yml +++ b/eng/common/templates-official/jobs/codeql-build.yml @@ -23,7 +23,7 @@ jobs: - name: DefaultGuardianVersion value: 0.109.0 - name: GuardianPackagesConfigFile - value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config + value: $(System.DefaultWorkingDirectory)\eng\common\sdl\packages.config - name: GuardianVersion value: ${{ coalesce(parameters.overrideGuardianVersion, '$(DefaultGuardianVersion)') }} diff --git a/eng/common/templates-official/jobs/jobs.yml b/eng/common/templates-official/jobs/jobs.yml index 857a0f8ba43..803a95aacf4 100644 --- a/eng/common/templates-official/jobs/jobs.yml +++ b/eng/common/templates-official/jobs/jobs.yml @@ -40,6 +40,7 @@ parameters: enableSourceIndex: false sourceIndexParams: {} + repositoryAlias: self # 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. @@ -95,3 +96,4 @@ jobs: enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }} artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} signingValidationAdditionalParameters: ${{ parameters.signingValidationAdditionalParameters }} + repositoryAlias: ${{ parameters.repositoryAlias }} diff --git a/eng/common/templates-official/post-build/post-build.yml b/eng/common/templates-official/post-build/post-build.yml index b81b8770b34..9fef8103991 100644 --- a/eng/common/templates-official/post-build/post-build.yml +++ b/eng/common/templates-official/post-build/post-build.yml @@ -133,7 +133,7 @@ stages: - task: PowerShell@2 displayName: Validate inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/nuget-validation.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/nuget-validation.ps1 arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ -ToolDestinationPath $(Agent.BuildDirectory)/Extract/ @@ -186,7 +186,7 @@ stages: filePath: eng\common\sdk-task.ps1 arguments: -task SigningValidation -restore -msbuildEngine vs /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts' - /p:SignCheckExclusionsFile='$(Build.SourcesDirectory)/eng/SignCheckExclusionsFile.txt' + /p:SignCheckExclusionsFile='$(System.DefaultWorkingDirectory)/eng/SignCheckExclusionsFile.txt' ${{ parameters.signingValidationAdditionalParameters }} - template: ../steps/publish-logs.yml @@ -230,7 +230,7 @@ stages: - task: PowerShell@2 displayName: Validate inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/sourcelink-validation.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/sourcelink-validation.ps1 arguments: -InputPath $(Build.ArtifactStagingDirectory)/BlobArtifacts/ -ExtractPath $(Agent.BuildDirectory)/Extract/ -GHRepoName $(Build.Repository.Name) @@ -278,7 +278,7 @@ stages: azureSubscription: "Darc: Maestro Production" scriptType: ps scriptLocation: scriptPath - scriptPath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1 + scriptPath: $(System.DefaultWorkingDirectory)/eng/common/post-build/publish-using-darc.ps1 arguments: -BuildId $(BARBuildId) -PublishingInfraVersion ${{ parameters.publishingInfraVersion }} -AzdoToken '$(System.AccessToken)' diff --git a/eng/common/templates-official/post-build/trigger-subscription.yml b/eng/common/templates-official/post-build/trigger-subscription.yml index da669030daf..52df7077482 100644 --- a/eng/common/templates-official/post-build/trigger-subscription.yml +++ b/eng/common/templates-official/post-build/trigger-subscription.yml @@ -5,7 +5,7 @@ steps: - task: PowerShell@2 displayName: Triggering subscriptions inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/trigger-subscriptions.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/trigger-subscriptions.ps1 arguments: -SourceRepo $(Build.Repository.Uri) -ChannelId ${{ parameters.ChannelId }} -MaestroApiAccessToken $(MaestroAccessToken) diff --git a/eng/common/templates-official/steps/add-build-to-channel.yml b/eng/common/templates-official/steps/add-build-to-channel.yml index f67a210d62f..5b6fec257ea 100644 --- a/eng/common/templates-official/steps/add-build-to-channel.yml +++ b/eng/common/templates-official/steps/add-build-to-channel.yml @@ -5,7 +5,7 @@ steps: - task: PowerShell@2 displayName: Add Build to Channel inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/add-build-to-channel.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/add-build-to-channel.ps1 arguments: -BuildId $(BARBuildId) -ChannelId ${{ parameters.ChannelId }} -MaestroApiAccessToken $(MaestroApiAccessToken) diff --git a/eng/common/templates-official/steps/execute-sdl.yml b/eng/common/templates-official/steps/execute-sdl.yml index 301d5c591eb..d9dcd1e1cde 100644 --- a/eng/common/templates-official/steps/execute-sdl.yml +++ b/eng/common/templates-official/steps/execute-sdl.yml @@ -15,17 +15,17 @@ steps: - ${{ if ne(parameters.overrideGuardianVersion, '') }}: - pwsh: | - Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl + Set-Location -Path $(System.DefaultWorkingDirectory)\eng\common\sdl . .\sdl.ps1 - $guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts -Version ${{ parameters.overrideGuardianVersion }} + $guardianCliLocation = Install-Gdn -Path $(System.DefaultWorkingDirectory)\.artifacts -Version ${{ parameters.overrideGuardianVersion }} Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation" displayName: Install Guardian (Overridden) - ${{ if eq(parameters.overrideGuardianVersion, '') }}: - pwsh: | - Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl + Set-Location -Path $(System.DefaultWorkingDirectory)\eng\common\sdl . .\sdl.ps1 - $guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts + $guardianCliLocation = Install-Gdn -Path $(System.DefaultWorkingDirectory)\.artifacts Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation" displayName: Install Guardian @@ -38,7 +38,7 @@ steps: - ${{ if eq(parameters.overrideParameters, '') }}: - powershell: ${{ parameters.executeAllSdlToolsScript }} -GuardianCliLocation $(GuardianCliLocation) - -NugetPackageDirectory $(Build.SourcesDirectory)\.packages + -NugetPackageDirectory $(System.DefaultWorkingDirectory)\.packages -AzureDevOpsAccessToken $(dn-bot-dotnet-build-rw-code-rw) ${{ parameters.additionalParameters }} displayName: Execute SDL @@ -73,7 +73,7 @@ steps: flattenFolders: true sourceFolder: $(Agent.BuildDirectory)/.gdn/rc/ contents: '**/*.sarif' - targetFolder: $(Build.SourcesDirectory)/CodeAnalysisLogs + targetFolder: $(System.DefaultWorkingDirectory)/CodeAnalysisLogs condition: succeededOrFailed() # Use PublishBuildArtifacts because the SARIF extension only checks this case @@ -81,6 +81,6 @@ steps: - task: PublishBuildArtifacts@1 displayName: Publish SARIF files to CodeAnalysisLogs container inputs: - pathToPublish: $(Build.SourcesDirectory)/CodeAnalysisLogs + pathToPublish: $(System.DefaultWorkingDirectory)/CodeAnalysisLogs artifactName: CodeAnalysisLogs condition: succeededOrFailed() \ 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 index daf0957b68d..1536353566c 100644 --- a/eng/common/templates-official/steps/generate-sbom.yml +++ b/eng/common/templates-official/steps/generate-sbom.yml @@ -6,7 +6,7 @@ parameters: PackageVersion: 8.0.0 - BuildDropPath: '$(Build.SourcesDirectory)/artifacts' + BuildDropPath: '$(System.DefaultWorkingDirectory)/artifacts' PackageName: '.NET' ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom IgnoreDirectories: '' diff --git a/eng/common/templates-official/steps/publish-logs.yml b/eng/common/templates-official/steps/publish-logs.yml index 04012fed182..af5a40b64c4 100644 --- a/eng/common/templates-official/steps/publish-logs.yml +++ b/eng/common/templates-official/steps/publish-logs.yml @@ -8,15 +8,15 @@ steps: 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}}/ + New-Item -ItemType Directory $(System.DefaultWorkingDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/ + Move-Item -Path $(System.DefaultWorkingDirectory)/artifacts/log/Debug/* $(System.DefaultWorkingDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/ continueOnError: true condition: always() - task: 1ES.PublishBuildArtifacts@1 displayName: Publish Logs inputs: - PathtoPublish: '$(Build.SourcesDirectory)/PostBuildLogs' + PathtoPublish: '$(System.DefaultWorkingDirectory)/PostBuildLogs' PublishLocation: Container ArtifactName: PostBuildLogs continueOnError: true diff --git a/eng/common/templates-official/steps/source-build.yml b/eng/common/templates-official/steps/source-build.yml index 829f17c34d1..a69631446da 100644 --- a/eng/common/templates-official/steps/source-build.yml +++ b/eng/common/templates-official/steps/source-build.yml @@ -26,8 +26,8 @@ steps: 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) + chmod +x $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.sh + $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.sh $(System.DefaultWorkingDirectory)/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. @@ -101,7 +101,7 @@ steps: - task: CopyFiles@2 displayName: Prepare BuildLogs staging directory inputs: - SourceFolder: '$(Build.SourcesDirectory)' + SourceFolder: '$(System.DefaultWorkingDirectory)' Contents: | **/*.log **/*.binlog @@ -126,4 +126,4 @@ steps: - task: ComponentGovernanceComponentDetection@0 displayName: Component Detection (Exclude upstream cache) inputs: - ignoreDirectories: '$(Build.SourcesDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache' + ignoreDirectories: '$(System.DefaultWorkingDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache' diff --git a/eng/common/templates-official/variables/sdl-variables.yml b/eng/common/templates-official/variables/sdl-variables.yml index dbdd66d4a4b..f1311bbb1b3 100644 --- a/eng/common/templates-official/variables/sdl-variables.yml +++ b/eng/common/templates-official/variables/sdl-variables.yml @@ -4,4 +4,4 @@ variables: - name: DefaultGuardianVersion value: 0.109.0 - name: GuardianPackagesConfigFile - value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config \ No newline at end of file + value: $(System.DefaultWorkingDirectory)\eng\common\sdl\packages.config \ No newline at end of file diff --git a/eng/common/templates/job/job.yml b/eng/common/templates/job/job.yml index 2856f7de106..80454d5a558 100644 --- a/eng/common/templates/job/job.yml +++ b/eng/common/templates/job/job.yml @@ -37,7 +37,7 @@ parameters: # Sbom related params enableSbom: true PackageVersion: 7.0.0 - BuildDropPath: '$(Build.SourcesDirectory)/artifacts' + BuildDropPath: '$(System.DefaultWorkingDirectory)/artifacts' jobs: - job: ${{ parameters.name }} @@ -163,7 +163,7 @@ jobs: inputs: languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }} environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'production') }} - richNavLogOutputDirectory: $(Build.SourcesDirectory)/artifacts/bin + richNavLogOutputDirectory: $(System.DefaultWorkingDirectory)/artifacts/bin uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }} continueOnError: true @@ -220,7 +220,7 @@ jobs: - task: PublishBuildArtifacts@1 displayName: Publish Logs inputs: - PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)' + PathtoPublish: '$(System.DefaultWorkingDirectory)/artifacts/log/$(_BuildConfig)' PublishLocation: Container ArtifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }} continueOnError: true @@ -232,7 +232,7 @@ jobs: inputs: testResultsFormat: 'xUnit' testResultsFiles: '*.xml' - searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)' + searchFolder: '$(System.DefaultWorkingDirectory)/artifacts/TestResults/$(_BuildConfig)' testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-xunit mergeTestResults: ${{ parameters.mergeTestResults }} continueOnError: true @@ -243,7 +243,7 @@ jobs: inputs: testResultsFormat: 'VSTest' testResultsFiles: '*.trx' - searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)' + searchFolder: '$(System.DefaultWorkingDirectory)/artifacts/TestResults/$(_BuildConfig)' testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-trx mergeTestResults: ${{ parameters.mergeTestResults }} continueOnError: true @@ -257,7 +257,7 @@ jobs: IgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }} - ${{ if eq(parameters.enableBuildRetry, 'true') }}: - - publish: $(Build.SourcesDirectory)\eng\common\BuildConfiguration + - publish: $(System.DefaultWorkingDirectory)\eng\common\BuildConfiguration artifact: BuildConfiguration displayName: Publish build retry configuration continueOnError: true diff --git a/eng/common/templates/job/onelocbuild.yml b/eng/common/templates/job/onelocbuild.yml index 60ab00c4de3..2cd3840c992 100644 --- a/eng/common/templates/job/onelocbuild.yml +++ b/eng/common/templates/job/onelocbuild.yml @@ -8,7 +8,7 @@ parameters: 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) + SourcesDirectory: $(System.DefaultWorkingDirectory) CreatePr: true AutoCompletePr: false ReusePr: true @@ -60,7 +60,7 @@ jobs: - ${{ if ne(parameters.SkipLocProjectJsonGeneration, 'true') }}: - task: Powershell@2 inputs: - filePath: $(Build.SourcesDirectory)/eng/common/generate-locproject.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/generate-locproject.ps1 arguments: $(_GenerateLocProjectArguments) displayName: Generate LocProject.json condition: ${{ parameters.condition }} @@ -103,7 +103,7 @@ jobs: - task: PublishBuildArtifacts@1 displayName: Publish LocProject.json inputs: - PathtoPublish: '$(Build.SourcesDirectory)/eng/Localize/' + PathtoPublish: '$(System.DefaultWorkingDirectory)/eng/Localize/' PublishLocation: Container ArtifactName: Loc condition: ${{ parameters.condition }} \ No newline at end of file diff --git a/eng/common/templates/job/publish-build-assets.yml b/eng/common/templates/job/publish-build-assets.yml index cc2b346ba8b..2956d8117f7 100644 --- a/eng/common/templates/job/publish-build-assets.yml +++ b/eng/common/templates/job/publish-build-assets.yml @@ -30,6 +30,8 @@ parameters: signingValidationAdditionalParameters: '' + repositoryAlias: self + jobs: - job: Asset_Registry_Publish @@ -63,6 +65,9 @@ jobs: steps: - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + - checkout: ${{ parameters.repositoryAlias }} + fetchDepth: 3 + clean: true - task: DownloadBuildArtifacts@0 displayName: Download artifact inputs: @@ -80,7 +85,7 @@ jobs: azureSubscription: "Darc: Maestro Production" scriptType: ps scriptLocation: scriptPath - scriptPath: $(Build.SourcesDirectory)/eng/common/sdk-task.ps1 + scriptPath: $(System.DefaultWorkingDirectory)/eng/common/sdk-task.ps1 arguments: > -task PublishBuildAssets -restore -msbuildEngine dotnet /p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests' @@ -111,7 +116,7 @@ jobs: inputs: targetType: inline script: | - $symbolExclusionfile = "$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt" + $symbolExclusionfile = "$(System.DefaultWorkingDirectory)/eng/SymbolPublishingExclusionsFile.txt" if(Test-Path -Path $symbolExclusionfile) { Write-Host "SymbolExclusionFile exists" @@ -126,7 +131,7 @@ jobs: displayName: Publish SymbolPublishingExclusionsFile Artifact condition: eq(variables['SymbolExclusionFile'], 'true') inputs: - PathtoPublish: '$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt' + PathtoPublish: '$(System.DefaultWorkingDirectory)/eng/SymbolPublishingExclusionsFile.txt' PublishLocation: Container ArtifactName: ReleaseConfigs @@ -142,7 +147,7 @@ jobs: azureSubscription: "Darc: Maestro Production" scriptType: ps scriptLocation: scriptPath - scriptPath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1 + scriptPath: $(System.DefaultWorkingDirectory)/eng/common/post-build/publish-using-darc.ps1 arguments: -BuildId $(BARBuildId) -PublishingInfraVersion 3 -AzdoToken '$(System.AccessToken)' diff --git a/eng/common/templates/job/source-index-stage1.yml b/eng/common/templates/job/source-index-stage1.yml index 8538f44bab2..81606fd9a54 100644 --- a/eng/common/templates/job/source-index-stage1.yml +++ b/eng/common/templates/job/source-index-stage1.yml @@ -58,7 +58,7 @@ jobs: - 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 + - script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i $(BinlogPath) -r $(System.DefaultWorkingDirectory) -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')) }}: diff --git a/eng/common/templates/jobs/codeql-build.yml b/eng/common/templates/jobs/codeql-build.yml index f7dc5ea4aaa..e8b43e3b4cb 100644 --- a/eng/common/templates/jobs/codeql-build.yml +++ b/eng/common/templates/jobs/codeql-build.yml @@ -23,7 +23,7 @@ jobs: - name: DefaultGuardianVersion value: 0.109.0 - name: GuardianPackagesConfigFile - value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config + value: $(System.DefaultWorkingDirectory)\eng\common\sdl\packages.config - name: GuardianVersion value: ${{ coalesce(parameters.overrideGuardianVersion, '$(DefaultGuardianVersion)') }} diff --git a/eng/common/templates/jobs/jobs.yml b/eng/common/templates/jobs/jobs.yml index 289bb2396ce..34387a8c7ac 100644 --- a/eng/common/templates/jobs/jobs.yml +++ b/eng/common/templates/jobs/jobs.yml @@ -40,6 +40,7 @@ parameters: enableSourceIndex: false sourceIndexParams: {} + repositoryAlias: self # 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. @@ -95,3 +96,4 @@ jobs: enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }} artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} signingValidationAdditionalParameters: ${{ parameters.signingValidationAdditionalParameters }} + repositoryAlias: ${{ parameters.repositoryAlias }} diff --git a/eng/common/templates/post-build/post-build.yml b/eng/common/templates/post-build/post-build.yml index c3b6a3012fe..6e5722dc2e1 100644 --- a/eng/common/templates/post-build/post-build.yml +++ b/eng/common/templates/post-build/post-build.yml @@ -130,7 +130,7 @@ stages: - task: PowerShell@2 displayName: Validate inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/nuget-validation.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/nuget-validation.ps1 arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ -ToolDestinationPath $(Agent.BuildDirectory)/Extract/ @@ -180,7 +180,7 @@ stages: filePath: eng\common\sdk-task.ps1 arguments: -task SigningValidation -restore -msbuildEngine vs /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts' - /p:SignCheckExclusionsFile='$(Build.SourcesDirectory)/eng/SignCheckExclusionsFile.txt' + /p:SignCheckExclusionsFile='$(System.DefaultWorkingDirectory)/eng/SignCheckExclusionsFile.txt' ${{ parameters.signingValidationAdditionalParameters }} - template: ../steps/publish-logs.yml @@ -220,7 +220,7 @@ stages: - task: PowerShell@2 displayName: Validate inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/sourcelink-validation.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/sourcelink-validation.ps1 arguments: -InputPath $(Build.ArtifactStagingDirectory)/BlobArtifacts/ -ExtractPath $(Agent.BuildDirectory)/Extract/ -GHRepoName $(Build.Repository.Name) @@ -274,7 +274,7 @@ stages: azureSubscription: "Darc: Maestro Production" scriptType: ps scriptLocation: scriptPath - scriptPath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1 + scriptPath: $(System.DefaultWorkingDirectory)/eng/common/post-build/publish-using-darc.ps1 arguments: -BuildId $(BARBuildId) -PublishingInfraVersion ${{ parameters.publishingInfraVersion }} -AzdoToken '$(System.AccessToken)' diff --git a/eng/common/templates/post-build/setup-maestro-vars.yml b/eng/common/templates/post-build/setup-maestro-vars.yml index 64b9abc6850..4347fa80b68 100644 --- a/eng/common/templates/post-build/setup-maestro-vars.yml +++ b/eng/common/templates/post-build/setup-maestro-vars.yml @@ -32,7 +32,7 @@ steps: $AzureDevOpsBuildId = $Env:Build_BuildId } else { - . $(Build.SourcesDirectory)\eng\common\tools.ps1 + . $(System.DefaultWorkingDirectory)\eng\common\tools.ps1 $darc = Get-Darc $buildInfo = & $darc get-build ` --id ${{ parameters.BARBuildId }} ` diff --git a/eng/common/templates/post-build/trigger-subscription.yml b/eng/common/templates/post-build/trigger-subscription.yml index da669030daf..52df7077482 100644 --- a/eng/common/templates/post-build/trigger-subscription.yml +++ b/eng/common/templates/post-build/trigger-subscription.yml @@ -5,7 +5,7 @@ steps: - task: PowerShell@2 displayName: Triggering subscriptions inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/trigger-subscriptions.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/trigger-subscriptions.ps1 arguments: -SourceRepo $(Build.Repository.Uri) -ChannelId ${{ parameters.ChannelId }} -MaestroApiAccessToken $(MaestroAccessToken) diff --git a/eng/common/templates/steps/add-build-to-channel.yml b/eng/common/templates/steps/add-build-to-channel.yml index f67a210d62f..5b6fec257ea 100644 --- a/eng/common/templates/steps/add-build-to-channel.yml +++ b/eng/common/templates/steps/add-build-to-channel.yml @@ -5,7 +5,7 @@ steps: - task: PowerShell@2 displayName: Add Build to Channel inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/add-build-to-channel.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/add-build-to-channel.ps1 arguments: -BuildId $(BARBuildId) -ChannelId ${{ parameters.ChannelId }} -MaestroApiAccessToken $(MaestroApiAccessToken) diff --git a/eng/common/templates/steps/execute-sdl.yml b/eng/common/templates/steps/execute-sdl.yml index fe0ebf8c904..047e8281ebc 100644 --- a/eng/common/templates/steps/execute-sdl.yml +++ b/eng/common/templates/steps/execute-sdl.yml @@ -15,17 +15,17 @@ steps: - ${{ if ne(parameters.overrideGuardianVersion, '') }}: - pwsh: | - Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl + Set-Location -Path $(System.DefaultWorkingDirectory)\eng\common\sdl . .\sdl.ps1 - $guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts -Version ${{ parameters.overrideGuardianVersion }} + $guardianCliLocation = Install-Gdn -Path $(System.DefaultWorkingDirectory)\.artifacts -Version ${{ parameters.overrideGuardianVersion }} Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation" displayName: Install Guardian (Overridden) - ${{ if eq(parameters.overrideGuardianVersion, '') }}: - pwsh: | - Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl + Set-Location -Path $(System.DefaultWorkingDirectory)\eng\common\sdl . .\sdl.ps1 - $guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts + $guardianCliLocation = Install-Gdn -Path $(System.DefaultWorkingDirectory)\.artifacts Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation" displayName: Install Guardian @@ -40,7 +40,7 @@ steps: - ${{ if eq(parameters.overrideParameters, '') }}: - powershell: ${{ parameters.executeAllSdlToolsScript }} -GuardianCliLocation $(GuardianCliLocation) - -NugetPackageDirectory $(Build.SourcesDirectory)\.packages + -NugetPackageDirectory $(System.DefaultWorkingDirectory)\.packages ${{ parameters.additionalParameters }} displayName: Execute SDL continueOnError: ${{ parameters.sdlContinueOnError }} @@ -76,7 +76,7 @@ steps: flattenFolders: true sourceFolder: $(Agent.BuildDirectory)/.gdn/rc/ contents: '**/*.sarif' - targetFolder: $(Build.SourcesDirectory)/CodeAnalysisLogs + targetFolder: $(System.DefaultWorkingDirectory)/CodeAnalysisLogs condition: succeededOrFailed() # Use PublishBuildArtifacts because the SARIF extension only checks this case @@ -84,6 +84,6 @@ steps: - task: PublishBuildArtifacts@1 displayName: Publish SARIF files to CodeAnalysisLogs container inputs: - pathToPublish: $(Build.SourcesDirectory)/CodeAnalysisLogs + pathToPublish: $(System.DefaultWorkingDirectory)/CodeAnalysisLogs artifactName: CodeAnalysisLogs condition: succeededOrFailed() \ No newline at end of file diff --git a/eng/common/templates/steps/generate-sbom.yml b/eng/common/templates/steps/generate-sbom.yml index 2b21eae4273..b1fe8b3944b 100644 --- a/eng/common/templates/steps/generate-sbom.yml +++ b/eng/common/templates/steps/generate-sbom.yml @@ -6,7 +6,7 @@ parameters: PackageVersion: 8.0.0 - BuildDropPath: '$(Build.SourcesDirectory)/artifacts' + BuildDropPath: '$(System.DefaultWorkingDirectory)/artifacts' PackageName: '.NET' ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom IgnoreDirectories: '' diff --git a/eng/common/templates/steps/publish-logs.yml b/eng/common/templates/steps/publish-logs.yml index 88f238f36bf..e2f8413d8e1 100644 --- a/eng/common/templates/steps/publish-logs.yml +++ b/eng/common/templates/steps/publish-logs.yml @@ -8,15 +8,15 @@ steps: 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}}/ + New-Item -ItemType Directory $(System.DefaultWorkingDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/ + Move-Item -Path $(System.DefaultWorkingDirectory)/artifacts/log/Debug/* $(System.DefaultWorkingDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/ continueOnError: true condition: always() - task: PublishBuildArtifacts@1 displayName: Publish Logs inputs: - PathtoPublish: '$(Build.SourcesDirectory)/PostBuildLogs' + PathtoPublish: '$(System.DefaultWorkingDirectory)/PostBuildLogs' PublishLocation: Container ArtifactName: PostBuildLogs continueOnError: true diff --git a/eng/common/templates/steps/source-build.yml b/eng/common/templates/steps/source-build.yml index 41bbb915736..4fb5643e5de 100644 --- a/eng/common/templates/steps/source-build.yml +++ b/eng/common/templates/steps/source-build.yml @@ -26,8 +26,8 @@ steps: 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) + chmod +x $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.sh + $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.sh $(System.DefaultWorkingDirectory)/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. @@ -101,7 +101,7 @@ steps: - task: CopyFiles@2 displayName: Prepare BuildLogs staging directory inputs: - SourceFolder: '$(Build.SourcesDirectory)' + SourceFolder: '$(System.DefaultWorkingDirectory)' Contents: | **/*.log **/*.binlog @@ -126,4 +126,4 @@ steps: - task: ComponentGovernanceComponentDetection@0 displayName: Component Detection (Exclude upstream cache) inputs: - ignoreDirectories: '$(Build.SourcesDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache' + ignoreDirectories: '$(System.DefaultWorkingDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache' diff --git a/eng/common/templates/variables/sdl-variables.yml b/eng/common/templates/variables/sdl-variables.yml index dbdd66d4a4b..f1311bbb1b3 100644 --- a/eng/common/templates/variables/sdl-variables.yml +++ b/eng/common/templates/variables/sdl-variables.yml @@ -4,4 +4,4 @@ variables: - name: DefaultGuardianVersion value: 0.109.0 - name: GuardianPackagesConfigFile - value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config \ No newline at end of file + value: $(System.DefaultWorkingDirectory)\eng\common\sdl\packages.config \ No newline at end of file diff --git a/global.json b/global.json index a20ad1f06e1..3150de16fe0 100644 --- a/global.json +++ b/global.json @@ -10,6 +10,6 @@ "xcopy-msbuild": "17.8.5" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25407.1" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25415.2" } } From 7c8cc52b8c88ee13ed9f268d655e51c458cfe3e5 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 26 Aug 2025 09:48:31 +0700 Subject: [PATCH 17/23] [vs17.8] Update dependencies from dotnet/arcade (#12407) This pull request updates the following dependencies [marker]: <> (Begin:5f9c9524-456b-43ca-a978-063daaf53c38) ## From https://github.com/dotnet/arcade - **Subscription**: [5f9c9524-456b-43ca-a978-063daaf53c38](https://maestro.dot.net/subscriptions?search=5f9c9524-456b-43ca-a978-063daaf53c38) - **Build**: [20250822.2](https://dev.azure.com/dnceng/internal/_build/results?buildId=2777854) - **Date Produced**: August 22, 2025 10:29:07 AM UTC - **Commit**: [3e8ada7bce86d4218abd6d9a40daadddabdf16c9](https://github.com/dotnet/arcade/commit/3e8ada7bce86d4218abd6d9a40daadddabdf16c9) - **Branch**: [release/8.0](https://github.com/dotnet/arcade/tree/release/8.0) [DependencyUpdate]: <> (Begin) - **Updates**: - From [8.0.0-beta.25415.2 to 8.0.0-beta.25422.2][1] - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.XUnitExtensions [1]: https://github.com/dotnet/arcade/compare/2f70e458e0...3e8ada7bce [DependencyUpdate]: <> (End) - **Updates to .NET SDKs:** - Updates tools.dotnet to 8.0.119 [marker]: <> (End:5f9c9524-456b-43ca-a978-063daaf53c38) --------- Co-authored-by: dotnet-maestro[bot] Co-authored-by: Gang Wang --- eng/Version.Details.xml | 8 ++++---- eng/Versions.props | 4 ++-- global.json | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8030f0ebfc8..72c27f93ee1 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -58,9 +58,9 @@ - + https://github.com/dotnet/arcade - 2f70e458e03e348a3a1f3fd6b9b70b4fcd5ba596 + 3e8ada7bce86d4218abd6d9a40daadddabdf16c9 @@ -77,9 +77,9 @@ dc3d0694a4b31b8e27038431888cd4e8dd5b6cb6 - + https://github.com/dotnet/arcade - 2f70e458e03e348a3a1f3fd6b9b70b4fcd5ba596 + 3e8ada7bce86d4218abd6d9a40daadddabdf16c9 diff --git a/eng/Versions.props b/eng/Versions.props index 963e8f545d3..3518e31f80f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.8.37 + 17.8.38 release 17.7.0 15.1.0.0 @@ -48,7 +48,7 @@ Otherwise, this version of dotnet will not be installed and the build will error out. --> $([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\global.json')), '"dotnet": "([^"]*)"').Groups.get_Item(1)) 4.2.0-1.22102.8 - 8.0.0-beta.25415.2 + 8.0.0-beta.25422.2 7.0.0 6.0.0 4.8.0-3.23465.5 diff --git a/global.json b/global.json index 3150de16fe0..2ca692160b8 100644 --- a/global.json +++ b/global.json @@ -10,6 +10,6 @@ "xcopy-msbuild": "17.8.5" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25415.2" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25422.2" } } From 2560456f67197dad40c67f712d7d959ecfd61779 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 26 Aug 2025 11:03:43 +0200 Subject: [PATCH 18/23] [vs17.10] Update dependencies from dotnet/arcade (#12411) This pull request updates the following dependencies [marker]: <> (Begin:42961865-e7dd-40be-a923-7af2e4664f80) ## From https://github.com/dotnet/arcade - **Subscription**: [42961865-e7dd-40be-a923-7af2e4664f80](https://maestro.dot.net/subscriptions?search=42961865-e7dd-40be-a923-7af2e4664f80) - **Build**: [20250822.2](https://dev.azure.com/dnceng/internal/_build/results?buildId=2777854) - **Date Produced**: August 22, 2025 10:29:07 AM UTC - **Commit**: [3e8ada7bce86d4218abd6d9a40daadddabdf16c9](https://github.com/dotnet/arcade/commit/3e8ada7bce86d4218abd6d9a40daadddabdf16c9) - **Branch**: [release/8.0](https://github.com/dotnet/arcade/tree/release/8.0) [DependencyUpdate]: <> (Begin) - **Updates**: - From [8.0.0-beta.25415.2 to 8.0.0-beta.25422.2][1] - Microsoft.SourceBuild.Intermediate.arcade - Microsoft.DotNet.Arcade.Sdk - Microsoft.DotNet.XUnitExtensions [1]: https://github.com/dotnet/arcade/compare/2f70e458e0...3e8ada7bce [DependencyUpdate]: <> (End) [marker]: <> (End:42961865-e7dd-40be-a923-7af2e4664f80) --------- Co-authored-by: dotnet-maestro[bot] Co-authored-by: Gang Wang --- eng/Version.Details.xml | 12 ++++++------ eng/Versions.props | 4 ++-- global.json | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4b960c6a573..7075e525967 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -67,14 +67,14 @@ - + https://github.com/dotnet/arcade - 2f70e458e03e348a3a1f3fd6b9b70b4fcd5ba596 + 3e8ada7bce86d4218abd6d9a40daadddabdf16c9 - + https://github.com/dotnet/arcade - 2f70e458e03e348a3a1f3fd6b9b70b4fcd5ba596 + 3e8ada7bce86d4218abd6d9a40daadddabdf16c9 @@ -96,9 +96,9 @@ 919d4dbfb0dffb35a702417e28ceea652d248bc6 - + https://github.com/dotnet/arcade - 2f70e458e03e348a3a1f3fd6b9b70b4fcd5ba596 + 3e8ada7bce86d4218abd6d9a40daadddabdf16c9 diff --git a/eng/Versions.props b/eng/Versions.props index 8b5f03d8623..89b4c4cb318 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.10.40 + 17.10.41 release 17.8.3 15.1.0.0 @@ -49,7 +49,7 @@ Otherwise, this version of dotnet will not be installed and the build will error out. --> $([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\global.json')), '"dotnet": "([^"]*)"').Groups.get_Item(1)) 4.2.0-1.22102.8 - 8.0.0-beta.25415.2 + 8.0.0-beta.25422.2 7.0.0 6.0.0 4.10.0-3.24175.2 diff --git a/global.json b/global.json index 09f9524b68c..8c93ace3dfa 100644 --- a/global.json +++ b/global.json @@ -10,6 +10,6 @@ "xcopy-msbuild": "17.8.5" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25415.2" + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.25422.2" } } From 897f086a63516e991168b5e795269f9960969e05 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 27 Aug 2025 16:34:20 +0200 Subject: [PATCH 19/23] [automated] Merge branch 'vs16.11' => 'vs17.8' (#12437) --- .github/CODEOWNERS | 15 + .vsts-dotnet.yml | 291 +++--------------- azure-pipelines/.vsts-dotnet-build-jobs.yml | 237 ++++++++++++++ azure-pipelines/.vsts-dotnet-exp-perf.yml | 82 +++++ azure-pipelines/vs-insertion-experimental.yml | 26 +- eng/Versions.props | 2 +- eng/cibuild_bootstrapped_msbuild.sh | 4 +- eng/common/cross/build-rootfs.sh | 0 eng/common/post-build/nuget-validation.ps1 | 2 +- eng/common/tools.sh | 0 src/Build.UnitTests/BackEnd/MSBuild_Tests.cs | 60 ++-- src/Build/Microsoft.Build.csproj | 2 +- 12 files changed, 426 insertions(+), 295 deletions(-) create mode 100644 .github/CODEOWNERS create mode 100644 azure-pipelines/.vsts-dotnet-build-jobs.yml create mode 100644 azure-pipelines/.vsts-dotnet-exp-perf.yml mode change 100755 => 100644 eng/common/cross/build-rootfs.sh mode change 100755 => 100644 eng/common/tools.sh diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000000..95d4f719323 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,15 @@ +# Users referenced in this file will automatically be requested as reviewers for PRs that modify the given paths. +# See https://help.github.com/articles/about-code-owners/ + +/eng/DotNetBuild.props @dotnet/product-construction +/eng/SourceBuild* @dotnet/source-build +/eng/ @dotnet/kitten +/.github/ @dotnet/kitten +/global.json @dotnet/kitten +/.exp-insertions.yml @dotnet/kitten +/.opt-prof.yml @dotnet/kitten +/.vsts-dotnet-ci.yml @dotnet/kitten +/.vsts-dotnet.yml @dotnet/kitten +/NuGet.config @dotnet/kitten +/Directory.Build* @dotnet/kitten +/.git* @dotnet/kitten \ No newline at end of file diff --git a/.vsts-dotnet.yml b/.vsts-dotnet.yml index e7abdfc749d..852eb5ab0dd 100644 --- a/.vsts-dotnet.yml +++ b/.vsts-dotnet.yml @@ -1,7 +1,6 @@ trigger: - main - vs* -- exp/* # If defined here, these values are not overrideable # Once they exist, we should define these as "runtime parameters" @@ -15,6 +14,10 @@ parameters: displayName: Optional OptProfDrop Override type: string default: 'default' +- name: enableSigningValidation + displayName: Enable Signing Validation + type: boolean + default: true variables: # if OptProfDrop is not set, string '$(OptProfDrop)' will be passed to the build script. @@ -29,7 +32,7 @@ variables: # if OptProfDropName is set as a parameter, set OptProfDrop to the parameter and unset SourceBranch - ${{ if ne(parameters.OptProfDropName, 'default') }}: - name: OptProfDrop - value: ${{parameters.OptProfDropName}} + value: ${{ parameters.OptProfDropName }} - name: SourceBranch value: '' - name: _DotNetArtifactsCategory @@ -65,267 +68,49 @@ extends: enabled: false stages: + - ${{ if or(startsWith(variables['Build.SourceBranch'], 'refs/heads/vs'), eq(variables['Build.SourceBranch'], 'refs/heads/main')) }}: + - stage: localization + displayName: Localization + jobs: + # The localization setup for release/ branches. Note difference in LclPackageId. main branch is handled separately below. + # Used for vs17.2, vs17.4, vs17.6 etc. branches only. + # When the branch is setup for localization (the localization ticket needs to be created - https://aka.ms/ceChangeLocConfig, requesting change from one release branch to another), + # set 'EnableReleaseOneLocBuild' to true. + - ${{ if startsWith(variables['Build.SourceBranch'], 'refs/heads/vs') }}: + - template: /eng/common/templates-official/job/onelocbuild.yml@self + parameters: + MirrorRepo: 'msbuild' + LclSource: lclFilesfromPackage + LclPackageId: 'LCL-JUNO-PROD-MSBUILDREL' + MirrorBranch: ${{ replace(variables['Build.SourceBranch'], 'refs/heads/', '') }} + JobNameSuffix: '_release' + condition: ${{ variables.EnableReleaseOneLocBuild }} + # The localization setup for main branch. Note difference in package ID. Should not be used with release/ branches. + - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}: + - template: /eng/common/templates-official/job/onelocbuild.yml@self + parameters: + MirrorRepo: 'msbuild' + LclSource: lclFilesfromPackage + LclPackageId: 'LCL-JUNO-PROD-MSBUILD' + MirrorBranch: 'main' + JobNameSuffix: '_main' + condition: eq(variables['Build.SourceBranch'], 'refs/heads/main') + - stage: build displayName: Build - jobs: - # The localization setup for release/ branches. Note difference in LclPackageId. main branch is handled separately below. - # Used for vs17.2, vs17.4, vs17.6 etc. branches only. - # When the branch is setup for localization (the localization ticket needs to be created - https://aka.ms/ceChangeLocConfig, requesting change from one release branch to another), - # set 'EnableReleaseOneLocBuild' to true. - - ${{ if startsWith(variables['Build.SourceBranch'], 'refs/heads/vs') }}: - - template: /eng/common/templates-official/job/onelocbuild.yml@self - parameters: - MirrorRepo: 'msbuild' - LclSource: lclFilesfromPackage - LclPackageId: 'LCL-JUNO-PROD-MSBUILDREL' - MirrorBranch: ${{ replace(variables['Build.SourceBranch'], 'refs/heads/', '') }} - JobNameSuffix: '_release' - condition: ${{ variables.EnableReleaseOneLocBuild }} - # The localization setup for main branch. Note difference in package ID. Should not be used with release/ branches. - - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}: - - template: /eng/common/templates-official/job/onelocbuild.yml@self - parameters: - MirrorRepo: 'msbuild' - LclSource: lclFilesfromPackage - LclPackageId: 'LCL-JUNO-PROD-MSBUILD' - MirrorBranch: 'main' - JobNameSuffix: '_main' - condition: eq(variables['Build.SourceBranch'], 'refs/heads/main') - - - job: Windows_NT - pool: - name: VSEngSS-MicroBuild2022-1ES - demands: - - agent.os -equals Windows_NT - - timeoutInMinutes: 180 - - variables: - - group: DotNet-Blob-Feed - - group: DotNet-Symbol-Publish - - group: Publish-Build-Assets - - name: TeamName - value: MSBuild - - name: VisualStudio.MajorVersion - value: 17 - - name: VisualStudio.ChannelName - value: 'int.d17.8' # MSBuild's vs17.8 branch corresponds to this VS channel - - name: VisualStudio.DropName - value: Products/$(System.TeamProject)/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildNumber) - - steps: - - task: NuGetToolInstaller@1 - displayName: 'Install NuGet.exe' - - pwsh: Get-MpComputerStatus - - - pwsh: Set-MpPreference -DisableRealtimeMonitoring $true - - - task: NuGetCommand@2 - displayName: Restore internal tools - inputs: - command: restore - feedsToUse: config - restoreSolution: 'eng\common\internal\Tools.csproj' - nugetConfigPath: 'eng\common\internal\NuGet.config' - restoreDirectory: '$(Build.SourcesDirectory)\.packages' - - - task: ms-vseng.MicroBuildTasks.30666190-6959-11e5-9f96-f56098202fef.MicroBuildSigningPlugin@1 - inputs: - signType: $(SignType) - zipSources: false - condition: and(succeeded(), in(variables['SignType'], 'test', 'real')) - - - task: MicroBuildOptProfPlugin@6 - inputs: - ProfilingInputsDropName: '$(VisualStudio.DropName)' - ShouldSkipOptimize: true - AccessToken: '$(System.AccessToken)' - feedSource: 'https://devdiv.pkgs.visualstudio.com/DefaultCollection/_packaging/MicroBuildToolset/nuget/v3/index.json' - displayName: 'Install OptProf Plugin' - - # Required by MicroBuildBuildVSBootstrapper - - task: MicroBuildSwixPlugin@4 - inputs: - dropName: $(VisualStudio.DropName) - - - script: eng/CIBuild.cmd - -configuration $(BuildConfiguration) - -officialBuildId $(Build.BuildNumber) - -officialSkipApplyOptimizationData $(SkipApplyOptimizationData) - /p:RepositoryName=$(Build.Repository.Name) - /p:VisualStudioIbcSourceBranchName=$(SourceBranch) - /p:VisualStudioDropAccessToken=$(System.AccessToken) - /p:VisualStudioDropName=$(VisualStudio.DropName) - /p:DotNetSignType=$(SignType) - /p:DotNetPublishToBlobFeed=true - /p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1) - /p:DotNetPublishBlobFeedUrl=https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json - /p:PublishToSymbolServer=true - /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat) - /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat) - /p:TeamName=MSBuild - /p:DotNetPublishUsingPipelines=true - /p:VisualStudioIbcDrop=$(OptProfDrop) - /p:GenerateSbom=true - /p:SuppressFinalPackageVersion=$(IsExperimental) - displayName: Build - condition: succeeded() - - # Required by Microsoft policy - - template: eng\common\templates-official\steps\generate-sbom.yml@self - - # Publish OptProf configuration files - - task: 1ES.PublishArtifactsDrop@1 - inputs: - dropServiceURI: 'https://devdiv.artifacts.visualstudio.com' - buildNumber: 'ProfilingInputs/DevDiv/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildNumber)' - sourcePath: '$(Build.SourcesDirectory)\artifacts\OptProf\$(BuildConfiguration)\Data' - toLowerCase: false - usePat: true - displayName: 'OptProf - Publish to Artifact Services - ProfilingInputs' - condition: succeeded() - - # Build VS bootstrapper - # Generates $(Build.StagingDirectory)\MicroBuild\Output\BootstrapperInfo.json - - task: MicroBuildBuildVSBootstrapper@3 - inputs: - vsMajorVersion: $(VisualStudio.MajorVersion) - channelName: $(VisualStudio.ChannelName) - manifests: $(VisualStudio.SetupManifestList) - outputFolder: '$(Build.SourcesDirectory)\artifacts\VSSetup\$(BuildConfiguration)\Insertion' - bootstrapperCoreVersion: - displayName: 'OptProf - Build VS bootstrapper' - condition: succeeded() - - # Publish run settings - - task: PowerShell@2 - inputs: - filePath: eng\common\sdk-task.ps1 - arguments: -configuration $(BuildConfiguration) - -task VisualStudio.BuildIbcTrainingSettings - /p:VisualStudioDropName=$(VisualStudio.DropName) - /p:BootstrapperInfoPath=$(Build.StagingDirectory)\MicroBuild\Output\BootstrapperInfo.json - /p:VisualStudioIbcTrainingSettingsPath=$(Build.SourcesDirectory)\eng\config\OptProf.runsettings - displayName: 'OptProf - Build IBC training settings' - condition: succeeded() - - # Publish bootstrapper info - - task: 1ES.PublishBuildArtifacts@1 - inputs: - PathtoPublish: $(Build.StagingDirectory)\MicroBuild\Output - ArtifactName: MicroBuildOutputs - ArtifactType: Container - displayName: 'OptProf - Publish Artifact: MicroBuildOutputs' - condition: succeeded() - - - task: 1ES.PublishBuildArtifacts@1 - displayName: 'Publish Artifact: logs' - inputs: - PathtoPublish: 'artifacts\log\$(BuildConfiguration)' - ArtifactName: logs - condition: succeededOrFailed() - - - task: 1ES.PublishPipelineArtifact@1 - displayName: 'Publish Artifact: bin' - inputs: - path: 'artifacts\bin' - artifactName: bin - condition: succeededOrFailed() - - # Publishes setup VSIXes to a drop. - # Note: The insertion tool looks for the display name of this task in the logs. - - task: 1ES.MicroBuildVstsDrop@1 - displayName: Upload VSTS Drop - inputs: - dropName: $(VisualStudio.DropName) - dropFolder: 'artifacts\VSSetup\$(BuildConfiguration)\Insertion' - dropRetentionDays: '30' # extended by insertion + VS release - accessToken: '$(System.AccessToken)' - dropServiceUri: 'https://devdiv.artifacts.visualstudio.com' - vsDropServiceUri: 'https://vsdrop.corp.microsoft.com/file/v1' - condition: succeeded() - - # Publish an artifact that the RoslynInsertionTool is able to find by its name. - - task: 1ES.PublishBuildArtifacts@1 - displayName: 'Publish Artifact: VSSetup' - inputs: - PathtoPublish: 'artifacts\VSSetup\$(BuildConfiguration)' - ArtifactName: VSSetup - condition: succeeded() - - # Archive NuGet packages to DevOps. - # Publish our NuPkgs as an artifact. The name of this artifact must be PackageArtifacts as the - # arcade templates depend on the name. - - task: 1ES.PublishBuildArtifacts@1 - displayName: 'Publish Artifact: packages' - inputs: - PathtoPublish: 'artifacts\packages\$(BuildConfiguration)' - ArtifactName: PackageArtifacts - condition: succeeded() - - # Publish "IntelliSense" XSD files to their own artifact - # so it can be consumed by the insertion-to-VS job - - task: 1ES.PublishPipelineArtifact@1 - displayName: 'Publish Artifact: xsd' - inputs: - path: 'artifacts\xsd' - artifactName: xsd - condition: succeeded() - - # Publish Asset Manifests for Build Asset Registry job - - task: 1ES.PublishBuildArtifacts@1 - displayName: Publish Asset Manifests - inputs: - PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(BuildConfiguration)/AssetManifest' - ArtifactName: AssetManifests - condition: succeeded() - - # Tag the build at the very end when we know it's been successful. - - task: colinsalmcorner.colinsalmcorner-buildtasks.tag-build-task.tagBuildOrRelease@0 - displayName: Tag build as ready for optimization training - inputs: - tags: 'ready-for-training' - condition: succeeded() - - - task: ms-vseng.MicroBuildTasks.521a94ea-9e68-468a-8167-6dcf361ea776.MicroBuildCleanup@1 - displayName: Execute cleanup tasks - condition: succeededOrFailed() - - - template: /eng/common/templates-official/steps/component-governance.yml@self - parameters: - ${{ if or(startsWith(variables['Build.SourceBranch'], 'refs/heads/vs'), eq(variables['Build.SourceBranch'], 'refs/heads/main')) }}: - disableComponentGovernance: false - ${{ else }}: - disableComponentGovernance: true - - - template: /eng/common/templates-official/jobs/source-build.yml@self - parameters: - platforms: - - name: Managed - pool: - name: AzurePipelines-EO - image: AzurePipelinesUbuntu22.04compliantGPT - os: linux - - - template: /eng/common/templates-official/job/publish-build-assets.yml@self + - template: /azure-pipelines/.vsts-dotnet-build-jobs.yml@self parameters: - enablePublishBuildArtifacts: true - publishUsingPipelines: true - dependsOn: - - Windows_NT - - Source_Build_Managed - pool: - name: AzurePipelines-EO - image: 1ESPT-Windows2022 - os: windows + isExperimental: false + enableComponentGovernance: true - - template: eng\common\templates-official\post-build\post-build.yml@self + - template: /eng/common/templates-official/post-build/post-build.yml@self parameters: publishingInfraVersion: 3 enableSymbolValidation: true enableSourceLinkValidation: false enableNugetValidation: false + enableSigningValidation: ${{ parameters.enableSigningValidation }} SDLValidationParameters: enable: true continueOnError: false diff --git a/azure-pipelines/.vsts-dotnet-build-jobs.yml b/azure-pipelines/.vsts-dotnet-build-jobs.yml new file mode 100644 index 00000000000..7fc4ab946d1 --- /dev/null +++ b/azure-pipelines/.vsts-dotnet-build-jobs.yml @@ -0,0 +1,237 @@ +# Template for the main Windows_NT build job +parameters: +- name: isExperimental + type: boolean + default: false +- name: enableComponentGovernance + type: boolean + default: false + +jobs: +- job: Windows_NT + pool: + name: VSEngSS-MicroBuild2022-1ES + demands: + - agent.os -equals Windows_NT + + timeoutInMinutes: 180 + + variables: + - group: Publish-Build-Assets + - name: TeamName + value: MSBuild + - name: VisualStudio.MajorVersion + value: 17 + - name: VisualStudio.ChannelName + value: 'int.d17.8' # MSBuild's vs17.8 branch corresponds to this VS channel + - name: VisualStudio.DropName + value: Products/$(System.TeamProject)/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildNumber) + + steps: + - task: NuGetToolInstaller@1 + displayName: 'Install NuGet.exe' + + - task: NuGetCommand@2 + displayName: Restore internal tools + inputs: + command: restore + feedsToUse: config + restoreSolution: 'eng\common\internal\Tools.csproj' + nugetConfigPath: 'eng\common\internal\NuGet.config' + restoreDirectory: '$(Build.SourcesDirectory)\.packages' + + - task: MicroBuildSigningPlugin@4 + displayName: Install MicroBuild plugin + inputs: + signType: $(SignType) + zipSources: false + feedSource: https://devdiv.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + ${{ if and(eq(variables['SignType'], 'real'), eq(variables['System.TeamProject'], 'DevDiv')) }}: + ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea + env: + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + condition: and(succeeded(), in(variables['SignType'], 'test', 'real')) + + - task: MicroBuildOptProfPlugin@6 + inputs: + ProfilingInputsDropName: '$(VisualStudio.DropName)' + ShouldSkipOptimize: true + AccessToken: '$(System.AccessToken)' + feedSource: 'https://devdiv.pkgs.visualstudio.com/DefaultCollection/_packaging/MicroBuildToolset/nuget/v3/index.json' + displayName: 'Install OptProf Plugin' + + # Required by MicroBuildBuildVSBootstrapper + - task: MicroBuildSwixPlugin@4 + inputs: + dropName: $(VisualStudio.DropName) + + - script: eng/CIBuild.cmd + -configuration $(BuildConfiguration) + -officialBuildId $(Build.BuildNumber) + -officialSkipApplyOptimizationData $(SkipApplyOptimizationData) + /p:RepositoryName=$(Build.Repository.Name) + /p:VisualStudioIbcSourceBranchName=$(SourceBranch) + /p:VisualStudioDropAccessToken=$(System.AccessToken) + /p:VisualStudioDropName=$(VisualStudio.DropName) + /p:DotNetSignType=$(SignType) + /p:DotNetPublishToBlobFeed=true + /p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1) + /p:DotNetPublishBlobFeedUrl=https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json + /p:PublishToSymbolServer=true + /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat) + /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat) + /p:TeamName=MSBuild + /p:DotNetPublishUsingPipelines=true + /p:VisualStudioIbcDrop=$(OptProfDrop) + /p:GenerateSbom=true + /p:SuppressFinalPackageVersion=${{ parameters.isExperimental }} + displayName: Build + condition: succeeded() + + # Required by Microsoft policy + - template: \eng\common\templates-official\steps\generate-sbom.yml@self + + # Publish OptProf configuration files + - task: 1ES.PublishArtifactsDrop@1 + inputs: + dropServiceURI: 'https://devdiv.artifacts.visualstudio.com' + buildNumber: 'ProfilingInputs/DevDiv/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildNumber)' + sourcePath: '$(Build.SourcesDirectory)\artifacts\OptProf\$(BuildConfiguration)\Data' + toLowerCase: false + usePat: true + displayName: 'OptProf - Publish to Artifact Services - ProfilingInputs' + condition: succeeded() + + # Build VS bootstrapper + # Generates $(Build.StagingDirectory)\MicroBuild\Output\BootstrapperInfo.json + - task: MicroBuildBuildVSBootstrapper@3 + inputs: + vsMajorVersion: $(VisualStudio.MajorVersion) + channelName: $(VisualStudio.ChannelName) + manifests: $(VisualStudio.SetupManifestList) + outputFolder: '$(Build.SourcesDirectory)\artifacts\VSSetup\$(BuildConfiguration)\Insertion' + displayName: 'OptProf - Build VS bootstrapper' + condition: succeeded() + + # Publish run settings + - task: PowerShell@2 + inputs: + filePath: eng\common\sdk-task.ps1 + arguments: -configuration $(BuildConfiguration) + -task VisualStudio.BuildIbcTrainingSettings + /p:VisualStudioDropName=$(VisualStudio.DropName) + /p:BootstrapperInfoPath=$(Build.StagingDirectory)\MicroBuild\Output\BootstrapperInfo.json + /p:VisualStudioIbcTrainingSettingsPath=$(Build.SourcesDirectory)\eng\config\OptProf.runsettings + displayName: 'OptProf - Build IBC training settings' + condition: succeeded() + + # Publish bootstrapper info + - task: 1ES.PublishBuildArtifacts@1 + inputs: + PathtoPublish: $(Build.StagingDirectory)\MicroBuild\Output + ArtifactName: MicroBuildOutputs + ArtifactType: Container + displayName: 'OptProf - Publish Artifact: MicroBuildOutputs' + condition: succeeded() + + - task: 1ES.PublishBuildArtifacts@1 + displayName: 'Publish Artifact: logs' + inputs: + PathtoPublish: 'artifacts\log\$(BuildConfiguration)' + ArtifactName: logs + condition: succeededOrFailed() + + - task: 1ES.PublishPipelineArtifact@1 + displayName: 'Publish Artifact: bin' + inputs: + path: 'artifacts\bin' + artifactName: bin + condition: succeededOrFailed() + + # Publishes setup VSIXes to a drop. + # Note: The insertion tool looks for the display name of this task in the logs. + - task: 1ES.MicroBuildVstsDrop@1 + displayName: Upload VSTS Drop + inputs: + dropName: $(VisualStudio.DropName) + dropFolder: 'artifacts\VSSetup\$(BuildConfiguration)\Insertion' + dropRetentionDays: '30' # extended by insertion + VS release + accessToken: '$(System.AccessToken)' + dropServiceUri: 'https://devdiv.artifacts.visualstudio.com' + vsDropServiceUri: 'https://vsdrop.corp.microsoft.com/file/v1' + condition: succeeded() + + # Publish an artifact that the RoslynInsertionTool is able to find by its name. + - task: 1ES.PublishBuildArtifacts@1 + displayName: 'Publish Artifact: VSSetup' + inputs: + PathtoPublish: 'artifacts\VSSetup\$(BuildConfiguration)' + ArtifactName: VSSetup + condition: succeeded() + + # Archive NuGet packages to DevOps. + # Publish our NuPkgs as an artifact. The name of this artifact must be PackageArtifacts as the + # arcade templates depend on the name. + - task: 1ES.PublishBuildArtifacts@1 + displayName: 'Publish Artifact: packages' + inputs: + PathtoPublish: 'artifacts\packages\$(BuildConfiguration)' + ArtifactName: PackageArtifacts + condition: succeeded() + + # Publish "IntelliSense" XSD files to their own artifact + # so it can be consumed by the insertion-to-VS job + - task: 1ES.PublishPipelineArtifact@1 + displayName: 'Publish Artifact: xsd' + inputs: + path: 'artifacts\xsd' + artifactName: xsd + condition: succeeded() + + # Publish Asset Manifests for Build Asset Registry job + - task: 1ES.PublishBuildArtifacts@1 + displayName: Publish Asset Manifests + inputs: + PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(BuildConfiguration)/AssetManifest' + ArtifactName: AssetManifests + condition: succeeded() + + # Tag the build at the very end when we know it's been successful. + - task: colinsalmcorner.colinsalmcorner-buildtasks.tag-build-task.tagBuildOrRelease@0 + displayName: Tag build as ready for optimization training + inputs: + tags: 'ready-for-training' + condition: succeeded() + + - task: ms-vseng.MicroBuildTasks.521a94ea-9e68-468a-8167-6dcf361ea776.MicroBuildCleanup@1 + displayName: Execute cleanup tasks + condition: succeededOrFailed() + + - template: /eng/common/templates-official/steps/component-governance.yml@self + parameters: + ${{ if or(startsWith(variables['Build.SourceBranch'], 'refs/heads/vs'), eq(variables['Build.SourceBranch'], 'refs/heads/main')) }}: + disableComponentGovernance: false + ${{ else }}: + disableComponentGovernance: true + +- template: /eng/common/templates-official/jobs/source-build.yml@self + parameters: + platforms: + - name: Managed + pool: + name: AzurePipelines-EO + image: AzurePipelinesUbuntu22.04compliantGPT + os: linux + +- template: /eng/common/templates-official/job/publish-build-assets.yml@self + parameters: + enablePublishBuildArtifacts: true + publishUsingPipelines: true + dependsOn: + - Windows_NT + - Source_Build_Managed + pool: + name: AzurePipelines-EO + image: 1ESPT-Windows2022 + os: windows + diff --git a/azure-pipelines/.vsts-dotnet-exp-perf.yml b/azure-pipelines/.vsts-dotnet-exp-perf.yml new file mode 100644 index 00000000000..33ea1e6fc91 --- /dev/null +++ b/azure-pipelines/.vsts-dotnet-exp-perf.yml @@ -0,0 +1,82 @@ +trigger: +- exp/* + +# If defined here, these values are not overrideable +# Once they exist, we should define these as "runtime parameters" +# https://github.com/Microsoft/azure-pipelines-yaml/pull/129 +# variables: +# SignType: test +# SkipApplyOptimizationData: false + +parameters: +- name: OptProfDropName + displayName: Optional OptProfDrop Override + type: string + default: 'default' +- name: enableSigningValidation + displayName: Enable Signing Validation + type: boolean + default: false + +variables: + # if OptProfDrop is not set, string '$(OptProfDrop)' will be passed to the build script. + - name: OptProfDrop + value: '' + - name: SourceBranch + value: $(IbcSourceBranchName) + # Use main as our optprof collection branch by default in exp branches. + - ${{ if not(startsWith(variables['Build.SourceBranch'], 'refs/heads/vs')) }}: + - name: SourceBranch + value: main + # if OptProfDropName is set as a parameter, set OptProfDrop to the parameter and unset SourceBranch + - ${{ if ne(parameters.OptProfDropName, 'default') }}: + - name: OptProfDrop + value: ${{parameters.OptProfDropName}} + - name: SourceBranch + value: '' + - name: Codeql.Enabled + value: false + - group: DotNet-MSBuild-SDLValidation-Params + - group: AzureDevOps-Artifact-Feeds-Pats + - name: cfsNugetWarnLevel + value: warn + - name: nugetMultiFeedWarnLevel + value: none + - name: NugetSecurityAnalysisWarningLevel + value: none + +resources: + repositories: + - repository: 1ESPipelineTemplates + type: git + name: 1ESPipelineTemplates/1ESPipelineTemplates + +extends: + template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates + parameters: + featureFlags: + autoBaseline: true + pool: + name: VSEngSS-MicroBuild2022-1ES + os: windows + sdl: + # We generate SBOM ourselves, so don't need steps injected by 1ES. + sbom: + enabled: false + + stages: + - stage: build + displayName: Build + jobs: + - template: /azure-pipelines/.vsts-dotnet-build-jobs.yml@self + parameters: + isExperimental: true + enableComponentGovernance: false + + - template: /eng/common/templates/post-build/post-build.yml@self + parameters: + publishingInfraVersion: 3 + enableSymbolValidation: true + enableSourceLinkValidation: false + enableNugetValidation: false + enableSigningValidation: ${{ parameters.enableSigningValidation }} \ No newline at end of file diff --git a/azure-pipelines/vs-insertion-experimental.yml b/azure-pipelines/vs-insertion-experimental.yml index 0e248a57da9..5d0c0f1ef82 100644 --- a/azure-pipelines/vs-insertion-experimental.yml +++ b/azure-pipelines/vs-insertion-experimental.yml @@ -2,11 +2,21 @@ trigger: none name: $(Date:yyyyMMdd).$(Rev:r) +# Since our release branch is the one flowing into main +# we will keep our main experimental insertions to make sure everything is alright +schedules: + - cron: '0 3 * * 1,3,5' # Runs every Monday, Wednesday and Friday at 3AM UTC + displayName: Experimental VS insertion main + branches: + include: + - main + always: false # Don't run if there are no code changes + resources: pipelines: - - pipeline: 'MSBuild' + - pipeline: 'MSBuildExpPerf' project: 'DevDiv' - source: 'MSBuild' + source: 'MSBuild/MSBuild-ExpPerf' trigger: branches: include: @@ -33,6 +43,7 @@ parameters: - rel/d17.6 - rel/d17.3 - rel/d17.0 + - rel/d16.11 variables: - name: TeamName @@ -40,9 +51,9 @@ variables: - name: TeamEmail value: msbtm@microsoft.com - name: MSBuild_CI_BuildNumber - value: $(resources.pipeline.MSBuild.runName) + value: $(resources.pipeline.MSBuildExpPerf.runName) - name: MSBuild_CI_SourceVersion - value: $(resources.pipeline.MSBuild.sourceCommit) + value: $(resources.pipeline.MSBuildExpPerf.sourceCommit) - name: ArtifactPackagesPath value: $(Build.ArtifactStagingDirectory)/PackageArtifacts @@ -80,11 +91,11 @@ extends: templateContext: inputs: - input: pipelineArtifact - pipeline: 'MSBuild' + pipeline: 'MSBuildExpPerf' artifactName: 'xsd' targetPath: '$(Pipeline.Workspace)/xsd' - input: pipelineArtifact - pipeline: 'MSBuild' + pipeline: 'MSBuildExpPerf' artifactName: 'PackageArtifacts' targetPath: '$(Build.ArtifactStagingDirectory)/PackageArtifacts' # the CI build creates a sourcebuild intermediate package that is not signed, remove it to avoid warning from Guardian @@ -99,7 +110,7 @@ extends: targetType: inline script: | # Extract the last section after the last '/' - $fullBranch = "$(resources.pipeline.MSBuild.sourceBranch)" + $fullBranch = "$(resources.pipeline.MSBuildExpPerf.sourceBranch)" $branchSegments = $fullBranch -split '/' $branch = $branchSegments[-1] Write-Host "Setting drops branch to '$branch'" @@ -179,3 +190,4 @@ extends: InsertionReviewers: MSBuild CustomScriptExecutionCommand: $(InsertCustomScriptExecutionCommand) InsertionBuildPolicy: Request Perf DDRITs + diff --git a/eng/Versions.props b/eng/Versions.props index 3518e31f80f..9f0038dd6e1 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.8.38 + 17.8.39 release 17.7.0 15.1.0.0 diff --git a/eng/cibuild_bootstrapped_msbuild.sh b/eng/cibuild_bootstrapped_msbuild.sh index ceb2b343329..a9731bcf6f8 100755 --- a/eng/cibuild_bootstrapped_msbuild.sh +++ b/eng/cibuild_bootstrapped_msbuild.sh @@ -55,7 +55,7 @@ fi if [[ $build_stage1 == true ]]; then - /bin/bash "$ScriptRoot/common/build.sh" --restore --build --ci --configuration $configuration /p:CreateBootstrap=true $properties $extra_properties || exit $? + /bin/bash "$ScriptRoot/common/build.sh" --restore --build --ci --configuration $configuration /p:CreateBootstrap=true $properties $extra_properties || exit $? fi bootstrapRoot="$Stage1Dir/bin/bootstrap" @@ -98,4 +98,4 @@ export DOTNET_HOST_PATH="$_InitializeDotNetCli/dotnet" # - Turn off node reuse (so that bootstrapped MSBuild processes don't stay running and lock files) # - Do run tests # - Don't try to create a bootstrap deployment -. "$ScriptRoot/common/build.sh" --restore --build --test --ci --nodereuse false --configuration $configuration /p:CreateBootstrap=false $properties $extra_properties + . "$ScriptRoot/common/build.sh" --restore --build --test --ci --nodereuse false --configuration $configuration /p:CreateBootstrap=false $properties $extra_properties diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh old mode 100755 new mode 100644 diff --git a/eng/common/post-build/nuget-validation.ps1 b/eng/common/post-build/nuget-validation.ps1 index dab3534ab53..5973bb05994 100644 --- a/eng/common/post-build/nuget-validation.ps1 +++ b/eng/common/post-build/nuget-validation.ps1 @@ -13,7 +13,7 @@ try { New-Item -ItemType 'directory' -Path ${ToolDestinationPath} -Force - Invoke-WebRequest $url -OutFile ${ToolDestinationPath}\verify.ps1 + Invoke-WebRequest $url -OutFile ${ToolDestinationPath}\verify.ps1 & ${ToolDestinationPath}\verify.ps1 ${PackagesPath}\*.nupkg } diff --git a/eng/common/tools.sh b/eng/common/tools.sh old mode 100755 new mode 100644 diff --git a/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs b/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs index 9b0a1eae9bb..003bf735988 100644 --- a/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs +++ b/src/Build.UnitTests/BackEnd/MSBuild_Tests.cs @@ -171,7 +171,7 @@ public void OutputItemsAreTaggedWithProjectFileAndTargetName() } /// - /// Ensures that it is possible to call the MSBuild task with an empty Projects parameter, and it + /// Ensures that it is possible to call the MSBuild task with an empty Projects parameter, and it /// shouldn't error, and it shouldn't try to build itself. /// [Fact] @@ -481,7 +481,7 @@ static void Main(string[] args) // ------------------------------------------------------- // TeamBuild.proj // ------------------------------------------------------- - // Attempts to build the above ConsoleApplication1.csproj by calling the MSBuild task, + // Attempts to build the above ConsoleApplication1.csproj by calling the MSBuild task, // and overriding the OutDir property. However, the value being passed into OutDir // is coming from another property which is produced by CreateProperty and has // some special characters in it. @@ -490,16 +490,16 @@ static void Main(string[] args) - + - + - + "); @@ -521,7 +521,7 @@ public void DifferentGlobalPropertiesWithDefault() - + "); @@ -590,7 +590,7 @@ public void DifferentGlobalPropertiesWithoutDefault() - + "); @@ -665,7 +665,7 @@ public void VariousPropertiesToMSBuildTask() g;h; - + @@ -897,7 +897,7 @@ public void DifferentGlobalPropertiesWithBlanks() - + "); @@ -964,7 +964,7 @@ public void DifferentGlobalPropertiesInvalid() - + "); @@ -1019,7 +1019,7 @@ public void DifferentAdditionalPropertiesWithDefault() - + "); @@ -1086,7 +1086,7 @@ public void DifferentAdditionalPropertiesWithGlobalProperties() - + "); @@ -1155,7 +1155,7 @@ public void DifferentAdditionalPropertiesWithoutDefault() - +
"); @@ -1232,7 +1232,7 @@ public void TargetsWithSeparationChars() - + @@ -1297,14 +1297,14 @@ public void StopOnFirstFailureandBuildInParallelSingleNode() new TaskItem(project1), new TaskItem(project2) }; - // Test the various combinations of BuildInParallel and StopOnFirstFailure when the msbuild task is told there are not multiple nodes + // Test the various combinations of BuildInParallel and StopOnFirstFailure when the msbuild task is told there are not multiple nodes // running in the system for (int i = 0; i < 4; i++) { bool buildInParallel = false; bool stopOnFirstFailure = false; - // first set up the project being built. + // first set up the project being built. switch (i) { case 0: @@ -1345,7 +1345,7 @@ public void StopOnFirstFailureandBuildInParallelSingleNode() switch (i) { case 0: - // Verify setting BuildInParallel and StopOnFirstFailure to + // Verify setting BuildInParallel and StopOnFirstFailure to // true will cause the msbuild task to set BuildInParallel to false during the execute // Verify build did not build second project which has the message SecondProject logger.AssertLogDoesntContain("SecondProject"); @@ -1355,7 +1355,7 @@ public void StopOnFirstFailureandBuildInParallelSingleNode() logger.AssertLogContains(AssemblyResources.GetString("MSBuild.NotBuildingInParallel")); break; case 1: - // Verify setting BuildInParallel to true and StopOnFirstFailure to + // Verify setting BuildInParallel to true and StopOnFirstFailure to // false will cause no change in BuildInParallel // Verify build did build second project which has the message SecondProject logger.AssertLogContains("SecondProject"); @@ -1374,7 +1374,7 @@ public void StopOnFirstFailureandBuildInParallelSingleNode() break; case 3: - // Verify setting BuildInParallel to false and StopOnFirstFailure to + // Verify setting BuildInParallel to false and StopOnFirstFailure to // false will cause no change in BuildInParallel // Verify build did build second project which has the message SecondProject logger.AssertLogContains("SecondProject"); @@ -1420,14 +1420,14 @@ public void StopOnFirstFailureandBuildInParallelMultipleNode() try { - // Test the various combinations of BuildInParallel and StopOnFirstFailure when the msbuild task is told there are multiple nodes + // Test the various combinations of BuildInParallel and StopOnFirstFailure when the msbuild task is told there are multiple nodes // running in the system for (int i = 0; i < 4; i++) { bool buildInParallel = false; bool stopOnFirstFailure = false; - // first set up the project being built. + // first set up the project being built. switch (i) { case 0: @@ -1477,7 +1477,7 @@ public void StopOnFirstFailureandBuildInParallelMultipleNode() logger.AssertLogDoesntContain(AssemblyResources.GetString("MSBuild.NotBuildingInParallel")); break; case 1: - // Verify setting BuildInParallel to true and StopOnFirstFailure to + // Verify setting BuildInParallel to true and StopOnFirstFailure to // false will cause no change in BuildInParallel // Verify build did build second project which has the message SecondProject logger.AssertLogContains("SecondProject"); @@ -1487,7 +1487,7 @@ public void StopOnFirstFailureandBuildInParallelMultipleNode() logger.AssertLogDoesntContain(AssemblyResources.GetString("MSBuild.NotBuildingInParallel")); break; case 2: - // Verify setting BuildInParallel to false and StopOnFirstFailure to + // Verify setting BuildInParallel to false and StopOnFirstFailure to // true will cause no change in BuildInParallel // Verify build did not build second project which has the message SecondProject logger.AssertLogDoesntContain("SecondProject"); @@ -1498,7 +1498,7 @@ public void StopOnFirstFailureandBuildInParallelMultipleNode() break; case 3: - // Verify setting BuildInParallel to false and StopOnFirstFailure to + // Verify setting BuildInParallel to false and StopOnFirstFailure to // false will cause no change in BuildInParallel // Verify build did build second project which has the message SecondProject logger.AssertLogContains("SecondProject"); @@ -1772,12 +1772,12 @@ public void PropertiesWithSeparationChars() C=$(CValues)%3BD=$(DValues) - + - +
"); @@ -1837,13 +1837,13 @@ public void TargetNameIsCaseInsensitive() "); string projectFile2 = ObjectModelHelpers.CreateTempFileOnDisk(@" - + - + "); @@ -1873,13 +1873,13 @@ public void ProjectFileWithoutNamespaceBuilds() "); string projectFile2 = ObjectModelHelpers.CreateTempFileOnDisk(@" - + - + "); diff --git a/src/Build/Microsoft.Build.csproj b/src/Build/Microsoft.Build.csproj index ec790f452ea..99f69581714 100644 --- a/src/Build/Microsoft.Build.csproj +++ b/src/Build/Microsoft.Build.csproj @@ -1,4 +1,4 @@ - + From 80c08e09e2bf8de7b3d77e7c56c93023680139c4 Mon Sep 17 00:00:00 2001 From: YuliiaKovalova Date: Wed, 27 Aug 2025 17:27:07 +0200 Subject: [PATCH 20/23] merge adjustments --- azure-pipelines/.vsts-dotnet-build-jobs.yml | 28 +++++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/azure-pipelines/.vsts-dotnet-build-jobs.yml b/azure-pipelines/.vsts-dotnet-build-jobs.yml index 7fc4ab946d1..b5c4b65f34e 100644 --- a/azure-pipelines/.vsts-dotnet-build-jobs.yml +++ b/azure-pipelines/.vsts-dotnet-build-jobs.yml @@ -23,13 +23,25 @@ jobs: - name: VisualStudio.MajorVersion value: 17 - name: VisualStudio.ChannelName - value: 'int.d17.8' # MSBuild's vs17.8 branch corresponds to this VS channel + value: 'int.d17.10' # MSBuild's vs17.10 branch corresponds to this VS channel - name: VisualStudio.DropName value: Products/$(System.TeamProject)/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildNumber) steps: - task: NuGetToolInstaller@1 displayName: 'Install NuGet.exe' + - pwsh: Get-MpComputerStatus + + - pwsh: Set-MpPreference -DisableRealtimeMonitoring $true + + - 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) + - task: NuGetCommand@2 displayName: Restore internal tools @@ -74,12 +86,6 @@ jobs: /p:VisualStudioDropAccessToken=$(System.AccessToken) /p:VisualStudioDropName=$(VisualStudio.DropName) /p:DotNetSignType=$(SignType) - /p:DotNetPublishToBlobFeed=true - /p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1) - /p:DotNetPublishBlobFeedUrl=https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json - /p:PublishToSymbolServer=true - /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat) - /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat) /p:TeamName=MSBuild /p:DotNetPublishUsingPipelines=true /p:VisualStudioIbcDrop=$(OptProfDrop) @@ -89,7 +95,7 @@ jobs: condition: succeeded() # Required by Microsoft policy - - template: \eng\common\templates-official\steps\generate-sbom.yml@self + - template: /eng/common/templates-official/steps/generate-sbom.yml@self # Publish OptProf configuration files - task: 1ES.PublishArtifactsDrop@1 @@ -220,7 +226,7 @@ jobs: - name: Managed pool: name: AzurePipelines-EO - image: AzurePipelinesUbuntu22.04compliantGPT + image: 1ESPT-Ubuntu22.04 os: linux - template: /eng/common/templates-official/job/publish-build-assets.yml@self @@ -231,7 +237,7 @@ jobs: - Windows_NT - Source_Build_Managed pool: - name: AzurePipelines-EO - image: 1ESPT-Windows2022 + name: $(DncEngInternalBuildPool) + image: $(WindowsImage) os: windows From 08d2acbd027d623b0ba5803293ad8446a5d5b4fd Mon Sep 17 00:00:00 2001 From: Gang Wang Date: Thu, 28 Aug 2025 02:23:43 +0000 Subject: [PATCH 21/23] Update VersionPrefix to 17.11.44 --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index 56458da46d2..ed3aa3acc19 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.11.43 + 17.11.44 release 17.10.4 15.1.0.0 From 940595e711e48f50f2065f740cf274087de290bf Mon Sep 17 00:00:00 2001 From: YuliiaKovalova <95473390+YuliiaKovalova@users.noreply.github.com> Date: Thu, 28 Aug 2025 10:12:13 +0200 Subject: [PATCH 22/23] Update Versions.props --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index 83c790fd1d5..ed3aa3acc19 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -2,7 +2,7 @@ - 17.10.44 + 17.11.44 release 17.10.4 15.1.0.0 From 436086524bb86d7dc036ef9b6b1f7d2a677d3b18 Mon Sep 17 00:00:00 2001 From: YuliiaKovalova <95473390+YuliiaKovalova@users.noreply.github.com> Date: Thu, 28 Aug 2025 11:36:35 +0200 Subject: [PATCH 23/23] Add 'perf/*' trigger to YAML configuration --- azure-pipelines/.vsts-dotnet-exp-perf.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/azure-pipelines/.vsts-dotnet-exp-perf.yml b/azure-pipelines/.vsts-dotnet-exp-perf.yml index 67a9d891315..df637440fd1 100644 --- a/azure-pipelines/.vsts-dotnet-exp-perf.yml +++ b/azure-pipelines/.vsts-dotnet-exp-perf.yml @@ -1,5 +1,6 @@ trigger: - exp/* +- perf/* # If defined here, these values are not overrideable # Once they exist, we should define these as "runtime parameters" @@ -84,4 +85,4 @@ extends: enableSymbolValidation: true enableSourceLinkValidation: false enableNugetValidation: false - enableSigningValidation: ${{ parameters.enableSigningValidation }} \ No newline at end of file + enableSigningValidation: ${{ parameters.enableSigningValidation }}