Skip to content

Modernization and Pipeline Updates#2468

Open
emmche wants to merge 19 commits into
mainfrom
u/emmche/test-mod
Open

Modernization and Pipeline Updates#2468
emmche wants to merge 19 commits into
mainfrom
u/emmche/test-mod

Conversation

@emmche
Copy link
Copy Markdown
Contributor

@emmche emmche commented May 28, 2026

Description of changes

Migrates the Calculator release pipeline to the new internal build system and modernizes the build/test toolchain alongside it.

Pipelines

  • Restructured release-store.yaml so the StoreBroker payload is created and flighted inside the ReleaseStore job . Added a publishToStore template parameter wired from the queue-time publishStore checkbox — gates flight + Aero while always producing the SB payload artifact.
  • release-vpack.yaml: moved vpackManifest artifact publishing to the new pipeline's output mechanism.
  • Stripped StoreBroker work out of package-msixbundle.yaml; it now only bundles and signs MSIXes. CI-internal naturally skips StoreBroker.
  • Added .config/TSAOptions.json (codebase calculator.app, project OS)
  • Updated container to ltsc2025/vse2026 and agent image to windows-2025-vs2026 across release, ci-internal, and action-ci.yml. Refreshed the action-ci NuGet restore step and restored the x86 leg.

Source / project

  • Calculator.slnCalculator.slnx.
  • Refreshed SDK / toolset refs across CalcManager, CalcViewModel, CalcViewModelCopyForUT, CalculatorUnitTests, GraphControl, GraphingImpl, TraceLogging`.
  • Minor target/runtime fixes in Calculator and Calculator.ManagedViewModels csproj files; package bumps in the UI test projects.
  • Small Settings.xaml tidy.
  • Suppress experimental-coroutine warning in Grapher.cpp.

Validation

  • GitHub Actions CI green on the branch.
  • Release pipeline succeeds
  • Manual smoke test of application.

emmche and others added 18 commits May 19, 2026 16:55
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>
Copy link
Copy Markdown
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 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.yaml and simplifies package-msixbundle.yaml to 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.

Comment thread build/pipelines/templates/package-msixbundle.yaml Outdated
Comment thread build/pipelines/templates/run-unit-tests.yaml Outdated
Comment thread build/pipelines/templates/run-ui-tests.yaml Outdated
@emmche emmche marked this pull request as ready for review May 28, 2026 23:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants