Skip to content

Add iso session test bundle for os vpack - #678

Closed
bbonaby wants to merge 5 commits into
mainfrom
user/bbonaby/add-iso-session-vpack-detail
Closed

Add iso session test bundle for os vpack#678
bbonaby wants to merge 5 commits into
mainfrom
user/bbonaby/add-iso-session-vpack-detail

Conversation

@bbonaby

@bbonaby bbonaby commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

📖 Description

The isolation session team needs to be able to run mxc from both main and their feature branch in windows nightly test passes to confirm their new features/refactors don't break MXC. They also want to test out experimental features for the iso session backend that may not be on Windows insider builds yet to confirm functionality with MXC before they check into main. These additions are done via their feature/isolation_session_feature-internal branch in the MXC repo. This PR adds the azure templates needed to package up wxc-exec, iso session configs and scripts from both main branch and the feature branch so they can be packaged into our Vpack.

🔗 References

🔍 Validation

Confirmed both new templates run successfully (main template)1ES.IsolationSession.TestBundle.yml, (fragment) IsolationSession.TestBundle.Build.Job.yml. Via: https://microsoft.visualstudio.com/Dart/_build/results?buildId=152983092&view=results

Vpack validation will happen after this is checked in.

✅ Checklist

📋 Issue Type

  • Bug fix
  • Feature
  • Task

GitHub Actions runs the PR validation build automatically. The ADO pipeline
(MXC-PR-Build) is the Azure version of the PR pipeline, kept in parity with the GitHub
Actions build; it runs on merge to main, and Microsoft reviewers with write access can trigger it
on a PR with /azp run. See docs/pull-requests.md.

If the dependency-feed-check check fails on a new dependency, the crate must be added to
the feed before the PR can pass. See docs/pull-requests.md
for the steps.

Microsoft Reviewers: Open in CodeFlow

Copilot AI review requested due to automatic review settings July 24, 2026 18:44
@bbonaby
bbonaby requested a review from a team as a code owner July 24, 2026 18:44
@azure-pipelines

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

Pull request overview

Adds Azure Pipelines support for building IsolationSession test bundles from main and feature branches and staging them in the OS VPack.

Changes:

  • Builds x64 IsolationSession binaries and test collateral.
  • Publishes separate main and feature artifacts.
  • Downloads, stages, and signs both bundles for VPack packaging.

Reviewed changes

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

File Description
.azure-pipelines/1ES.IsolationSession.TestBundle.yml Defines the dual-branch bundle pipeline.
.azure-pipelines/templates/IsolationSession.TestBundle.Build.Job.yml Builds and assembles each test bundle.
.azure-pipelines/templates/Vpack.Package.Job.yml Adds bundle download, staging, and signing.
Comments suppressed due to low confidence (1)

.azure-pipelines/templates/IsolationSession.TestBundle.Build.Job.yml:144

  • Copying the entire dist directory makes the bundled run-tests.js execute every integration test. On Windows, package.test.js requires seven SDK binaries, but this bundle stages only wxc-exec.exe, so the provided runner is guaranteed to fail before it can serve as an IsolationSession test bundle. Stage only the IsolationSession test files and their helpers, or include the full expected binary set.
      # Built test files, runner, and package.json
      Copy-Item -Recurse "$integSrc/dist" "$sdkInteg/dist"
      Copy-Item "$integSrc/package.json" "$sdkInteg/package.json"
      Copy-Item "$integSrc/run-tests.js" "$sdkInteg/run-tests.js"

Comment thread .azure-pipelines/templates/Vpack.Package.Job.yml Outdated
Comment thread .azure-pipelines/templates/Vpack.Package.Job.yml Outdated
$manifest = @{
format_version = 1
produced_at = (Get-Date).ToUniversalTime().ToString('o')
commit_sha = "$(Build.SourceVersion)"
Comment on lines +122 to +126
$scripts = @(
'run_isolation_session_tests.ps1',
'run_isolation_session_state_aware_tests.ps1',
'run_test_configs.ps1'
)
Comment thread .azure-pipelines/1ES.IsolationSession.TestBundle.yml Outdated
Comment thread .azure-pipelines/templates/IsolationSession.TestBundle.Build.Job.yml Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 24, 2026 18:52
bbonaby and others added 3 commits July 24, 2026 11:52
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

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.

Pull request overview

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

Comments suppressed due to low confidence (2)

.azure-pipelines/templates/IsolationSession.TestBundle.Build.Job.yml:171

  • Build.SourceVersion identifies the pipeline's self repository/version, not the repository resource selected by checkoutRepo. In particular, the feature artifact will record the pipeline/main SHA instead of the commit that produced its binary, making the provenance manifest inaccurate. Read HEAD from the checked-out source tree instead.
          commit_sha     = "$(Build.SourceVersion)"

.azure-pipelines/templates/IsolationSession.TestBundle.Build.Job.yml:125

  • This script cannot run from the published bundle: run_test_configs.ps1 requires wxc-test-driver.exe and runs a general configs directory, but assembly copies only wxc-exec.exe plus the IsolationSession config subset. Either omit this general runner or stage wxc-test-driver.exe and the config layout it expects.
          'run_test_configs.ps1'

type: github
name: microsoft/mxc
endpoint: MXC-GitHub-Connection
ref: refs/heads/feature/isolation-session-internal
Write-Host " -> bin/x64/wxc-exec.exe"

# Test configs (isolation_session subset)
$configs = Get-ChildItem "$(Build.SourcesDirectory)/tests/configs/isolation_session_*.json"
Comment on lines +127 to +133
foreach ($s in $scripts) {
$src = "$(Build.SourcesDirectory)/tests/scripts/$s"
if (Test-Path $src) {
Copy-Item $src "$out/test_scripts/"
Write-Host " -> test_scripts/$s"
}
}
Comment on lines +147 to +151
$isoSrcMain = "$(Pipeline.Workspace)\IsoSession-TestPackage\mxc-iso-test-bundle-main-x64"
Copy-Item -Recurse -Force "$isoSrcMain\*" "$(ob_outputDirectory)\isolation_session\main"

$isoSrcFeature = "$(Pipeline.Workspace)\IsoSession-TestPackage\mxc-iso-test-bundle-feature-x64"
Copy-Item -Recurse -Force "$isoSrcFeature\*" "$(ob_outputDirectory)\isolation_session\feature"
@bbonaby bbonaby closed this Jul 24, 2026
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.

2 participants