Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
92a9bb2
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] Aug 18, 2025
2405153
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] Aug 25, 2025
8a1ae15
Merge branch 'main' into darc-main-41923e90-0b9a-4476-bc03-76e9b3bc1a09
nohwnd Sep 2, 2025
78837d0
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] Sep 2, 2025
7f04efa
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] Sep 8, 2025
f7e84c7
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] Sep 15, 2025
123e963
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] Sep 22, 2025
7bae699
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] Sep 29, 2025
5d52227
fix slnx
nohwnd Sep 29, 2025
b3eaed8
Update dependencies from https://github.com/dotnet/arcade build 20251…
dotnet-maestro[bot] Oct 6, 2025
50a5de2
Merge branch 'main' into darc-main-41923e90-0b9a-4476-bc03-76e9b3bc1a09
nohwnd Oct 20, 2025
7761d54
Update dependencies from https://github.com/dotnet/arcade build 20251…
dotnet-maestro[bot] Oct 20, 2025
8da8bb8
Update dependencies from https://github.com/dotnet/arcade build 20251…
dotnet-maestro[bot] Oct 27, 2025
eb17490
Update dependencies from https://github.com/dotnet/arcade build 20251…
dotnet-maestro[bot] Nov 3, 2025
4aaf635
Update dependencies from https://github.com/dotnet/arcade build 20251…
dotnet-maestro[bot] Nov 10, 2025
98f5431
Update images
nohwnd Nov 10, 2025
a3df210
DOTNET_HOST_PATH fix
nohwnd Nov 10, 2025
619f71a
Call the correct script
nohwnd Nov 10, 2025
81e90a5
Add dotnet_root
nohwnd Nov 10, 2025
e6e7b0a
Update dependencies from https://github.com/dotnet/arcade build 20251…
dotnet-maestro[bot] Nov 10, 2025
189bd4a
Update dependencies from https://github.com/dotnet/arcade build 20251…
dotnet-maestro[bot] Nov 17, 2025
c39ccc2
Update global.json
nohwnd Nov 18, 2025
daea8f2
tl:off
nohwnd Nov 18, 2025
b5bda66
Update dependencies from https://github.com/dotnet/arcade build 20251…
dotnet-maestro[bot] Nov 24, 2025
da8f639
Merge branch 'main' into darc-main-41923e90-0b9a-4476-bc03-76e9b3bc1a09
nohwnd Nov 24, 2025
1015148
Add property to show versioninfo that we check
nohwnd Nov 24, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions azure-pipelines-official.yml
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ extends:
enabled: true
pool:
name: $(DncEngInternalBuildPool)
image: windows.vs2022preview.amd64
image: windows.vs2026preview.scout.amd64
os: windows
settings:
networkIsolationPolicy: Permissive,CFSClean
Expand All @@ -153,7 +153,7 @@ extends:
timeoutInMinutes: 120
pool:
name: $(DncEngInternalBuildPool)
image: windows.vs2022preview.amd64
image: windows.vs2026preview.scout.amd64
os: windows
steps:
# This steps help to understand versions of .NET runtime installed on the machine,
Expand Down Expand Up @@ -187,6 +187,8 @@ extends:
-performanceTest
name: Test
displayName: Test
env:
DOTNET_ROOT: $(Build.SourcesDirectory)/.dotnet
Comment on lines +190 to +191
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We needed this in testfx when we moved from VSTest to MTP because we are now running a standalone executable, but why would an arcade update need this?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#15329 maybe it is not needed let's see


# This step is only helpful for diagnosing some issues with vstest/test host that would not appear
# through the console or trx
Expand Down Expand Up @@ -257,7 +259,7 @@ extends:
- ${{ pool.os }}
pool:
name: $(DncEngInternalBuildPool)
image: windows.vs2022preview.amd64
image: windows.vs2026preview.scout.amd64
os: windows
steps:
# The template job needs a log, otherwise it writes a warning. We can disable log uploading only for
Expand Down
4 changes: 3 additions & 1 deletion azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ stages:
timeoutInMinutes: 120
pool:
name: NetCore-Public
demands: ImageOverride -equals windows.vs2022preview.amd64.open
demands: ImageOverride -equals windows.vs2026preview.scout.amd64.open
strategy:
matrix:
Release:
Expand Down Expand Up @@ -115,6 +115,8 @@ stages:
/bl:$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)/Test.binlog
name: Test
displayName: Test
env:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here. I'm curious why it's needed now but was working earlier?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#15329 maybe it is not needed let's see

DOTNET_ROOT: $(Build.SourcesDirectory)/.dotnet

# This step is only helpful for diagnosing some issues with vstest/test host that would not appear
# through the console or trx
Expand Down
2 changes: 1 addition & 1 deletion build.cmd
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
@echo off
powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\common\Build.ps1""" -restore -build %*"
powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\Build.ps1""" -restore -build %*"
exit /b %ErrorLevel%
2 changes: 1 addition & 1 deletion eng/Version.Details.props
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ This file should be imported by eng/Versions.props
<!-- dotnet/core-setup dependencies -->
<MicrosoftExtensionsFileSystemGlobbingPackageVersion>2.0.0</MicrosoftExtensionsFileSystemGlobbingPackageVersion>
<!-- dotnet/arcade dependencies -->
<MicrosoftDotNetArcadeSdkPackageVersion>10.0.0-beta.25408.3</MicrosoftDotNetArcadeSdkPackageVersion>
<MicrosoftDotNetArcadeSdkPackageVersion>11.0.0-beta.25571.8</MicrosoftDotNetArcadeSdkPackageVersion>
<!-- dotnet/symreader-converter dependencies -->
<MicrosoftDiaSymReaderConverterPackageVersion>1.1.0-beta2-19575-01</MicrosoftDiaSymReaderConverterPackageVersion>
<MicrosoftDiaSymReaderPdb2PdbPackageVersion>1.1.0-beta2-19575-01</MicrosoftDiaSymReaderPdb2PdbPackageVersion>
Expand Down
4 changes: 2 additions & 2 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
</Dependency>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="10.0.0-beta.25408.3">
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="11.0.0-beta.25571.8">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>d27184f7cb92b4abb4b20e91ecb5c43bc43de65b</Sha>
<Sha>a8b9e73f56e84dcb4c7ed0f23f79b308b4f83a01</Sha>
</Dependency>
<Dependency Name="Microsoft.DiaSymReader.Pdb2Pdb" Version="1.1.0-beta2-19575-01">
<Uri>https://github.com/dotnet/symreader-converter</Uri>
Expand Down
45 changes: 45 additions & 0 deletions eng/build.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
[CmdletBinding(PositionalBinding=$false)]
Param(
[string][Alias('c')]$configuration = "Debug",
[string]$platform = $null,
[string] $projects,
[string][Alias('v')]$verbosity = "minimal",
[string] $msbuildEngine = $null,
[bool] $warnAsError = $true,
[bool] $nodeReuse = $true,
[switch] $buildCheck = $false,
[switch][Alias('r')]$restore,
[switch] $deployDeps,
[switch][Alias('b')]$build,
[switch] $rebuild,
[switch] $deploy,
[switch][Alias('t')]$test,
[switch] $integrationTest,
[switch] $performanceTest,
[switch] $sign,
[switch] $pack,
[switch] $publish,
[switch] $clean,
[switch][Alias('pb')]$productBuild,
[switch]$fromVMR,
[switch][Alias('bl')]$binaryLog,
[switch][Alias('nobl')]$excludeCIBinarylog,
[switch] $ci,
[switch] $prepareMachine,
[string] $runtimeSourceFeed = '',
[string] $runtimeSourceFeedKey = '',
[switch] $excludePrereleaseVS,
[switch] $nativeToolsOnMachine,
[switch] $help,
[Parameter(ValueFromRemainingArguments=$true)][String[]]$properties
)

# Workaround for DOTNET_HOST_PATH not being set by older MSBuild
if (-not $env:DOTNET_HOST_PATH) {
$env:DOTNET_HOST_PATH = [System.IO.Path]::GetFullPath((Join-Path (Join-Path (Join-Path $PSScriptRoot '..') '.dotnet') 'dotnet'))
if (-not (Test-Path $env:DOTNET_HOST_PATH)) {
$env:DOTNET_HOST_PATH = "$($env:DOTNET_HOST_PATH).exe"
}
}
Comment on lines +37 to +43
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This workaround shouldn't be needed when using vs2026. Can you try reverting please?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#15328 yeah I noticed that as well, but did not want to wait for whole another build.


& $PSScriptRoot/common/build.ps1 @PSBoundParameters
77 changes: 41 additions & 36 deletions eng/common/SetupNugetSources.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
# See example call for this script below.
#
# - task: PowerShell@2
# displayName: Setup Private Feeds Credentials
# displayName: Setup internal 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)
#
Expand All @@ -34,19 +34,28 @@ Set-StrictMode -Version 2.0

. $PSScriptRoot\tools.ps1

# Adds or enables the package source with the given name
function AddOrEnablePackageSource($sources, $disabledPackageSources, $SourceName, $SourceEndPoint, $creds, $Username, $pwd) {
if ($disabledPackageSources -eq $null -or -not (EnableInternalPackageSource -DisabledPackageSources $disabledPackageSources -Creds $creds -PackageSourceName $SourceName)) {
AddPackageSource -Sources $sources -SourceName $SourceName -SourceEndPoint $SourceEndPoint -Creds $creds -Username $userName -pwd $Password
}
}

