Modernization and Pipeline Updates#2468
Open
emmche wants to merge 19 commits into
Open
Conversation
The public Store ships an x86 payload, so the Release pipeline must continue to build it. ci-internal is left x64+ARM64 only (smoke test). - Add x86 build/UI-test/unit-test jobs back to release.yaml - Add includeX86 parameter to package-msixbundle.yaml; release passes true - Restore x86 to GitHub Actions platform matrix and unit-test matrix Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Re-add the test-only package references removed earlier to work around NU1102 on the OneBranch feed; the feed has since been fixed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…anch pattern) Follow the voicerecorder/snippingtool OneBranch pattern: Package only builds and signs the msixbundle; ReleaseStore downloads the signed bundle and creates+flights the StoreBroker payload within a single job, so the payload never has to cross a job boundary. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…publishStore Restore the pre-restructure behavior where unchecking 'Publish and flight the package on Store' at queue time still produces (and publishes as an artifact) the StoreBroker payload for inspection — only the store-flight and Aero upload tasks are skipped. ReleaseStore is now always included; the publishStore checkbox flows in as the template's publishToStore parameter. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Main publishes the vpack manifest (XES_VPACKMANIFESTDIRECTORY/XES_VPACKMANIFESTNAME) as the 'vpackManifest' pipeline artifact via templateContext.outputs. This was lost in the OneBranch migration. Restore it using OneBranch's templateContext.outputs block. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Both jobs use ob_git_checkout: false, so the repo-relative .config/TSAOptions.json isn't available when OneBranch's per-job Guardian:TSAUpload step runs. Without a resolvable configFile, OneBranch falls back to an auto-generated codebase name (microsoft_Apps_microsoft/calculator) which contains a '/' and is rejected by TSA (PreconditionFailed). Neither job runs any analyzers whose output would need TSA upload — Build/Package jobs still upload TSA results with the correct calculator.app codebase. Snippingtool uses the same ob_sdl_tsa_enabled: false knob for its Perf job which also doesn't produce analyzer output. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR modernizes the Calculator build and release infrastructure by moving to the new internal pipeline templates/toolchain, switching the solution to .slnx, and updating project/toolset targets for the newer VS/.NET environment.
Changes:
- Migrates release/CI pipelines to OneBranch governed templates, updated container/agent images, and revised artifact publishing/download flow.
- Moves StoreBroker payload creation to
release-store.yamland simplifiespackage-msixbundle.yamlto bundle/sign MSIX packages. - Updates solution/project files for VS 2026/.NET 10-era tooling and adjusts one C++ graph parsing assignment warning pattern.
Reviewed changes
Copilot reviewed 25 out of 25 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
.config/TSAOptions.json |
Adds TSA configuration for the governed release pipeline. |
.github/workflows/action-ci.yml |
Updates GitHub Actions runner/toolchain usage and builds the new .slnx. |
README.md |
Updates developer instructions to open Calculator.slnx. |
build/pipelines/azure-pipelines.ci-internal.yaml |
Migrates internal CI to governed templates and updated Windows container settings. |
build/pipelines/azure-pipelines.release.yaml |
Migrates release pipeline to governed templates and wires Store/VPack publishing flow. |
build/pipelines/templates/build-single-architecture.yaml |
Updates build jobs for OneBranch outputs, VS 18, .slnx, restore, and SDL settings. |
build/pipelines/templates/package-msixbundle.yaml |
Refactors bundle/sign packaging and adds optional x86 inclusion. |
build/pipelines/templates/release-store.yaml |
Creates StoreBroker payload in the release-store job and optionally flights/uploads it. |
build/pipelines/templates/release-vpack.yaml |
Updates VPack release artifact handling and internals package version. |
build/pipelines/templates/run-ui-tests.yaml |
Updates UI test job pool/artifact download/.NET SDK setup. |
build/pipelines/templates/run-unit-tests.yaml |
Updates unit test job pool/artifact download/.NET SDK setup. |
src/CalcManager/CalcManager.vcxproj |
Updates minimum VS version and native toolset. |
src/CalcViewModel/CalcViewModel.vcxproj |
Updates native toolset. |
src/CalcViewModelCopyForUT/CalcViewModelCopyForUT.vcxproj |
Updates native toolset. |
src/Calculator.ManagedViewModels/Calculator.ManagedViewModels.csproj |
Updates minimum VS version and pins C# language version. |
src/Calculator.sln |
Removes the legacy solution file. |
src/Calculator.slnx |
Adds the replacement XML solution file. |
src/Calculator/Calculator.csproj |
Updates minimum VS version and pins C# language version. |
src/CalculatorUITestFramework/CalculatorUITestFramework.csproj |
Updates UI test framework target framework to .NET 10. |
src/CalculatorUITests/CalculatorUITests.csproj |
Updates UI tests target framework to .NET 10. |
src/CalculatorUnitTests/CalculatorUnitTests.vcxproj |
Updates minimum VS version and native toolset. |
src/GraphControl/Control/Grapher.cpp |
Splits assignment from condition to avoid the warning pattern. |
src/GraphControl/GraphControl.vcxproj |
Updates native toolset. |
src/GraphingImpl/GraphingImpl.vcxproj |
Updates native toolset. |
src/TraceLogging/TraceLogging.vcxproj |
Updates native toolset. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
guominrui
approved these changes
May 29, 2026
karska-test
approved these changes
May 29, 2026
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.
Description of changes
Migrates the Calculator release pipeline to the new internal build system and modernizes the build/test toolchain alongside it.
Pipelines
release-store.yamlso the StoreBroker payload is created and flighted inside the ReleaseStore job . Added apublishToStoretemplate parameter wired from the queue-timepublishStorecheckbox — gates flight + Aero while always producing the SB payload artifact.release-vpack.yaml: movedvpackManifestartifact publishing to the new pipeline's output mechanism.package-msixbundle.yaml; it now only bundles and signs MSIXes. CI-internal naturally skips StoreBroker..config/TSAOptions.json(codebasecalculator.app, projectOS)ltsc2025/vse2026and agent image towindows-2025-vs2026across release, ci-internal, andaction-ci.yml. Refreshed the action-ci NuGet restore step and restored the x86 leg.Source / project
Calculator.sln→Calculator.slnx.CalcManager,CalcViewModel,CalcViewModelCopyForUT,CalculatorUnitTests, GraphControl,GraphingImpl,TraceLogging`.CalculatorandCalculator.ManagedViewModelscsproj files; package bumps in the UI test projects.Settings.xamltidy.Grapher.cpp.Validation