Repository navigation
Use a YAML parameter for Storage C++ partner-feed releases - #7536
Conversation
Pass a boolean parameter through the existing C++ templates to omit API review at template expansion time. Derive the read-only publication variable from the same parameter and retain normal-release validation by default. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Azure Pipelines: Successfully started running 2 pipeline(s). 8 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
There was a problem hiding this comment.
🔵 Needs a closer look
The partner-release API-approval bypass requires release-policy owner acceptance, and Azure server-side validation of the compile-time skip and runtime feed selection remains outstanding.
No open issues 🎉
What changed in this PR
Adds a parameter-based option for Storage partner-feed releases to skip API review while preserving it for normal releases. This is an alternative to #7530, not a complementary change.
Changes:
- Exposes a boolean Storage pipeline parameter, defaulting to
false, and maps it to a read-only publication variable. - Passes the parameter through shared stage and job templates.
- Conditionally omits only the API-review template in partner mode, leaving other validation and approval gates unchanged.
Server-side template expansion and execution remain to be verified in CI.
| File | Description |
|---|---|
sdk/storage/ci.yml |
Adds the partner-feed parameter, read-only variable mapping, and stage argument. |
eng/pipelines/templates/stages/archetype-sdk-client.yml |
Forwards the parameter to both validation job configurations. |
eng/pipelines/templates/jobs/archetype-sdk-client.yml |
Excludes API review at compile time when partner mode is selected. |
Review effort: Balanced
Anton Kolesnyk (antkmsft)
left a comment
There was a problem hiding this comment.
Thank you, Jinming! I see now why you've done it the way you did in that another PR. Honestly, both look ok to me. And after all, in the grand picture, it is rather a small implementation detail. I'll leave it up to you to pick the PR to merge. You've got approval for both now :)
Parameter-based alternative to #7530 for comparison. These are independent proposals for the same partner-feed API-review exception; choose one rather than merging both.
This version uses a boolean YAML parameter and a direct compile-time
${{ if not(parameters.PublishToVcpkgPartnerFeed) }}around the existing API-review template. It modifies three existing files and introduces no helper YAML file or generic step-list wrapper.PublishToVcpkgPartnerFeedas a boolean parameter, defaulting tofalse, insdk/storage/ci.yml.PublishToVcpkgPartnerFeedruntime variable so the existing partner/public publication conditions use the same choice.The parameter is initially exposed in the Storage entry point. Other C++ service entry points are unchanged and retain API review through the shared templates'
falsedefault. Noeng/commonfiles, API-review requester allowlists, package versions, or release tags are changed.Queueing interface and comparison
For Storage partner releases, select the Publish to the vcpkg partner feed parameter in Run pipeline, or provide
templateParameters: { "PublishToVcpkgPartnerFeed": true }through the pipeline API. Do not select partner mode by setting a separate queue-time variable of the same name: the parameter is the source of truth for this alternative. Continue setting the existingSkip.UpdatePackageVersion=truevariable for a partner-only release.In contrast, #7530 keeps the existing queue-time variable interface and applies a runtime condition through
skip-steps-for-partner-feed.yml. This alternative trades additional parameter plumbing and a changed Storage queueing interface for a direct conditional and no new YAML file.Storage run 7044829 passed builds and live tests but failed the GA API-approval check, skipping all five release stages. This PR requests owner review of an explicit partner-feed-only exception; it does not approve or start publication.
Validation
git diff --check: passed.false.EditBuildpermission. Server-side template expansion and execution remain for CI verification; local checks are not a substitute.After review/integration, using either proposal for the paused partner release requires an updated source commit, a new retention tag, and a fresh pipeline run. The existing partner branch and retention tag remain untouched.
Pull Request Checklist
Please leverage this checklist as a reminder to address commonly occurring feedback when submitting a pull request to make sure your PR can be reviewed quickly:
See the detailed list in the contributing guide.