# Add source entry to PackageSources
function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Username, $pwd) {
$packageSource = $sources.SelectSingleNode("add[@key='$SourceName']")

if ($packageSource -eq $null)
{
Write-Host "Adding package source $SourceName"

$packageSource = $doc.CreateElement("add")
$packageSource.SetAttribute("key", $SourceName)
$packageSource.SetAttribute("value", $SourceEndPoint)
$sources.AppendChild($packageSource) | Out-Null
}
else {
Write-Host "Package source $SourceName already present."
Write-Host "Package source $SourceName already present and enabled."
}

AddCredential -Creds $creds -Source $SourceName -Username $Username -pwd $pwd
Expand All @@ -59,6 +68,8 @@ function AddCredential($creds, $source, $username, $pwd) {
return;
}

Write-Host "Inserting credential for feed: " $source

# Looks for credential configuration for the given SourceName. Create it if none is found.
$sourceElement = $creds.SelectSingleNode($Source)
if ($sourceElement -eq $null)
Expand Down Expand Up @@ -91,24 +102,27 @@ function AddCredential($creds, $source, $username, $pwd) {
$passwordElement.SetAttribute("value", $pwd)
}

function InsertMaestroPrivateFeedCredentials($Sources, $Creds, $Username, $pwd) {
$maestroPrivateSources = $Sources.SelectNodes("add[contains(@key,'darc-int')]")

Write-Host "Inserting credentials for $($maestroPrivateSources.Count) Maestro's private feeds."

ForEach ($PackageSource in $maestroPrivateSources) {
Write-Host "`tInserting credential for Maestro's feed:" $PackageSource.Key
AddCredential -Creds $creds -Source $PackageSource.Key -Username $Username -pwd $pwd
# Enable all darc-int package sources.
function EnableMaestroInternalPackageSources($DisabledPackageSources, $Creds) {
$maestroInternalSources = $DisabledPackageSources.SelectNodes("add[contains(@key,'darc-int')]")
ForEach ($DisabledPackageSource in $maestroInternalSources) {
EnableInternalPackageSource -DisabledPackageSources $DisabledPackageSources -Creds $Creds -PackageSourceName $DisabledPackageSource.key
}
}

function EnablePrivatePackageSources($DisabledPackageSources) {
$maestroPrivateSources = $DisabledPackageSources.SelectNodes("add[contains(@key,'darc-int')]")
ForEach ($DisabledPackageSource in $maestroPrivateSources) {
Write-Host "`tEnsuring private source '$($DisabledPackageSource.key)' is enabled by deleting it from disabledPackageSource"
# Enables an internal package source by name, if found. Returns true if the package source was found and enabled, false otherwise.
function EnableInternalPackageSource($DisabledPackageSources, $Creds, $PackageSourceName) {
$DisabledPackageSource = $DisabledPackageSources.SelectSingleNode("add[@key='$PackageSourceName']")
if ($DisabledPackageSource) {
Write-Host "Enabling internal source '$($DisabledPackageSource.key)'."

# Due to https://github.com/NuGet/Home/issues/10291, we must actually remove the disabled entries
$DisabledPackageSources.RemoveChild($DisabledPackageSource)

AddCredential -Creds $creds -Source $DisabledPackageSource.Key -Username $userName -pwd $Password
return $true
}
return $false
}

if (!(Test-Path $ConfigFile -PathType Leaf)) {
Expand All @@ -121,15 +135,17 @@ $doc = New-Object System.Xml.XmlDocument
$filename = (Get-Item $ConfigFile).FullName
$doc.Load($filename)

# Get reference to <PackageSources> or create one if none exist already
# Get reference to <PackageSources> - fail if none exist
$sources = $doc.DocumentElement.SelectSingleNode("packageSources")
if ($sources -eq $null) {
$sources = $doc.CreateElement("packageSources")
$doc.DocumentElement.AppendChild($sources) | Out-Null
Write-PipelineTelemetryError -Category 'Build' -Message "Eng/common/SetupNugetSources.ps1 returned a non-zero exit code. NuGet config file must contain a packageSources section: $ConfigFile"
ExitWithExitCode 1
}

$creds = $null
$feedSuffix = "v3/index.json"
if ($Password) {
$feedSuffix = "v2"
# Looks for a <PackageSourceCredentials> node. Create it if none is found.
$creds = $doc.DocumentElement.SelectSingleNode("packageSourceCredentials")
if ($creds -eq $null) {
Expand All @@ -138,33 +154,22 @@ if ($Password) {
}
}

$userName = "dn-bot"

# Check for disabledPackageSources; we'll enable any darc-int ones we find there
$disabledSources = $doc.DocumentElement.SelectSingleNode("disabledPackageSources")
if ($disabledSources -ne $null) {
Write-Host "Checking for any darc-int disabled package sources in the disabledPackageSources node"
EnablePrivatePackageSources -DisabledPackageSources $disabledSources
}

$userName = "dn-bot"

# Insert credential nodes for Maestro's private feeds
InsertMaestroPrivateFeedCredentials -Sources $sources -Creds $creds -Username $userName -pwd $Password

# 3.1 uses a different feed url format so it's handled differently here
$dotnet31Source = $sources.SelectSingleNode("add[@key='dotnet3.1']")
if ($dotnet31Source -ne $null) {
AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v2" -Creds $creds -Username $userName -pwd $Password
AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password
EnableMaestroInternalPackageSources -DisabledPackageSources $disabledSources -Creds $creds
}

$dotnetVersions = @('5','6','7','8','9')
$dotnetVersions = @('5','6','7','8','9','10')

foreach ($dotnetVersion in $dotnetVersions) {
$feedPrefix = "dotnet" + $dotnetVersion;
$dotnetSource = $sources.SelectSingleNode("add[@key='$feedPrefix']")
if ($dotnetSource -ne $null) {
AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal/nuget/v2" -Creds $creds -Username $userName -pwd $Password
AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password
AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "$feedPrefix-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password
AddOrEnablePackageSource -Sources $sources -DisabledPackageSources $disabledSources -SourceName "$feedPrefix-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal-transport/nuget/$feedSuffix" -Creds $creds -Username $userName -pwd $Password
}
}

Expand Down
Loading