From 001eb1f5fd743cb74682ee620c523645d0fb451b Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 1 Sep 2025 08:10:14 +0000 Subject: [PATCH 1/5] Backflow from https://github.com/dotnet/dotnet / 7ac1ca6 build 281128 [[ commit created by automation ]] --- eng/Versions.props | 2 +- eng/build.ps1 | 48 +++++++++++++++++++ eng/build.sh | 4 +- .../src/Microsoft.NETCore.Platforms.csproj | 13 +++-- .../Crossgen2Tasks/Crossgen2Tasks.csproj | 15 ++++-- .../installer.tasks/installer.tasks.csproj | 6 ++- 6 files changed, 78 insertions(+), 10 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index d61001668130e5..6dc29cbc29b204 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -13,7 +13,7 @@ 7.0.20 6.0.36 rc - 1 + 2 false release diff --git a/eng/build.ps1 b/eng/build.ps1 index f642b35f228900..52977efcecfbbb 100644 --- a/eng/build.ps1 +++ b/eng/build.ps1 @@ -24,6 +24,8 @@ Param( [string]$cmakeargs, [switch]$pgoinstrument, [string[]]$fsanitize, + [switch]$bootstrap, + [switch]$useBoostrap, [Parameter(ValueFromRemainingArguments=$true)][String[]]$properties ) @@ -57,6 +59,8 @@ function Get-Help() { Write-Host " -usemonoruntime Product a .NET runtime with Mono as the underlying runtime." Write-Host " -verbosity (-v) MSBuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]." Write-Host " [Default: Minimal]" + Write-Host " --useBootstrap Use the results of building the bootstrap subset to build published tools on the target machine." + Write-Host " --bootstrap Build the bootstrap subset and then build the repo with --use-bootstrap." Write-Host " -vs Open the solution with Visual Studio using the locally acquired SDK." Write-Host " Path or any project or solution name is accepted." Write-Host " (Example: -vs Microsoft.CSharp or -vs CoreCLR.sln)" @@ -330,6 +334,7 @@ foreach ($argument in $PSBoundParameters.Keys) "configuration" {} "arch" {} "fsanitize" { $arguments += " /p:EnableNativeSanitizers=$($PSBoundParameters[$argument])"} + "useBootstrap" { $arguments += " /p:UseBootstrap=$($PSBoundParameters[$argument])" } default { $arguments += " /p:$argument=$($PSBoundParameters[$argument])" } } } @@ -345,6 +350,49 @@ $arguments += " /tl:false" # The later changes are ignored when using the cache. $env:DOTNETSDK_ALLOW_TARGETING_PACK_CACHING=0 +if ($bootstrap -eq $True) { + + if ($actionPassedIn) { + # Filter out all actions + $bootstrapArguments = $(($arguments -split ' ') | Where-Object { + $_ -notmatch '^/p:(' + ($actionPassedIn -join '|') + ')=.*' + }) -join ' ' + + # Preserve Restore and Build if they're passed in + if ($arguments -match "/p:Restore=true") { + $bootstrapArguments += "/p:Restore=true" + } + if ($arguments -match "/p:Build=true") { + $bootstrapArguments += "/p:Build=true" + } + } else { + $bootstrapArguments = $arguments + } + + if ($configuration.Count -gt 1) { + Write-Error "Building the bootstrap build does not support multiple configurations. Please specify a single configuration using -configuration." + exit 1 + } + + if ($arch.Count -gt 1) { + Write-Error "Building the bootstrap build does not support multiple architectures. Please specify a single architecture using -arch." + exit 1 + } + + $bootstrapArguments += " /p:TargetArchitecture=$($arch[0])" + $config = $((Get-Culture).TextInfo.ToTitleCase($configuration[0])) + $bootstrapArguments += " -configuration $config" + + $bootstrapArguments += " /p:Subset=bootstrap /bl:$PSScriptRoot/../artifacts/log/$config/bootstrap.binlog" + Invoke-Expression "& `"$PSScriptRoot/common/build.ps1`" $bootstrapArguments" + + # Remove artifacts from the bootstrap build so the product build is a "clean" build. + Write-Host "Cleaning up artifacts from bootstrap build..." + Remove-Item -Recurse "$PSScriptRoot/../artifacts/bin" + Remove-Item -Recurse "$PSScriptRoot/../artifacts/obj" + $arguments += " /p:UseBootstrap=true" +} + $failedBuilds = @() foreach ($config in $configuration) { diff --git a/eng/build.sh b/eng/build.sh index 2a79304978faae..2fb64c61ff2a7f 100755 --- a/eng/build.sh +++ b/eng/build.sh @@ -159,6 +159,7 @@ extraargs=() crossBuild=0 portableBuild=1 bootstrap=0 +bootstrapConfig='Debug' source $scriptroot/common/native/init-os-and-arch.sh @@ -241,6 +242,7 @@ while [[ $# > 0 ]]; do exit 1 ;; esac + bootstrapConfig=$val arguments+=("-configuration" "$val") shift 2 ;; @@ -598,7 +600,7 @@ if [[ "$bootstrap" == "1" ]]; then bootstrapArguments+=("$argument") fi done - "$scriptroot/common/build.sh" ${bootstrapArguments[@]+"${bootstrapArguments[@]}"} /p:Subset=bootstrap -bl:$scriptroot/../artifacts/log/bootstrap.binlog + "$scriptroot/common/build.sh" ${bootstrapArguments[@]+"${bootstrapArguments[@]}"} /p:Subset=bootstrap -bl:$scriptroot/../artifacts/log/$bootstrapConfig/bootstrap.binlog # Remove artifacts from the bootstrap build so the product build is a "clean" build. echo "Cleaning up artifacts from bootstrap build..." diff --git a/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj b/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj index cae5396e768efb..43ae1221530afb 100644 --- a/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj +++ b/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj @@ -20,9 +20,16 @@ <_generateRuntimeGraphTask>$([MSBuild]::NormalizePath('$(BaseOutputPath)', $(Configuration), '$(_generateRuntimeGraphTargetFramework)', '$(AssemblyName).dll')) - - - + + + + diff --git a/src/tasks/Crossgen2Tasks/Crossgen2Tasks.csproj b/src/tasks/Crossgen2Tasks/Crossgen2Tasks.csproj index 1805aad4e3adc8..9f4bd49c18320a 100644 --- a/src/tasks/Crossgen2Tasks/Crossgen2Tasks.csproj +++ b/src/tasks/Crossgen2Tasks/Crossgen2Tasks.csproj @@ -9,10 +9,17 @@ - - - - + + + + + + + + diff --git a/src/tasks/installer.tasks/installer.tasks.csproj b/src/tasks/installer.tasks/installer.tasks.csproj index 031a237ecc1860..3baf62258c474a 100644 --- a/src/tasks/installer.tasks/installer.tasks.csproj +++ b/src/tasks/installer.tasks/installer.tasks.csproj @@ -7,7 +7,11 @@ - + + + + From 997770f640e9e87cbb73868e00a5b1f675ae50c1 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 1 Sep 2025 08:10:18 +0000 Subject: [PATCH 2/5] Update dependencies from https://github.com/dotnet/dotnet build 281128 Updated Dependencies: Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.Analyzers, Microsoft.CodeAnalysis.CSharp, Microsoft.Net.Compilers.Toolset (Version 5.0.0-2.25414.103 -> 5.0.0-2.25427.104) Microsoft.CodeAnalysis.NetAnalyzers (Version 10.0.0-preview.25414.103 -> 10.0.100-rc.1.25427.104) Microsoft.DotNet.ApiCompat.Task, Microsoft.NET.Workload.Emscripten.Current.Manifest-10.0.100.Transport (Version 10.0.100-rc.1.25414.103 -> 10.0.100-rc.1.25427.104) Microsoft.DotNet.Arcade.Sdk, Microsoft.DotNet.Build.Tasks.Archives, Microsoft.DotNet.Build.Tasks.Feed, Microsoft.DotNet.Build.Tasks.Installers, Microsoft.DotNet.Build.Tasks.Packaging, Microsoft.DotNet.Build.Tasks.TargetFramework, Microsoft.DotNet.Build.Tasks.Templating, Microsoft.DotNet.Build.Tasks.Workloads, Microsoft.DotNet.CodeAnalysis, Microsoft.DotNet.GenAPI, Microsoft.DotNet.GenFacades, Microsoft.DotNet.Helix.Sdk, Microsoft.DotNet.PackageTesting, Microsoft.DotNet.RemoteExecutor, Microsoft.DotNet.SharedFramework.Sdk, Microsoft.DotNet.XliffTasks, Microsoft.DotNet.XUnitExtensions (Version 10.0.0-beta.25414.103 -> 10.0.0-beta.25427.104) Microsoft.DotNet.Cecil (Version 0.11.5-alpha.25414.103 -> 0.11.5-alpha.25427.104) Microsoft.DotNet.XUnitAssert, Microsoft.DotNet.XUnitConsoleRunner (Version 2.9.3-beta.25414.103 -> 2.9.3-beta.25427.104) Microsoft.NET.Sdk.IL, Microsoft.NETCore.App.Ref, Microsoft.NETCore.ILAsm, runtime.native.System.IO.Ports, System.Reflection.Metadata, System.Reflection.MetadataLoadContext, System.Text.Json (Version 10.0.0-rc.1.25414.103 -> 10.0.0-rc.2.25427.104) NuGet.Frameworks, NuGet.Packaging, NuGet.ProjectModel, NuGet.Versioning (Version 7.0.0-preview.1.42003 -> 7.0.0-preview.1.42804) System.CommandLine (Version 2.0.0-rc.1.25414.103 -> 2.0.0-rc.2.25427.104) --- eng/Version.Details.props | 79 +++++---- eng/Version.Details.xml | 158 +++++++++--------- eng/common/SetupNugetSources.ps1 | 4 +- eng/common/SetupNugetSources.sh | 4 +- eng/common/core-templates/job/job.yml | 6 +- eng/common/core-templates/job/onelocbuild.yml | 6 +- .../job/publish-build-assets.yml | 10 +- .../core-templates/jobs/codeql-build.yml | 2 +- eng/common/core-templates/jobs/jobs.yml | 2 + .../core-templates/post-build/post-build.yml | 8 +- .../post-build/setup-maestro-vars.yml | 2 +- .../steps/enable-internal-sources.yml | 12 +- .../core-templates/steps/generate-sbom.yml | 2 +- .../steps/install-microbuild.yml | 47 ++++-- .../core-templates/steps/publish-logs.yml | 14 +- .../steps/source-index-stage1-publish.yml | 6 +- eng/common/generate-locproject.ps1 | 49 +++++- eng/common/sdk-task.ps1 | 3 +- eng/common/sdk-task.sh | 7 +- eng/common/template-guidance.md | 2 +- eng/common/templates-official/job/job.yml | 2 +- .../variables/sdl-variables.yml | 2 +- eng/common/templates/job/job.yml | 4 +- eng/common/tools.ps1 | 6 +- global.json | 12 +- 25 files changed, 254 insertions(+), 195 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index f835914c56a741..2489d50a8af6e3 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -1,4 +1,3 @@ - - 5.0.0-2.25414.103 - 5.0.0-2.25414.103 - 5.0.0-2.25414.103 - 10.0.0-preview.25414.103 - 10.0.100-rc.1.25414.103 - 10.0.0-beta.25414.103 - 10.0.0-beta.25414.103 - 10.0.0-beta.25414.103 - 10.0.0-beta.25414.103 - 10.0.0-beta.25414.103 - 10.0.0-beta.25414.103 - 10.0.0-beta.25414.103 - 10.0.0-beta.25414.103 - 0.11.5-alpha.25414.103 - 10.0.0-beta.25414.103 - 10.0.0-beta.25414.103 - 10.0.0-beta.25414.103 - 10.0.0-beta.25414.103 - 10.0.0-beta.25414.103 - 10.0.0-beta.25414.103 - 10.0.0-beta.25414.103 - 10.0.0-beta.25414.103 - 2.9.3-beta.25414.103 - 2.9.3-beta.25414.103 - 10.0.0-beta.25414.103 - 5.0.0-2.25414.103 - 10.0.0-rc.1.25414.103 - 10.0.100-rc.1.25414.103 - 10.0.0-rc.1.25414.103 - 10.0.0-rc.1.25414.103 - 7.0.0-preview.1.42003 - 7.0.0-preview.1.42003 - 7.0.0-preview.1.42003 - 7.0.0-preview.1.42003 - 10.0.0-rc.1.25414.103 - 2.0.0-rc.1.25414.103 - 10.0.0-rc.1.25414.103 - 10.0.0-rc.1.25414.103 - 10.0.0-rc.1.25414.103 + 5.0.0-2.25427.104 + 5.0.0-2.25427.104 + 5.0.0-2.25427.104 + 10.0.100-rc.1.25427.104 + 10.0.100-rc.1.25427.104 + 10.0.0-beta.25427.104 + 10.0.0-beta.25427.104 + 10.0.0-beta.25427.104 + 10.0.0-beta.25427.104 + 10.0.0-beta.25427.104 + 10.0.0-beta.25427.104 + 10.0.0-beta.25427.104 + 10.0.0-beta.25427.104 + 0.11.5-alpha.25427.104 + 10.0.0-beta.25427.104 + 10.0.0-beta.25427.104 + 10.0.0-beta.25427.104 + 10.0.0-beta.25427.104 + 10.0.0-beta.25427.104 + 10.0.0-beta.25427.104 + 10.0.0-beta.25427.104 + 10.0.0-beta.25427.104 + 2.9.3-beta.25427.104 + 2.9.3-beta.25427.104 + 10.0.0-beta.25427.104 + 5.0.0-2.25427.104 + 10.0.0-rc.2.25427.104 + 10.0.100-rc.1.25427.104 + 10.0.0-rc.2.25427.104 + 10.0.0-rc.2.25427.104 + 7.0.0-preview.1.42804 + 7.0.0-preview.1.42804 + 7.0.0-preview.1.42804 + 7.0.0-preview.1.42804 + 10.0.0-rc.2.25427.104 + 2.0.0-rc.2.25427.104 + 10.0.0-rc.2.25427.104 + 10.0.0-rc.2.25427.104 + 10.0.0-rc.2.25427.104 10.0.0-beta.25310.1 10.0.0-beta.25310.1 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3ac18f0b9cd027..733a4aa10c1ba1 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,5 +1,5 @@ - + https://github.com/dotnet/icu @@ -41,91 +41,91 @@ https://github.com/dotnet/llvm-project da5dd054a531e6fea65643b7e754285b73eab433 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 https://github.com/dotnet/runtime-assets @@ -263,33 +263,33 @@ https://github.com/dotnet/llvm-project da5dd054a531e6fea65643b7e754285b73eab433 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 https://github.com/dotnet/xharness @@ -303,9 +303,9 @@ https://github.com/dotnet/xharness 4c17e23fcb7575baa9de575e5a96258096cbaea1 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 https://dev.azure.com/dnceng/internal/_git/dotnet-optimization @@ -331,29 +331,29 @@ https://github.com/dotnet/runtime-assets 385d085eb055cabeaed3dde958a900e7b31cf6ce - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 https://dev.azure.com/dnceng/internal/_git/dotnet-optimization @@ -365,21 +365,21 @@ - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 - + https://github.com/dotnet/dotnet - 5088919af0e4a144ce5b294542f472bf668c9cc8 + 7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3 https://github.com/dotnet/node diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1 index 5db4ad71ee2f3e..792b60b49d424d 100644 --- a/eng/common/SetupNugetSources.ps1 +++ b/eng/common/SetupNugetSources.ps1 @@ -10,8 +10,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 4604b61b0323ae..facb415ca6ff35 100755 --- a/eng/common/SetupNugetSources.sh +++ b/eng/common/SetupNugetSources.sh @@ -11,8 +11,8 @@ # - task: Bash@3 # displayName: Setup Internal Feeds # inputs: -# filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh -# arguments: $(Build.SourcesDirectory)/NuGet.config +# filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.sh +# arguments: $(System.DefaultWorkingDirectory)/NuGet.config # condition: ne(variables['Agent.OS'], 'Windows_NT') # - task: NuGetAuthenticate@1 # diff --git a/eng/common/core-templates/job/job.yml b/eng/common/core-templates/job/job.yml index d9013251542c73..5ce51840619888 100644 --- a/eng/common/core-templates/job/job.yml +++ b/eng/common/core-templates/job/job.yml @@ -163,7 +163,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 @@ -174,7 +174,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 @@ -218,7 +218,7 @@ jobs: - task: CopyFiles@2 displayName: Gather buildconfiguration for build retry inputs: - SourceFolder: '$(Build.SourcesDirectory)/eng/common/BuildConfiguration' + SourceFolder: '$(System.DefaultWorkingDirectory)/eng/common/BuildConfiguration' Contents: '**' TargetFolder: '$(Build.ArtifactStagingDirectory)/eng/common/BuildConfiguration' continueOnError: true diff --git a/eng/common/core-templates/job/onelocbuild.yml b/eng/common/core-templates/job/onelocbuild.yml index 8bf7d23355bc5e..c5788829a872e5 100644 --- a/eng/common/core-templates/job/onelocbuild.yml +++ b/eng/common/core-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 @@ -68,7 +68,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: CopyFiles@2 displayName: Copy LocProject.json inputs: - SourceFolder: '$(Build.SourcesDirectory)/eng/Localize/' + SourceFolder: '$(System.DefaultWorkingDirectory)/eng/Localize/' Contents: 'LocProject.json' TargetFolder: '$(Build.ArtifactStagingDirectory)/loc' condition: ${{ parameters.condition }} diff --git a/eng/common/core-templates/job/publish-build-assets.yml b/eng/common/core-templates/job/publish-build-assets.yml index d5303229c97e27..348cd16376f10d 100644 --- a/eng/common/core-templates/job/publish-build-assets.yml +++ b/eng/common/core-templates/job/publish-build-assets.yml @@ -38,6 +38,8 @@ parameters: # Optional: A minimatch pattern for the asset manifests to publish to BAR assetManifestsPattern: '*/manifests/**/*.xml' + repositoryAlias: self + jobs: - job: Asset_Registry_Publish @@ -78,7 +80,7 @@ jobs: - 'Illegal entry point, is1ESPipeline is not defined. Repository yaml should not directly reference templates in core-templates folder.': error - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - checkout: self + - checkout: ${{ parameters.repositoryAlias }} fetchDepth: 3 clean: true @@ -117,7 +119,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)/AssetManifests' /p:IsAssetlessBuild=${{ parameters.isAssetlessBuild }} @@ -137,7 +139,7 @@ jobs: Add-Content -Path $filePath -Value "$(DefaultChannels)" Add-Content -Path $filePath -Value $(IsStableBuild) - $symbolExclusionfile = "$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt" + $symbolExclusionfile = "$(System.DefaultWorkingDirectory)/eng/SymbolPublishingExclusionsFile.txt" if (Test-Path -Path $symbolExclusionfile) { Write-Host "SymbolExclusionFile exists" @@ -177,7 +179,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 diff --git a/eng/common/core-templates/jobs/codeql-build.yml b/eng/common/core-templates/jobs/codeql-build.yml index 693b00b370447b..dbc14ac580a271 100644 --- a/eng/common/core-templates/jobs/codeql-build.yml +++ b/eng/common/core-templates/jobs/codeql-build.yml @@ -24,7 +24,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/core-templates/jobs/jobs.yml b/eng/common/core-templates/jobs/jobs.yml index 2f992b2c6eccbd..b637cb6e94808e 100644 --- a/eng/common/core-templates/jobs/jobs.yml +++ b/eng/common/core-templates/jobs/jobs.yml @@ -43,6 +43,7 @@ parameters: artifacts: {} is1ESPipeline: '' + 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. @@ -114,3 +115,4 @@ jobs: enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }} artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }} signingValidationAdditionalParameters: ${{ parameters.signingValidationAdditionalParameters }} + repositoryAlias: ${{ parameters.repositoryAlias }} diff --git a/eng/common/core-templates/post-build/post-build.yml b/eng/common/core-templates/post-build/post-build.yml index a151fd811e3e48..f6f87fe5c675d9 100644 --- a/eng/common/core-templates/post-build/post-build.yml +++ b/eng/common/core-templates/post-build/post-build.yml @@ -154,7 +154,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/ - job: @@ -208,7 +208,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: /eng/common/core-templates/steps/publish-logs.yml @@ -258,7 +258,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) @@ -313,7 +313,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 }} diff --git a/eng/common/core-templates/post-build/setup-maestro-vars.yml b/eng/common/core-templates/post-build/setup-maestro-vars.yml index f7602980dbe721..a7abd58c4bb609 100644 --- a/eng/common/core-templates/post-build/setup-maestro-vars.yml +++ b/eng/common/core-templates/post-build/setup-maestro-vars.yml @@ -36,7 +36,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/core-templates/steps/enable-internal-sources.yml b/eng/common/core-templates/steps/enable-internal-sources.yml index 64f881bffc3cf1..4085512b690910 100644 --- a/eng/common/core-templates/steps/enable-internal-sources.yml +++ b/eng/common/core-templates/steps/enable-internal-sources.yml @@ -17,8 +17,8 @@ steps: - task: PowerShell@2 displayName: Setup Internal Feeds 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: ${{ parameters.legacyCredential }} # If running on dnceng (internal project), just use the default behavior for NuGetAuthenticate. @@ -29,8 +29,8 @@ steps: - task: PowerShell@2 displayName: Setup Internal Feeds inputs: - filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1 - arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config + filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.ps1 + arguments: -ConfigFile $(System.DefaultWorkingDirectory)/NuGet.config - ${{ else }}: - template: /eng/common/templates/steps/get-federated-access-token.yml parameters: @@ -39,8 +39,8 @@ steps: - task: PowerShell@2 displayName: Setup Internal Feeds inputs: - filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1 - arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $(dnceng-artifacts-feeds-read-access-token) + filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.ps1 + arguments: -ConfigFile $(System.DefaultWorkingDirectory)/NuGet.config -Password $(dnceng-artifacts-feeds-read-access-token) # This is required in certain scenarios to install the ADO credential provider. # It installed by default in some msbuild invocations (e.g. VS msbuild), but needs to be installed for others # (e.g. dotnet msbuild). diff --git a/eng/common/core-templates/steps/generate-sbom.yml b/eng/common/core-templates/steps/generate-sbom.yml index 44a9636cdff90a..c05f650279795f 100644 --- a/eng/common/core-templates/steps/generate-sbom.yml +++ b/eng/common/core-templates/steps/generate-sbom.yml @@ -6,7 +6,7 @@ parameters: PackageVersion: 10.0.0 - BuildDropPath: '$(Build.SourcesDirectory)/artifacts' + BuildDropPath: '$(System.DefaultWorkingDirectory)/artifacts' PackageName: '.NET' ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom IgnoreDirectories: '' diff --git a/eng/common/core-templates/steps/install-microbuild.yml b/eng/common/core-templates/steps/install-microbuild.yml index da30e67bc34c95..d6b9878f54db7f 100644 --- a/eng/common/core-templates/steps/install-microbuild.yml +++ b/eng/common/core-templates/steps/install-microbuild.yml @@ -12,6 +12,7 @@ parameters: # variable is not available in template expression. _SignType has a very large proliferation across .NET, so replacing it is tough. microbuildUseESRP: true # Location of the MicroBuild output folder + # NOTE: There's something that relies on this being in the "default" source directory for tasks such as Signing to work properly. microBuildOutputFolder: '$(Build.SourcesDirectory)' continueOnError: false @@ -46,17 +47,19 @@ steps: displayName: 'Validate ESRP usage (Non-Windows)' condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT')) + # Two different MB install steps. This is due to not being able to use the agent OS during + # YAML expansion, and Windows vs. Linux/Mac uses different service connections. However, + # we can avoid including the MB install step if not enabled at all. This avoids a bunch of + # extra pipeline authorizations, since most pipelines do not sign on non-Windows. - task: MicroBuildSigningPlugin@4 - displayName: Install MicroBuild plugin + displayName: Install MicroBuild plugin (Windows) inputs: signType: $(_SignType) zipSources: false feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json ${{ if eq(parameters.microbuildUseESRP, true) }}: - ${{ if eq(parameters.enableMicrobuildForMacAndLinux, 'true') }}: - azureSubscription: 'MicroBuild Signing Task (DevDiv)' - useEsrpCli: true - ${{ elseif eq(variables['System.TeamProject'], 'DevDiv') }}: + ConnectedServiceName: 'MicroBuild Signing Task (DevDiv)' + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea ${{ else }}: ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca @@ -65,16 +68,24 @@ steps: MicroBuildOutputFolderOverride: ${{ parameters.microBuildOutputFolder }} SYSTEM_ACCESSTOKEN: $(System.AccessToken) continueOnError: ${{ parameters.continueOnError }} - condition: and( - succeeded(), - or( - and( - eq(variables['Agent.Os'], 'Windows_NT'), - in(variables['_SignType'], 'real', 'test') - ), - and( - ${{ eq(parameters.enableMicrobuildForMacAndLinux, true) }}, - ne(variables['Agent.Os'], 'Windows_NT'), - eq(variables['_SignType'], 'real') - ) - )) + condition: and(succeeded(), eq(variables['Agent.Os'], 'Windows_NT'), in(variables['_SignType'], 'real', 'test')) + + - ${{ if eq(parameters.enableMicrobuildForMacAndLinux, true) }}: + - task: MicroBuildSigningPlugin@4 + displayName: Install MicroBuild plugin (non-Windows) + inputs: + signType: $(_SignType) + zipSources: false + feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json + ${{ if eq(parameters.microbuildUseESRP, true) }}: + ConnectedServiceName: 'MicroBuild Signing Task (DevDiv)' + ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}: + ConnectedPMEServiceName: beb8cb23-b303-4c95-ab26-9e44bc958d39 + ${{ else }}: + ConnectedPMEServiceName: c24de2a5-cc7a-493d-95e4-8e5ff5cad2bc + env: + TeamName: $(_TeamName) + MicroBuildOutputFolderOverride: ${{ parameters.microBuildOutputFolder }} + SYSTEM_ACCESSTOKEN: $(System.AccessToken) + continueOnError: ${{ parameters.continueOnError }} + condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'), eq(variables['_SignType'], 'real')) diff --git a/eng/common/core-templates/steps/publish-logs.yml b/eng/common/core-templates/steps/publish-logs.yml index de24d0087c58bb..10f825e270a03b 100644 --- a/eng/common/core-templates/steps/publish-logs.yml +++ b/eng/common/core-templates/steps/publish-logs.yml @@ -12,22 +12,22 @@ 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: PowerShell@2 displayName: Redact Logs inputs: - filePath: $(Build.SourcesDirectory)/eng/common/post-build/redact-logs.ps1 + filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/redact-logs.ps1 # For now this needs to have explicit list of all sensitive data. Taken from eng/publishing/v3/publish.yml - # Sensitive data can as well be added to $(Build.SourcesDirectory)/eng/BinlogSecretsRedactionFile.txt' + # Sensitive data can as well be added to $(System.DefaultWorkingDirectory)/eng/BinlogSecretsRedactionFile.txt' # If the file exists - sensitive data for redaction will be sourced from it # (single entry per line, lines starting with '# ' are considered comments and skipped) - arguments: -InputPath '$(Build.SourcesDirectory)/PostBuildLogs' + arguments: -InputPath '$(System.DefaultWorkingDirectory)/PostBuildLogs' -BinlogToolVersion ${{parameters.BinlogToolVersion}} - -TokensFilePath '$(Build.SourcesDirectory)/eng/BinlogSecretsRedactionFile.txt' + -TokensFilePath '$(System.DefaultWorkingDirectory)/eng/BinlogSecretsRedactionFile.txt' '$(publishing-dnceng-devdiv-code-r-build-re)' '$(MaestroAccessToken)' '$(dn-bot-all-orgs-artifact-feeds-rw)' @@ -44,7 +44,7 @@ steps: - task: CopyFiles@2 displayName: Gather post build logs inputs: - SourceFolder: '$(Build.SourcesDirectory)/PostBuildLogs' + SourceFolder: '$(System.DefaultWorkingDirectory)/PostBuildLogs' Contents: '**' TargetFolder: '$(Build.ArtifactStagingDirectory)/PostBuildLogs' condition: always() diff --git a/eng/common/core-templates/steps/source-index-stage1-publish.yml b/eng/common/core-templates/steps/source-index-stage1-publish.yml index c2917c1efc1cb7..e9a694afa58e66 100644 --- a/eng/common/core-templates/steps/source-index-stage1-publish.yml +++ b/eng/common/core-templates/steps/source-index-stage1-publish.yml @@ -1,6 +1,6 @@ parameters: - sourceIndexUploadPackageVersion: 2.0.0-20250425.2 - sourceIndexProcessBinlogPackageVersion: 1.0.1-20250515.1 + sourceIndexUploadPackageVersion: 2.0.0-20250818.1 + sourceIndexProcessBinlogPackageVersion: 1.0.1-20250818.1 sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json binlogPath: artifacts/log/Debug/Build.binlog @@ -20,7 +20,7 @@ steps: # Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk. workingDirectory: $(Agent.TempDirectory) -- script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i ${{parameters.BinlogPath}} -r $(Build.SourcesDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output +- script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i ${{parameters.BinlogPath}} -r $(System.DefaultWorkingDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output displayName: "Source Index: Process Binlog into indexable sln" - ${{ if and(ne(parameters.runAsPublic, 'true'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: diff --git a/eng/common/generate-locproject.ps1 b/eng/common/generate-locproject.ps1 index 524aaa57f2b742..fa1cdc2b30076a 100644 --- a/eng/common/generate-locproject.ps1 +++ b/eng/common/generate-locproject.ps1 @@ -33,15 +33,27 @@ $jsonTemplateFiles | ForEach-Object { $jsonWinformsTemplateFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "en\\strings\.json" } # current winforms pattern +$wxlFilesV3 = @() +$wxlFilesV5 = @() $wxlFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\\.+\.wxl" -And -Not( $_.Directory.Name -Match "\d{4}" ) } # localized files live in four digit lang ID directories; this excludes them if (-not $wxlFiles) { $wxlEnFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\\1033\\.+\.wxl" } # pick up en files (1033 = en) specifically so we can copy them to use as the neutral xlf files if ($wxlEnFiles) { - $wxlFiles = @() - $wxlEnFiles | ForEach-Object { - $destinationFile = "$($_.Directory.Parent.FullName)\$($_.Name)" - $wxlFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru - } + $wxlFiles = @() + $wxlEnFiles | ForEach-Object { + $destinationFile = "$($_.Directory.Parent.FullName)\$($_.Name)" + $content = Get-Content $_.FullName -Raw + + # Split files on schema to select different parser settings in the generated project. + if ($content -like "*http://wixtoolset.org/schemas/v4/wxl*") + { + $wxlFilesV5 += Copy-Item $_.FullName -Destination $destinationFile -PassThru + } + elseif ($content -like "*http://schemas.microsoft.com/wix/2006/localization*") + { + $wxlFilesV3 += Copy-Item $_.FullName -Destination $destinationFile -PassThru + } + } } } @@ -114,7 +126,32 @@ $locJson = @{ CloneLanguageSet = "WiX_CloneLanguages" LssFiles = @( "wxl_loc.lss" ) LocItems = @( - $wxlFiles | ForEach-Object { + $wxlFilesV3 | ForEach-Object { + $outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\" + $continue = $true + foreach ($exclusion in $exclusions.Exclusions) { + if ($_.FullName.Contains($exclusion)) { + $continue = $false + } + } + $sourceFile = ($_.FullName | Resolve-Path -Relative) + if ($continue) + { + return @{ + SourceFile = $sourceFile + CopyOption = "LangIDOnPath" + OutputPath = $outputPath + } + } + } + ) + }, + @{ + LanguageSet = $LanguageSet + CloneLanguageSet = "WiX_CloneLanguages" + LssFiles = @( "P210WxlSchemaV4.lss" ) + LocItems = @( + $wxlFilesV5 | ForEach-Object { $outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\" $continue = $true foreach ($exclusion in $exclusions.Exclusions) { diff --git a/eng/common/sdk-task.ps1 b/eng/common/sdk-task.ps1 index a9d2a2d2699666..b62e132d32a40d 100644 --- a/eng/common/sdk-task.ps1 +++ b/eng/common/sdk-task.ps1 @@ -7,13 +7,14 @@ Param( [switch] $restore, [switch] $prepareMachine, [switch][Alias('nobl')]$excludeCIBinaryLog, + [switch]$noWarnAsError, [switch] $help, [Parameter(ValueFromRemainingArguments=$true)][String[]]$properties ) $ci = $true $binaryLog = if ($excludeCIBinaryLog) { $false } else { $true } -$warnAsError = $true +$warnAsError = if ($noWarnAsError) { $false } else { $true } . $PSScriptRoot\tools.ps1 diff --git a/eng/common/sdk-task.sh b/eng/common/sdk-task.sh index 2f83adc0269faf..0c92f81d74f7fa 100755 --- a/eng/common/sdk-task.sh +++ b/eng/common/sdk-task.sh @@ -10,6 +10,7 @@ show_usage() { echo "Advanced settings:" echo " --excludeCIBinarylog Don't output binary log (short: -nobl)" + echo " --noWarnAsError Do not warn as error echo "" echo "Command line arguments not listed above are passed thru to msbuild." } @@ -52,6 +53,7 @@ exclude_ci_binary_log=false restore=false help=false properties='' +warnAsError=true while (($# > 0)); do lowerI="$(echo $1 | tr "[:upper:]" "[:lower:]")" @@ -73,6 +75,10 @@ while (($# > 0)); do exclude_ci_binary_log=true shift 1 ;; + --noWarnAsError) + warnAsError=false + shift 1 + ;; --help) help=true shift 1 @@ -85,7 +91,6 @@ while (($# > 0)); do done ci=true -warnAsError=true if $help; then show_usage diff --git a/eng/common/template-guidance.md b/eng/common/template-guidance.md index 98bbc1ded0ba88..4bf4cf41bd7c76 100644 --- a/eng/common/template-guidance.md +++ b/eng/common/template-guidance.md @@ -50,7 +50,7 @@ extends: - task: CopyFiles@2 displayName: Gather build output inputs: - SourceFolder: '$(Build.SourcesDirectory)/artifacts/marvel' + SourceFolder: '$(System.DefaultWorkingDirectory)/artifacts/marvel' Contents: '**' TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/marvel' ``` diff --git a/eng/common/templates-official/job/job.yml b/eng/common/templates-official/job/job.yml index a8a94328745823..92a0664f5647d5 100644 --- a/eng/common/templates-official/job/job.yml +++ b/eng/common/templates-official/job/job.yml @@ -3,7 +3,7 @@ parameters: enableSbom: true runAsPublic: false PackageVersion: 9.0.0 - BuildDropPath: '$(Build.SourcesDirectory)/artifacts' + BuildDropPath: '$(System.DefaultWorkingDirectory)/artifacts' jobs: - template: /eng/common/core-templates/job/job.yml diff --git a/eng/common/templates-official/variables/sdl-variables.yml b/eng/common/templates-official/variables/sdl-variables.yml index dbdd66d4a4b3a0..f1311bbb1b33d9 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 7cbf668c22bc04..238fa0818f7b27 100644 --- a/eng/common/templates/job/job.yml +++ b/eng/common/templates/job/job.yml @@ -6,7 +6,7 @@ parameters: enableSbom: true runAsPublic: false PackageVersion: 9.0.0 - BuildDropPath: '$(Build.SourcesDirectory)/artifacts' + BuildDropPath: '$(System.DefaultWorkingDirectory)/artifacts' jobs: - template: /eng/common/core-templates/job/job.yml @@ -77,7 +77,7 @@ jobs: parameters: is1ESPipeline: false args: - 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/tools.ps1 b/eng/common/tools.ps1 index d4cfd9ccd806c9..06b44de78709cf 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -544,7 +544,8 @@ function LocateVisualStudio([object]$vsRequirements = $null){ if (Get-Member -InputObject $GlobalJson.tools -Name 'vswhere') { $vswhereVersion = $GlobalJson.tools.vswhere } else { - $vswhereVersion = '2.5.2' + # keep this in sync with the VSWhereVersion in DefaultVersions.props + $vswhereVersion = '3.1.7' } $vsWhereDir = Join-Path $ToolsDir "vswhere\$vswhereVersion" @@ -552,7 +553,8 @@ function LocateVisualStudio([object]$vsRequirements = $null){ if (!(Test-Path $vsWhereExe)) { Create-Directory $vsWhereDir - Write-Host 'Downloading vswhere' + Write-Host "Downloading vswhere $vswhereVersion" + $ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit Retry({ Invoke-WebRequest "https://netcorenativeassets.blob.core.windows.net/resource-packages/external/windows/vswhere/$vswhereVersion/vswhere.exe" -OutFile $vswhereExe }) diff --git a/global.json b/global.json index 5da2c8d6d5d1cd..20898d7a92384f 100644 --- a/global.json +++ b/global.json @@ -1,18 +1,18 @@ { "sdk": { - "version": "10.0.100-rc.1.25411.109", + "version": "10.0.100-rc.1.25420.111", "allowPrerelease": true, "rollForward": "major" }, "tools": { - "dotnet": "10.0.100-rc.1.25411.109" + "dotnet": "10.0.100-rc.1.25420.111" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25414.103", - "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25414.103", - "Microsoft.DotNet.SharedFramework.Sdk": "10.0.0-beta.25414.103", + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25427.104", + "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25427.104", + "Microsoft.DotNet.SharedFramework.Sdk": "10.0.0-beta.25427.104", "Microsoft.Build.NoTargets": "3.7.0", "Microsoft.Build.Traversal": "3.4.0", - "Microsoft.NET.Sdk.IL": "10.0.0-rc.1.25414.103" + "Microsoft.NET.Sdk.IL": "10.0.0-rc.2.25427.104" } } From 36698805e1f3f0dc9145f608881456e253908042 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Wed, 20 Aug 2025 10:21:48 -0700 Subject: [PATCH 3/5] Update path to Microsoft.CodeAnalysis.NetAnalyzers.dll (cherry picked from commit d2f50007843cdeff200b9ffc26e03fee31815f49) --- .../LibraryImportGenerator.Unit.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.UnitTests/LibraryImportGenerator.Unit.Tests.csproj b/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.UnitTests/LibraryImportGenerator.Unit.Tests.csproj index f442060dc184b0..253e99c7fb0832 100644 --- a/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.UnitTests/LibraryImportGenerator.Unit.Tests.csproj +++ b/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.UnitTests/LibraryImportGenerator.Unit.Tests.csproj @@ -53,7 +53,7 @@ - + From d20185716e5542871ecdae03c58b61817f084c83 Mon Sep 17 00:00:00 2001 From: Elinor Fung Date: Fri, 29 Aug 2025 09:13:25 -0700 Subject: [PATCH 4/5] Make tests clear out DOTNET_ROOT_ when clearing DOTNET_ROOT (cherry picked from commit 503100d4f68525828ee48fb7e1d0b92508402362) --- src/installer/tests/TestUtils/CommandExtensions.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/installer/tests/TestUtils/CommandExtensions.cs b/src/installer/tests/TestUtils/CommandExtensions.cs index bc5303a1593b30..8d48c33c994324 100644 --- a/src/installer/tests/TestUtils/CommandExtensions.cs +++ b/src/installer/tests/TestUtils/CommandExtensions.cs @@ -46,9 +46,13 @@ public static Command DotNetRoot(this Command command, string dotNetRoot, string if (!string.IsNullOrEmpty(architecture)) return command.EnvironmentVariable(Constants.DotnetRoot.ArchitectureEnvironmentVariablePrefix + architecture.ToUpper(), dotNetRoot); + // If we are clearing out the variable, make sure we clear out any architecture-specific one too + if (string.IsNullOrEmpty(dotNetRoot)) + command = command.EnvironmentVariable($"{Constants.DotnetRoot.ArchitectureEnvironmentVariablePrefix}{TestContext.BuildArchitecture}", dotNetRoot); + return command - .EnvironmentVariable(Constants.DotnetRoot.EnvironmentVariable, dotNetRoot) - .EnvironmentVariable(Constants.DotnetRoot.WindowsX86EnvironmentVariable, dotNetRoot); + .EnvironmentVariable(Constants.DotnetRoot.EnvironmentVariable, dotNetRoot) + .EnvironmentVariable(Constants.DotnetRoot.WindowsX86EnvironmentVariable, dotNetRoot); } public static Command MultilevelLookup(this Command command, bool? enable) From d3ff91a85df9fe7af3d0eb085aae8eff142b6033 Mon Sep 17 00:00:00 2001 From: Elinor Fung Date: Fri, 29 Aug 2025 13:10:45 -0700 Subject: [PATCH 5/5] Fix environment variable casing (cherry picked from commit db0d37a874514c0f7d9a8bdd3387362f1c74d31d) --- src/installer/tests/TestUtils/CommandExtensions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/installer/tests/TestUtils/CommandExtensions.cs b/src/installer/tests/TestUtils/CommandExtensions.cs index 8d48c33c994324..70c18ab08ae25d 100644 --- a/src/installer/tests/TestUtils/CommandExtensions.cs +++ b/src/installer/tests/TestUtils/CommandExtensions.cs @@ -48,7 +48,7 @@ public static Command DotNetRoot(this Command command, string dotNetRoot, string // If we are clearing out the variable, make sure we clear out any architecture-specific one too if (string.IsNullOrEmpty(dotNetRoot)) - command = command.EnvironmentVariable($"{Constants.DotnetRoot.ArchitectureEnvironmentVariablePrefix}{TestContext.BuildArchitecture}", dotNetRoot); + command = command.EnvironmentVariable($"{Constants.DotnetRoot.ArchitectureEnvironmentVariablePrefix}{TestContext.BuildArchitecture.ToUpperInvariant()}", dotNetRoot); return command .EnvironmentVariable(Constants.DotnetRoot.EnvironmentVariable, dotNetRoot)