Skip to content

Use a YAML parameter for Storage C++ partner-feed releases - #7536

Merged
JinmingHu (Jinming-Hu) merged 1 commit into
Azure:mainfrom
Jinming-Hu:ci/partner-feed-yaml-parameter
Nov 7, 2026
Merged

JinmingHu (Jinming-Hu) merged 1 commit into
Azure:mainfrom
Jinming-Hu:ci/partner-feed-yaml-parameter

Conversation

@Jinming-Hu

Copy link
Copy Markdown
Member

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.

  • Expose PublishToVcpkgPartnerFeed as a boolean parameter, defaulting to false, in sdk/storage/ci.yml.
  • Pass the parameter through the existing C++ stage and job templates.
  • Map that same parameter to the read-only PublishToVcpkgPartnerFeed runtime variable so the existing partner/public publication conditions use the same choice.
  • Preserve the original API-review invocation and arguments for normal releases, as well as all other validation and publication approval gates.

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' false default. No eng/common files, 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 existing Skip.UpdatePackageVersion=true variable 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.
  • Local Python/PyYAML checks: all three modified YAML files parse; the root-to-stage-to-job parameter flow and read-only runtime mapping are consistent.
  • Local true/false selection checks: passed; partner mode removes only the API-review invocation, normal mode preserves it, and all other pre-existing YAML content is unchanged after normalizing the added parameter plumbing.
  • Non-Storage default check: passed; the shared boolean parameters default to false.
  • Azure server-side preview was not run for this branch: the earlier preview attempt on pipeline 1770 was denied because the current identity lacks EditBuild permission. Server-side template expansion and execution remain for CI verification; local checks are not a substitute.
  • No C++ build or unit tests run for this YAML-only change.

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.

  • C++ Guidelines
  • Doxygen docs
  • Unit tests
  • No unwanted commits/changes
  • Descriptive title/description
    • PR is single purpose
    • Related issue listed
  • Comments in source
  • No typos
  • Update changelog
  • Not work-in-progress
  • External references or docs updated
  • Self review of PR done
  • Any breaking changes?

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

Copy link
Copy Markdown
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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 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

@antkmsft Anton Kolesnyk (antkmsft) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 :)

@Jinming-Hu
JinmingHu (Jinming-Hu) merged commit 25851b6 into Azure:main Nov 7, 2026
96 checks passed
@Jinming-Hu
JinmingHu (Jinming-Hu) deleted the ci/partner-feed-yaml-parameter branch November 7, 2026 04:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Storage Storage Service (Queues, Blobs, Files)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants