diff --git a/NuGet.config b/NuGet.config
index af2f31984320..2bd9fac76836 100644
--- a/NuGet.config
+++ b/NuGet.config
@@ -24,10 +24,8 @@
-
-
@@ -37,13 +35,11 @@
-
-
@@ -72,13 +68,10 @@
-
-
-
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 5b6c49c16515..22ac11aadd4b 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -555,34 +555,34 @@
-
+
https://github.com/dotnet/arcade
- efce34e9f9f25af27e2b471fbbf8c21f1ac2e318
+ 16960d68c1325deaabd35f46313462b7c1070545
-
+
https://github.com/dotnet/arcade
- efce34e9f9f25af27e2b471fbbf8c21f1ac2e318
+ 16960d68c1325deaabd35f46313462b7c1070545
-
+
https://github.com/dotnet/arcade
- efce34e9f9f25af27e2b471fbbf8c21f1ac2e318
+ 16960d68c1325deaabd35f46313462b7c1070545
-
+
https://github.com/dotnet/arcade
- efce34e9f9f25af27e2b471fbbf8c21f1ac2e318
+ 16960d68c1325deaabd35f46313462b7c1070545
-
+
https://github.com/dotnet/arcade
- efce34e9f9f25af27e2b471fbbf8c21f1ac2e318
+ 16960d68c1325deaabd35f46313462b7c1070545
-
+
https://github.com/dotnet/arcade
- efce34e9f9f25af27e2b471fbbf8c21f1ac2e318
+ 16960d68c1325deaabd35f46313462b7c1070545
-
+
https://github.com/dotnet/arcade
- efce34e9f9f25af27e2b471fbbf8c21f1ac2e318
+ 16960d68c1325deaabd35f46313462b7c1070545
diff --git a/eng/Versions.props b/eng/Versions.props
index 37007df8405e..4dbf9dbdd595 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -272,10 +272,10 @@
- 9.0.0-beta.26301.4
- 9.0.0-beta.26301.4
- 9.0.0-beta.26301.4
- 9.0.0-beta.26301.4
+ 9.0.0-beta.26372.8
+ 9.0.0-beta.26372.8
+ 9.0.0-beta.26372.8
+ 9.0.0-beta.26372.8
diff --git a/eng/common/core-templates/job/onelocbuild.yml b/eng/common/core-templates/job/onelocbuild.yml
index edefa789d360..79386ab08638 100644
--- a/eng/common/core-templates/job/onelocbuild.yml
+++ b/eng/common/core-templates/job/onelocbuild.yml
@@ -8,6 +8,12 @@ parameters:
CeapexPat: $(dn-bot-ceapex-package-r) # PAT for the loc AzDO instance https://dev.azure.com/ceapex
GithubPat: $(BotAccount-dotnet-bot-repo-PAT)
+ # Service connection for WIF-based Entra authentication to ceapex feeds (replaces CeapexPat).
+ # When set, dnceng/internal builds acquire a federated Entra token instead of using a PAT.
+ # All other projects (e.g. DevDiv, public), where this dnceng-scoped service connection does not
+ # exist, and any pipeline that sets this to '' fall back to PAT-based auth via the CeapexPat parameter.
+ CeapexServiceConnection: 'dnceng-onelocbuild-ceapex'
+
SourcesDirectory: $(System.DefaultWorkingDirectory)
CreatePr: true
AutoCompletePr: false
@@ -73,6 +79,16 @@ jobs:
displayName: Generate LocProject.json
condition: ${{ parameters.condition }}
+ # Acquire an Entra token for ceapex feed access via WIF (dnceng/internal only).
+ # All other projects use PAT-based auth, since the ceapex service connection is scoped to dnceng/internal.
+ - ${{ if and(ne(parameters.CeapexServiceConnection, ''), eq(variables['System.TeamProject'], 'internal')) }}:
+ - template: /eng/common/core-templates/steps/get-federated-access-token.yml
+ parameters:
+ is1ESPipeline: ${{ parameters.is1ESPipeline }}
+ federatedServiceConnection: ${{ parameters.CeapexServiceConnection }}
+ outputVariableName: 'CeapexEntraToken'
+ condition: ${{ parameters.condition }}
+
- task: OneLocBuild@2
displayName: OneLocBuild
env:
@@ -89,7 +105,10 @@ jobs:
${{ if eq(parameters.RepoType, 'gitHub') }}:
isShouldReusePrSelected: ${{ parameters.ReusePr }}
packageSourceAuth: patAuth
- patVariable: ${{ parameters.CeapexPat }}
+ ${{ if and(ne(parameters.CeapexServiceConnection, ''), eq(variables['System.TeamProject'], 'internal')) }}:
+ patVariable: $(CeapexEntraToken)
+ ${{ if or(eq(parameters.CeapexServiceConnection, ''), ne(variables['System.TeamProject'], 'internal')) }}:
+ patVariable: ${{ parameters.CeapexPat }}
${{ if eq(parameters.RepoType, 'gitHub') }}:
repoType: ${{ parameters.RepoType }}
gitHubPatVariable: "${{ parameters.GithubPat }}"
diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1
index a06513a59407..d89aa48781b1 100644
--- a/eng/common/tools.ps1
+++ b/eng/common/tools.ps1
@@ -727,7 +727,7 @@ function InitializeToolset() {
'' | Set-Content $proj
- MSBuild-Core $proj $bl /t:__WriteToolsetLocation /clp:ErrorsOnly`;NoSummary /p:__ToolsetLocationOutputFile=$toolsetLocationFile
+ MSBuild-Core $proj $bl /t:__WriteToolsetLocation /clp:ErrorsOnly`;NoSummary /p:__ToolsetLocationOutputFile=$toolsetLocationFile /p:RestoreIgnoreFailedSources=true
$path = Get-Content $toolsetLocationFile -Encoding UTF8 -TotalCount 1
if (!(Test-Path $path)) {
diff --git a/eng/common/tools.sh b/eng/common/tools.sh
index 01b09b65796c..c412703d1bae 100755
--- a/eng/common/tools.sh
+++ b/eng/common/tools.sh
@@ -410,7 +410,7 @@ function InitializeToolset {
fi
echo '' > "$proj"
- MSBuild-Core "$proj" $bl /t:__WriteToolsetLocation /clp:ErrorsOnly\;NoSummary /p:__ToolsetLocationOutputFile="$toolset_location_file"
+ MSBuild-Core "$proj" $bl /t:__WriteToolsetLocation /clp:ErrorsOnly\;NoSummary /p:__ToolsetLocationOutputFile="$toolset_location_file" /p:RestoreIgnoreFailedSources=true
local toolset_build_proj=`cat "$toolset_location_file"`
diff --git a/global.json b/global.json
index 1825b53e035e..843162b9fd5f 100644
--- a/global.json
+++ b/global.json
@@ -17,8 +17,8 @@
"cmake": "latest"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.26301.4",
- "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.26301.4",
+ "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.26372.8",
+ "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.26372.8",
"Microsoft.Build.NoTargets": "3.7.0",
"Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.24217.1"
}