-
Notifications
You must be signed in to change notification settings - Fork 319
Add Manual OneBranch Release Stage & Publish Support (Internal/Public) #3761
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds a manual release stage to the OneBranch signing pipeline, enabling controlled NuGet package publishing with approval gates. The implementation supports both internal and public publishing destinations, includes dry-run capability for testing, and integrates symbol publishing for the MDS product.
Key Changes:
- Adds manual release parameters (destination, dry run, product) to the signing pipeline
- Implements approval workflow with human validation before package publication
- Creates templated release infrastructure supporting multiple products (MDS, MSS, AKV)
Reviewed Changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| eng/pipelines/dotnet-sqlclient-signing-pipeline.yml | Adds release parameters and invokes new release-stage template |
| eng/pipelines/common/templates/stages/release-stage.yml | Defines manual release stage with approval and publish jobs |
| eng/pipelines/common/templates/jobs/approval-job.yml | Implements manual validation job with release checklist |
| eng/pipelines/common/templates/jobs/publish-packages-job.yml | Orchestrates package download and conditional publishing to internal/public feeds |
| eng/pipelines/common/templates/steps/publish-internal-feed-step.yml | Handles internal feed publishing with dry-run support |
| eng/pipelines/common/templates/steps/publish-public-nuget-step.yml | Handles NuGet.org publishing with dry-run support |
| eng/pipelines/common/templates/steps/list-packages-step.yml | Lists packages for verification before publishing |
| eng/pipelines/common/templates/steps/publish-symbols-step.yml | Updates symbol publishing to use boolean type and add AKV product support |
eng/pipelines/common/templates/steps/publish-internal-feed-step.yml
Outdated
Show resolved
Hide resolved
eng/pipelines/common/templates/steps/publish-internal-feed-step.yml
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated 10 comments.
eng/pipelines/common/templates/steps/publish-internal-feed-step.yml
Outdated
Show resolved
Hide resolved
eng/pipelines/common/templates/steps/publish-internal-feed-step.yml
Outdated
Show resolved
Hide resolved
eng/pipelines/common/templates/steps/publish-public-nuget-step.yml
Outdated
Show resolved
Hide resolved
eng/pipelines/common/templates/steps/publish-internal-feed-step.yml
Outdated
Show resolved
Hide resolved
eng/pipelines/common/templates/steps/publish-internal-feed-step.yml
Outdated
Show resolved
Hide resolved
eng/pipelines/common/templates/steps/publish-internal-feed-step.yml
Outdated
Show resolved
Hide resolved
eng/pipelines/common/templates/steps/publish-public-nuget-step.yml
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated 8 comments.
eng/pipelines/common/templates/steps/publish-internal-feed-step.yml
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated 11 comments.
eng/pipelines/common/templates/steps/publish-public-nuget-step.yml
Outdated
Show resolved
Hide resolved
eng/pipelines/common/templates/steps/publish-public-nuget-step.yml
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated 7 comments.
Co-authored-by: Copilot <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.
eng/pipelines/common/templates/steps/publish-internal-feed-step.yml
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated 9 comments.
eng/pipelines/common/templates/steps/publish-internal-feed-step.yml
Outdated
Show resolved
Hide resolved
eng/pipelines/common/templates/steps/publish-internal-feed-step.yml
Outdated
Show resolved
Hide resolved
eng/pipelines/common/templates/steps/publish-internal-feed-step.yml
Outdated
Show resolved
Hide resolved
eng/pipelines/common/templates/steps/publish-internal-feed-step.yml
Outdated
Show resolved
Hide resolved
eng/pipelines/common/templates/steps/publish-internal-feed-step.yml
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated 5 comments.
| echo "3 Cancelled; The request was cancelled" | ||
| - powershell: 'Write-Host "##vso[task.setvariable variable=ArtifactServices.Symbol.AccountName;]${{parameters.SymAccount}}"' | ||
| displayName: "Update Symbol.AccountName with ${{parameters.SymAccount}}" | ||
| condition: and(succeeded(), eq(parameters.publishSymbols, true)) |
Copilot
AI
Jan 5, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The parameter type for publishSymbols has been changed from 'string' to 'boolean', which is the correct type for a boolean flag. However, the condition on line 79 should be updated to use the boolean comparison syntax. Change 'eq(parameters.publishSymbols, true)' instead of comparing to the string 'true'.
| parameters: | ||
| dryRun: ${{ parameters.dryRun }} | ||
| publicNuGetSource: ${{ parameters.publicNuGetSource }} | ||
| packagesGlob: ${{ variables.targetDownloadPath }}/*.nupkg |
Copilot
AI
Jan 5, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same issue as line 83 - the variable targetDownloadPath should be referenced using runtime syntax
| inputs: | ||
| displayName: Publish to Internal Feed | ||
| pwsh: true | ||
| filePath: /tools/scripts/publishPackagesToFeed.ps1 |
Copilot
AI
Jan 5, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The filePath references '/tools/scripts/publishPackagesToFeed.ps1', but the actual script file created in this PR is named 'publishPackagesToAzDOFeed.ps1'. This path mismatch will cause the task to fail. Update the path to match the actual script filename.
| filePath: /tools/scripts/publishPackagesToFeed.ps1 | |
| filePath: /tools/scripts/publishPackagesToAzDOFeed.ps1 |
| targetPath: ${{ variables.targetDownloadPath }} | ||
| - script: | | ||
| echo "NuGet Package Version: ${{ parameters.nugetPackageVersion }}" | ||
| echo "Downloaded signed packages to: ${{ variables.targetDownloadPath }}" |
Copilot
AI
Jan 5, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same issue as line 83 - the variable targetDownloadPath should be referenced using runtime syntax
| parameters: | ||
| dryRun: ${{ parameters.dryRun }} | ||
| internalFeedSource: ${{ parameters.internalFeedSource }} | ||
| packagesGlob: ${{ variables.targetDownloadPath }}/*.nupkg |
Copilot
AI
Jan 5, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same issue as line 83 - the variable targetDownloadPath should be referenced using runtime syntax
Description
Adds a manual, parameter‑gated release stage to the signing pipeline enabling:
Next Steps:
Investigate: