Add iso session test bundle for os vpack - #678
Closed
bbonaby wants to merge 5 commits into
Closed
Conversation
|
Azure Pipelines: There may be pipelines that require an authorized user to comment /azp run to run. |
Contributor
There was a problem hiding this comment.
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
distdirectory makes the bundledrun-tests.jsexecute every integration test. On Windows,package.test.jsrequires seven SDK binaries, but this bundle stages onlywxc-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"
| $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' | ||
| ) |
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>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
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.SourceVersionidentifies the pipeline's self repository/version, not the repository resource selected bycheckoutRepo. 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.ps1requireswxc-test-driver.exeand runs a general configs directory, but assembly copies onlywxc-exec.exeplus the IsolationSession config subset. Either omit this general runner or stagewxc-test-driver.exeand 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" |
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
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=resultsVpack validation will happen after this is checked in.
✅ Checklist
Cargo.lock, thedependency-feed-checkcheck passes (see docs/pull-requests.md)📋 Issue Type
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 GitHubActions build; it runs on merge to
main, and Microsoft reviewers with write access can trigger iton a PR with
/azp run. See docs/pull-requests.md.If the
dependency-feed-checkcheck fails on a new dependency, the crate must be added tothe feed before the PR can pass. See docs/pull-requests.md
for the steps.
Microsoft Reviewers: Open in CodeFlow