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