From 96d6f73464cd119950173f8b99a43536af69fb2c Mon Sep 17 00:00:00 2001
From: ramsessanchez <63934382+ramsessanchez@users.noreply.github.com>
Date: Fri, 5 Jun 2026 13:00:08 -0700
Subject: [PATCH 1/7] fix: add missing image property to daily CI pool config
The 1ES Pipeline Templates require the pool to specify an image
that matches the os property. Added 'image: ubuntu-latest' to
resolve the pipeline validation error.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
.azure-pipelines/daily-ci-build.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.azure-pipelines/daily-ci-build.yml b/.azure-pipelines/daily-ci-build.yml
index 544fb6024..504efddd0 100644
--- a/.azure-pipelines/daily-ci-build.yml
+++ b/.azure-pipelines/daily-ci-build.yml
@@ -21,6 +21,7 @@ extends:
parameters:
pool:
name: Azure-Pipelines-1ESPT-ExDShared
+ image: ubuntu-latest
os: linux
sdl:
sourceAnalysisPool:
From d606f393ee4f700ed07be2fa3962630d7d1a01e5 Mon Sep 17 00:00:00 2001
From: ramsessanchez <63934382+ramsessanchez@users.noreply.github.com>
Date: Fri, 5 Jun 2026 13:14:54 -0700
Subject: [PATCH 2/7] fix: switch daily CI pool to Windows to avoid network
isolation
1ES PT enforces container-based network isolation on Linux pools,
which blocks dotnet restore from reaching NuGet.org. Switching to
Windows (matching the release pipeline) avoids this issue.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
.azure-pipelines/daily-ci-build.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.azure-pipelines/daily-ci-build.yml b/.azure-pipelines/daily-ci-build.yml
index 504efddd0..57d90edbe 100644
--- a/.azure-pipelines/daily-ci-build.yml
+++ b/.azure-pipelines/daily-ci-build.yml
@@ -21,8 +21,8 @@ extends:
parameters:
pool:
name: Azure-Pipelines-1ESPT-ExDShared
- image: ubuntu-latest
- os: linux
+ image: windows-latest
+ os: windows
sdl:
sourceAnalysisPool:
name: Azure-Pipelines-1ESPT-ExDShared
From 2b221d8cdc0c61f1417e2fbd01aaa9ece24945ac Mon Sep 17 00:00:00 2001
From: ramsessanchez <63934382+ramsessanchez@users.noreply.github.com>
Date: Fri, 5 Jun 2026 13:32:13 -0700
Subject: [PATCH 3/7] fix: use Azure Artifacts feed to bypass network isolation
The Azure-Pipelines-1ESPT-ExDShared pool enforces network isolation,
blocking access to nuget.org. Added a nuget.config pointing to the
GraphDeveloperExperiences_Public Azure Artifacts feed and added a
NuGetAuthenticate step to provide credentials for the feed.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
.azure-pipelines/daily-ci-build.yml | 5 ++++-
nuget.config | 7 +++++++
2 files changed, 11 insertions(+), 1 deletion(-)
create mode 100644 nuget.config
diff --git a/.azure-pipelines/daily-ci-build.yml b/.azure-pipelines/daily-ci-build.yml
index 57d90edbe..158cf7285 100644
--- a/.azure-pipelines/daily-ci-build.yml
+++ b/.azure-pipelines/daily-ci-build.yml
@@ -49,7 +49,10 @@ extends:
packageType: 'sdk'
useGlobalJson: true
- - script: dotnet restore Microsoft.Graph.Core.sln
+ - task: NuGetAuthenticate@1
+ displayName: Authenticate to Azure Artifacts
+
+ - script: dotnet restore Microsoft.Graph.Core.sln --configfile nuget.config
displayName: Restore dependencies
workingDirectory: $(Build.SourcesDirectory)
diff --git a/nuget.config b/nuget.config
new file mode 100644
index 000000000..76a0cc26d
--- /dev/null
+++ b/nuget.config
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
From 19e1aa5b60a008f02cc8ac64cc87ffdf5534931d Mon Sep 17 00:00:00 2001
From: ramsessanchez <63934382+ramsessanchez@users.noreply.github.com>
Date: Fri, 5 Jun 2026 13:42:57 -0700
Subject: [PATCH 4/7] fix: install both .NET 8 and .NET 10 SDKs in daily CI
The test project targets net462, net8.0, and net10.0. The previous
config only installed the SDK from global.json (.NET 10), causing
test runs to abort for net8.0. Now explicitly installs both .NET 8
and .NET 10, matching the production build pipeline.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
.azure-pipelines/daily-ci-build.yml | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/.azure-pipelines/daily-ci-build.yml b/.azure-pipelines/daily-ci-build.yml
index 158cf7285..64a207ad3 100644
--- a/.azure-pipelines/daily-ci-build.yml
+++ b/.azure-pipelines/daily-ci-build.yml
@@ -44,10 +44,16 @@ extends:
submodules: recursive
- task: UseDotNet@2
- displayName: Set up .NET
+ displayName: Set up .NET 8
inputs:
packageType: 'sdk'
- useGlobalJson: true
+ version: 8.x
+
+ - task: UseDotNet@2
+ displayName: Set up .NET 10
+ inputs:
+ packageType: 'sdk'
+ version: 10.x
- task: NuGetAuthenticate@1
displayName: Authenticate to Azure Artifacts
From 6465e517bb1f40b00272e73c6c9fa1cf86a03805 Mon Sep 17 00:00:00 2001
From: ramsessanchez <63934382+ramsessanchez@users.noreply.github.com>
Date: Fri, 5 Jun 2026 15:11:42 -0700
Subject: [PATCH 5/7] refactor: generate nuget.config inline instead of
committing to repo
Move the nuget.config creation into an inline PowerShell step in the
pipeline so the feed configuration is self-contained in the CI file.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
.azure-pipelines/daily-ci-build.yml | 12 ++++++++++++
nuget.config | 7 -------
2 files changed, 12 insertions(+), 7 deletions(-)
delete mode 100644 nuget.config
diff --git a/.azure-pipelines/daily-ci-build.yml b/.azure-pipelines/daily-ci-build.yml
index 64a207ad3..55f59873c 100644
--- a/.azure-pipelines/daily-ci-build.yml
+++ b/.azure-pipelines/daily-ci-build.yml
@@ -58,6 +58,18 @@ extends:
- task: NuGetAuthenticate@1
displayName: Authenticate to Azure Artifacts
+ - powershell: |
+ @"
+
+
+
+
+
+
+
+ "@ | Set-Content -Path "$(Build.SourcesDirectory)\nuget.config" -Encoding UTF8
+ displayName: Create nuget.config
+
- script: dotnet restore Microsoft.Graph.Core.sln --configfile nuget.config
displayName: Restore dependencies
workingDirectory: $(Build.SourcesDirectory)
diff --git a/nuget.config b/nuget.config
deleted file mode 100644
index 76a0cc26d..000000000
--- a/nuget.config
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
From b612073edc1aadf947a35eaa4653f21c01f7bf16 Mon Sep 17 00:00:00 2001
From: ramsessanchez <63934382+ramsessanchez@users.noreply.github.com>
Date: Fri, 5 Jun 2026 15:13:25 -0700
Subject: [PATCH 6/7] refactor: use NUGET_FEED_URI variable for feed URL
Extract the Azure Artifacts feed URI into a pipeline variable so
it can be easily referenced and overridden.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
.azure-pipelines/daily-ci-build.yml | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/.azure-pipelines/daily-ci-build.yml b/.azure-pipelines/daily-ci-build.yml
index 55f59873c..d2ccfde3a 100644
--- a/.azure-pipelines/daily-ci-build.yml
+++ b/.azure-pipelines/daily-ci-build.yml
@@ -1,6 +1,9 @@
trigger: none
pr: none
+variables:
+ NUGET_FEED_URI: 'https://microsoftgraph.pkgs.visualstudio.com/0985d294-5762-4bc2-a565-161ef349ca3e/_packaging/GraphDeveloperExperiences_Public/nuget/v3/index.json'
+
schedules:
- cron: '0 0 * * *'
displayName: Daily builds
@@ -64,7 +67,7 @@ extends:
-
+
"@ | Set-Content -Path "$(Build.SourcesDirectory)\nuget.config" -Encoding UTF8
From f8e5c4aa739cab3427c84cd34b83687db376aa5a Mon Sep 17 00:00:00 2001
From: ramsessanchez <63934382+ramsessanchez@users.noreply.github.com>
Date: Fri, 5 Jun 2026 15:14:19 -0700
Subject: [PATCH 7/7] fix: remove inline NUGET_FEED_URI variable, set via ADO
UI
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---
.azure-pipelines/daily-ci-build.yml | 3 ---
1 file changed, 3 deletions(-)
diff --git a/.azure-pipelines/daily-ci-build.yml b/.azure-pipelines/daily-ci-build.yml
index d2ccfde3a..8768f5a94 100644
--- a/.azure-pipelines/daily-ci-build.yml
+++ b/.azure-pipelines/daily-ci-build.yml
@@ -1,9 +1,6 @@
trigger: none
pr: none
-variables:
- NUGET_FEED_URI: 'https://microsoftgraph.pkgs.visualstudio.com/0985d294-5762-4bc2-a565-161ef349ca3e/_packaging/GraphDeveloperExperiences_Public/nuget/v3/index.json'
-
schedules:
- cron: '0 0 * * *'
displayName: Daily builds