[release/v7.5.11] Use .NET SDK and NuGet feed early access for build, package and release pipelines - #27909
Merged
Aditya Patwardhan (adityapatwardhan) merged 2 commits intoAug 31, 2026
Conversation
…se pipelines (PowerShell#27795) Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Aditya Patwardhan (adityapatwardhan)
requested a review
from a team
as a code owner
August 31, 2026 22:00
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
Copilot started reviewing on behalf of
Aditya Patwardhan (adityapatwardhan)
August 31, 2026 22:00
View session
Contributor
There was a problem hiding this comment.
Pull request overview
Backport that adds “early access” .NET SDK/runtime + NuGet feed support to the release/v7.5.11 build/packaging/release Azure Pipelines, including a new pre-stage to download early-access SDK artifacts and plumbing of IsEarlyAccess/feed/version parameters through templates.
Changes:
- Adds early-access queue-time parameters (
IsEarlyAccess,EarlyAccessFeed,DOTNET_*_VERSION) to official/non-official pipelines and stage templates. - Introduces a dedicated early-access .NET download job/template and updates
install-dotnet.ymlto optionally install from the downloaded artifact by architecture/RID. - Extends
build.psm1with early-access NuGet config selection and a helper to download early-access .NET SDK archives.
Reviewed changes
Copilot reviewed 24 out of 24 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| build.psm1 | Adds EarlyAccess option to Switch-PSNugetConfig and introduces Get-DotnetEarlyAccess helper for downloading SDK archives. |
| .pipelines/templates/windows-hosted-build.yml | Threads a dotnetArch RID into install-dotnet.yml for Windows hosted builds. |
| .pipelines/templates/variables/PowerShell-Packages-Variables.yml | Adds early-access parameters/variables for packages pipelines. |
| .pipelines/templates/variables/PowerShell-Coordinated_Packages-Variables.yml | Adds early-access parameters/variables for coordinated packages pipelines. |
| .pipelines/templates/testartifacts.yml | Ensures install-dotnet.yml is invoked with explicit architecture for test artifacts jobs. |
| .pipelines/templates/stages/PowerShell-Release-Stages.yml | Adds early-access download stage and propagates early-access parameters into validation stages/jobs. |
| .pipelines/templates/stages/PowerShell-Packages-Stages.yml | Adds EarlyDotnet stage and hooks all packaging stages to depend on it. |
| .pipelines/templates/stages/PowerShell-Coordinated_Packages-Stages.yml | Propagates early-access variables and adds conditional early-access download template usage. |
| .pipelines/templates/release-validate-sdk.yml | Adds early-access parameters/vars and switches dotnet feed source based on early-access selection. |
| .pipelines/templates/release-validate-globaltools.yml | Adds early-access parameters and ensures dotnet install is parameterized by RID. |
| .pipelines/templates/release-validate-fxdpackages.yml | Adds early-access parameters and ensures dotnet install is parameterized by RID. |
| .pipelines/templates/packaging/windows/package.yml | Threads dotnetArch into install-dotnet.yml for Windows packaging build. |
| .pipelines/templates/mac.yml | Threads dotnetArch into install-dotnet.yml for macOS template builds. |
| .pipelines/templates/linux.yml | Threads dotnetArch into install-dotnet.yml for Linux template builds. |
| .pipelines/templates/linux-package-build.yml | Threads dotnetArch into install-dotnet.yml for Linux packaging builds. |
| .pipelines/templates/install-dotnet.yml | Adds architecture parameter and early-access install path from pipeline artifact. |
| .pipelines/templates/insert-nuget-config-azfeed.yml | Switches to EarlyAccess NuGet config when enabled and sets up Azure Artifacts credential provider token. |
| .pipelines/templates/downloadDotnetEarlyAccess.yml | New template that downloads early-access .NET SDK archives and uploads them as a pipeline artifact. |
| .pipelines/PowerShell-Release-Official.yml | Adds early-access queue-time parameters and passes them into release stages template. |
| .pipelines/PowerShell-Packages-Official.yml | Adds early-access queue-time parameters and passes them into packages stages template. |
| .pipelines/PowerShell-Coordinated_Packages-Official.yml | Adds early-access queue-time parameters and passes them into coordinated packages stages template. |
| .pipelines/NonOfficial/PowerShell-Release-NonOfficial.yml | Adds early-access queue-time parameters and passes them into non-official release stages template. |
| .pipelines/NonOfficial/PowerShell-Packages-NonOfficial.yml | Adds early-access queue-time parameters and passes them into non-official packages stages template. |
| .pipelines/NonOfficial/PowerShell-Coordinated_Packages-NonOfficial.yml | Adds early-access queue-time parameters and passes them into non-official coordinated packages stages template. |
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+39
to
+43
| - task: DownloadPipelineArtifact@2 | ||
| displayName: "Download dotnet-packages artifact" | ||
| condition: eq(variables['ISEARLYACCESS'], 'true') | ||
| inputs: | ||
| artifactName: 'dotnet-packages' |
Comment on lines
+96
to
+100
| workingDirectory: $(RepoRoot) | ||
| displayName: Install dotnet early access | ||
| condition: eq(variables['ISEARLYACCESS'], 'true') | ||
| env: | ||
| ob_restore_phase: ${{ parameters.ob_restore_phase }} |
Comment on lines
+83
to
+95
| $dotnetExe = if ($IsWindows) { | ||
| "$dotnetLocation\dotnet.exe" | ||
| } else { | ||
| "$dotnetLocation/dotnet" | ||
| } | ||
|
|
||
| if (-not (Test-Path $dotnetExe)) { | ||
| throw "dotnet executable not found at $dotnetExe" | ||
| } | ||
|
|
||
| Get-ChildItem -Path $dotnetLocation -Recurse | ||
|
|
||
| & $dotnetExe --info |
| 'net8' { 'https://pkgs.dev.azure.com/powershell-rel/PowerShell/_packaging/powershell-net-8-early-access/nuget/v3/index.json' } | ||
| 'net9' { 'https://pkgs.dev.azure.com/powershell-rel/PowerShell/_packaging/powershell-net-9-early-access/nuget/v3/index.json' } | ||
| 'net10' { 'https://pkgs.dev.azure.com/powershell-rel/PowerShell/_packaging/powershell-net-10-early-access/nuget/v3/index.json' } | ||
| default { throw "Unknown early access feed URL: $earlyAccess" } |
Comment on lines
+2589
to
+2591
| [Parameter(Mandatory)] | ||
| [string]$DOTNET_PRIVATE_SAS | ||
| ) |
Comment on lines
+91
to
+93
| condition: eq(variables['ISEARLYACCESS'], 'true') | ||
| env: | ||
| ob_restore_phase: ${{ parameters.ob_restore_phase }} |
Justin Chung (jshigetomi)
approved these changes
Aug 31, 2026
Aditya Patwardhan (adityapatwardhan)
merged commit Aug 31, 2026
d1962e7
into
PowerShell:release/v7.5.11
39 checks passed
Aditya Patwardhan (adityapatwardhan)
deleted the
backport/release/v7.5.11/27795-9f7470700
branch
August 31, 2026 22:46
9 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backport of #27795 to release/v7.5.11
Triggered by Aditya Patwardhan (@adityapatwardhan) on behalf of Aditya Patwardhan (@adityapatwardhan)
Original CL Label: CL-BuildPackaging
/cc @PowerShell/powershell-maintainers
Impact
REQUIRED: Choose either Tooling Impact or Customer Impact (or both). At least one checkbox must be selected.
Tooling Impact
Backports the early-access .NET SDK, runtime, and NuGet feed support required by the PowerShell build, package, and release pipelines.
Customer Impact
Regression
REQUIRED: Check exactly one box.
This is not a regression.
Testing
Cherry-pick completed without conflicts. Verified build.psm1 parses successfully with no conflict markers, the worktree is clean, and git diff --check passes against upstream/release/v7.5.11. The original change was validated on master; release pipeline CI will provide the authoritative end-to-end validation.
Risk
REQUIRED: Check exactly one box.
High risk because this changes official and non-official build, package, and release pipelines across platforms. The change is already merged on master, the backport applied cleanly, and static whitespace and PowerShell syntax checks passed.