Skip to content

[release/v7.4] Separate Store Automation Service Endpoints, Resolve AppID#26396

Merged
TravisEz13 merged 3 commits intoPowerShell:release/v7.4from
TravisEz13:backport/release/v7.4/pr/26210
Nov 5, 2025
Merged

[release/v7.4] Separate Store Automation Service Endpoints, Resolve AppID#26396
TravisEz13 merged 3 commits intoPowerShell:release/v7.4from
TravisEz13:backport/release/v7.4/pr/26210

Conversation

@TravisEz13
Copy link
Member

@TravisEz13 TravisEz13 commented Nov 5, 2025

Backport of #26210 to release/v7.4

Triggered by @TravisEz13 on behalf of @jshigetomi

Original CL Label: CL-BuildPackaging

/cc @PowerShell/powershell-maintainers

Impact

Tooling Impact

  • Required tooling change

This PR separates the Microsoft Store automation service endpoints to use dedicated endpoints for Preview builds (StoreAppPublish-Preview) and Stable/LTS builds (StoreAppPublish-Stable), replacing the previous single StoreAppPublish-Private endpoint. It also resolves AppID dynamically based on the channel (LTS/Stable/Preview).

Regression

  • Yes
  • No

This change improves the Store publishing infrastructure and is not fixing a regression.

Testing

The original PR was tested in the main branch CI/CD pipeline. This backport includes merge conflict resolution where:

Risk

  • High
  • Medium
  • Low

Risk Level: High

This change modifies critical CI/CD infrastructure for Microsoft Store publishing. While the changes are well-tested in the main branch, they affect:

  1. Service endpoint configuration for Store publishing
  2. Task splitting logic based on channel selection (Preview vs Stable/LTS)
  3. AppID resolution logic

Not taking this change would create technical debt and make it difficult to apply future CI/CD changes that build on top of this infrastructure improvement. However, any issues with Store publishing could block releases.

Merge Conflicts Resolution

Conflicts occurred in two files during the backport:

.pipelines/templates/release-MSIX-Publish.yml

  • Conflict: Different approaches to channel configuration and AppID assignment
  • Resolution: Accepted incoming changes that simplify the logic by:
    • Removing the complex $channelConfigs hashtable
    • Using direct if/elseif logic for AppID assignment
    • Consolidating three separate publish tasks into two (Stable/LTS combined, Preview separate)
    • Using dynamically assigned $(AppID) variable instead of multiple intermediate variables

@TravisEz13 TravisEz13 requested a review from a team as a code owner November 5, 2025 21:25
Copilot AI review requested due to automatic review settings November 5, 2025 21:25
@TravisEz13 TravisEz13 added the CL-BuildPackaging Indicates that a PR should be marked as a build or packaging change in the Change Log label Nov 5, 2025
Copy link
Contributor

Copilot AI left a 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 refactors the MSIX publishing pipeline to use conditional tasks instead of dynamic variable selection, simplifying the service endpoint and App ID configuration logic.

  • Replaced dynamic channel configuration with separate conditional publish tasks for Stable/LTS and Preview channels
  • Fixed regex pattern for URL generation to use separate replace operations
  • Removed the channel configuration hash table in favor of explicit conditional logic

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
.pipelines/templates/release-MSIX-Publish.yml Refactored to use conditional tasks for Stable/LTS and Preview publishing, replaced dynamic service endpoint selection with hardcoded values per task
.pipelines/templates/package-create-msix.yml Added channel variable exports and split store package creation into separate conditional tasks for Preview vs Stable/LTS

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

The variables $IsLTS, $IsStable, and $IsPreview were being used
but never initialized. In the main branch, these are set by the
channelSelection.yml template (added in PR PowerShell#25725), but in release/v7.4
the backport PR PowerShell#26163 uses stageDependencies to access these values.
The PowerShell variables need to be explicitly initialized from the
pipeline variables $(LTS), $(STABLE), and $(PREVIEW) at the
beginning of the script block.
@TravisEz13 TravisEz13 requested a review from Copilot November 5, 2025 21:38
Copy link
Contributor

Copilot AI left a 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 2 out of 2 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@TravisEz13 TravisEz13 merged commit 07d550f into PowerShell:release/v7.4 Nov 5, 2025
41 checks passed
@TravisEz13 TravisEz13 deleted the backport/release/v7.4/pr/26210 branch November 5, 2025 21:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CL-BuildPackaging Indicates that a PR should be marked as a build or packaging change in the Change Log

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants