Skip to content

Move Wasm.Build.Tests into a dedicated WasmBuildTests pipeline stage#130773

Closed
pavelsavara with Copilot wants to merge 1 commit into
mainfrom
copilot/research-dotnet-runtime-issue-118938
Closed

Move Wasm.Build.Tests into a dedicated WasmBuildTests pipeline stage#130773
pavelsavara with Copilot wants to merge 1 commit into
mainfrom
copilot/research-dotnet-runtime-issue-118938

Conversation

Copilot AI commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Fixes #118938

Wasm.Build.Tests (WBT) jobs were inlined in the Build stage of every pipeline that runs them. This moves WBT into a dedicated WasmBuildTests stage across all such pipelines (runtime.yml, runtime-wasm.yml, runtime-wasm-non-libtests.yml), keeping the build-only producer jobs in Build.

Consumer templates

  • browser-wasm-build-tests.yml and browser-wasm-coreclr-build-tests.yml gain a separateStage param (default false). When true, the cross-stage job-level dependsOn on the *_BuildOnly / *_CoreCLR producers is dropped — job dependencies are stage-scoped in AzDO. Producer artifacts are still pulled via the existing DownloadBuildArtifacts@0 (buildType: current), which resolves across stages.

runtime.yml

  • Browser CoreCLR + browser Mono WBT relocated from Build into a new sibling - stage: WasmBuildTests.

Extra-platforms path

  • New stages template extra-platforms/runtime-extra-platforms-wasm-build-tests.yml emits the WasmBuildTests stage (browser Mono + wasi), reusing the same compile-time guard so it never produces an empty stage.
  • WBT consumers removed from the runtime-extra-platforms-wasm.yml jobs fragment; producers and wasm-runtime-tests stay in Build.
  • runtime-wasm.yml and runtime-wasm-non-libtests.yml — the only two extra-platforms wrappers where WBT actually runs — include the new stage template.

Stage dependencies

The new stage depends on Build and EvaluatePaths (on PRs). WBT job conditions consume xplat-setup variables (shouldRunWasmBuildTestsOnDefaultPipeline, etc.) derived from $[ stageDependencies.EvaluatePaths… ]; without the EvaluatePaths dependency they would silently evaluate to empty.

- stage: WasmBuildTests
  displayName: Wasm.Build.Tests
  dependsOn:
  - Build
  - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
    - EvaluatePaths

Note

Full AzDO template semantics (cross-stage artifact availability, stageDependencies resolution, skip propagation) can only be confirmed by running the pipelines on Azure DevOps. Local validation covered YAML parsing and stage topology.

Co-authored-by: pavelsavara <271576+pavelsavara@users.noreply.github.com>
Copilot AI review requested due to automatic review settings July 15, 2026 11:30
Copilot AI removed the request for review from Copilot July 15, 2026 11:30
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 5 pipeline(s).
10 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@pavelsavara pavelsavara added arch-wasm WebAssembly architecture os-browser Browser variant of arch-wasm labels Jul 15, 2026
@pavelsavara
pavelsavara temporarily deployed to copilot-pat-pool July 15, 2026 13:30 — with GitHub Actions Inactive
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to 'arch-wasm': @lewing, @pavelsavara
See info in area-owners.md if you want to be subscribed.

@pavelsavara
pavelsavara temporarily deployed to copilot-pat-pool July 15, 2026 13:30 — with GitHub Actions Inactive
@pavelsavara

Copy link
Copy Markdown
Member

This is actually slower

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

arch-wasm WebAssembly architecture area-Infrastructure-mono os-browser Browser variant of arch-wasm

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[browser][WBT] - make WBT test schedule helix jobs in parallel

2 participants