|
81 | 81 |
|
82 | 82 | <NeedsWorkload Condition="'$(Scenario)' == 'BuildWasmApps'">true</NeedsWorkload> |
83 | 83 | <NeedsEMSDK Condition="'$(NeedsToBuildWasmAppsOnHelix)' == 'true'">true</NeedsEMSDK> |
84 | | - <!-- CoreCLR WBT re-links dotnet.native.wasm per-app via emcc, so it needs the full EMSDK payload too. --> |
85 | | - <NeedsEMSDK Condition="'$(RuntimeFlavor)' == 'CoreCLR' and '$(Scenario)' == 'BuildWasmApps'">true</NeedsEMSDK> |
86 | 84 | <NeedsEMSDKNode Condition="'$(Scenario)' == 'BuildWasmApps'">false</NeedsEMSDKNode> |
87 | 85 | <NeedsToRunOnChrome Condition="'$(Scenario)' == 'WasmTestOnChrome' or '$(Scenario)' == 'BuildWasmApps'">true</NeedsToRunOnChrome> |
88 | 86 | <NeedsToRunOnFirefox Condition="'$(Scenario)' == 'WasmTestOnFirefox'">true</NeedsToRunOnFirefox> |
|
111 | 109 |
|
112 | 110 | <!-- |
113 | 111 | Stage emsdk as a Helix dependency so it ends up at $(EmSdkDirForHelixPayload) and can be |
114 | | - packaged into the correlation payload. This is needed for CoreCLR WBT agents, which do not |
115 | | - build the wasm runtime locally and therefore do not pre-populate the shared wasm tool cache. |
116 | | - Those agents provision emsdk in a separate pipeline step before sendtohelix runs, at which |
117 | | - point AcquireEmscriptenSdk.props/targets set $(EMSDK_PATH) during project evaluation. |
| 112 | + packaged into the correlation payload. |
118 | 113 |
|
119 | 114 | This ItemGroup must be at project-evaluation scope (not inside a target), because |
120 | 115 | StageDependenciesForHelix guards its body with a condition over @(HelixDependenciesToStage) |
|
177 | 172 | <HelixPreCommand Include="$(EnvVarCommand) PATH=$(_HelixLocalNodePath)/%_HELIX_NODEJS_VERSION%/bin%3B%PATH%" /> |
178 | 173 | </ItemGroup> |
179 | 174 |
|
180 | | - <!-- |
181 | | - CoreCLR WBT (BuildWasmApps) needs BrowserWasmApp.CoreCLR.targets and its import chain on Helix. |
182 | | - The NeedsEMSDK payload already ships BrowserBuildTargetsDir (build/wasm), WasmAppBuilderDir |
183 | | - (build/WasmAppBuilder) and EmSdk (build/emsdk); eng/native.wasm.targets + AcquireEmscriptenSdk.targets |
184 | | - are shipped as build/eng. These env vars bridge those payload locations to the MSBuild properties |
185 | | - consumed by BrowserWasmApp.CoreCLR.targets when the test-created project imports it. |
186 | | - --> |
187 | | - <ItemGroup Condition="'$(RuntimeFlavor)' == 'CoreCLR' and '$(Scenario)' == 'BuildWasmApps' and '$(WindowsShell)' != 'true'"> |
188 | | - <HelixPreCommand Include="$(EnvVarCommand) REPOSITORY_ENGINEERING_DIR=$HELIX_CORRELATION_PAYLOAD/build/eng/" /> |
189 | | - <HelixPreCommand Include="$(EnvVarCommand) BROWSER_BUILD_TARGETS_DIR=$HELIX_CORRELATION_PAYLOAD/build/wasm/" /> |
190 | | - <HelixPreCommand Include="$(EnvVarCommand) WASM_APP_BUILDER_TASKS_ASSEMBLY_PATH=$HELIX_CORRELATION_PAYLOAD/build/WasmAppBuilder/WasmAppBuilder.dll" /> |
191 | | - <HelixPreCommand Include="$(EnvVarCommand) EMSDK_PATH=$HELIX_CORRELATION_PAYLOAD/build/emsdk/" /> |
192 | | - <HelixPreCommand Include="$(EnvVarCommand) MINIPAL_INCLUDE_DIR=$HELIX_CORRELATION_PAYLOAD/build/minipal/" /> |
193 | | - <HelixPreCommand Include="$(EnvVarCommand) CORECLR_VM_WASM_INCLUDE_DIR=$HELIX_CORRELATION_PAYLOAD/build/coreclr-vm-wasm/" /> |
194 | | - </ItemGroup> |
195 | | - |
196 | | - <ItemGroup Condition="'$(RuntimeFlavor)' == 'CoreCLR' and '$(Scenario)' == 'BuildWasmApps' and '$(WindowsShell)' == 'true'"> |
197 | | - <HelixPreCommand Include="$(EnvVarCommand) REPOSITORY_ENGINEERING_DIR=%HELIX_CORRELATION_PAYLOAD%\build\eng\" /> |
198 | | - <HelixPreCommand Include="$(EnvVarCommand) BROWSER_BUILD_TARGETS_DIR=%HELIX_CORRELATION_PAYLOAD%\build\wasm\" /> |
199 | | - <HelixPreCommand Include="$(EnvVarCommand) WASM_APP_BUILDER_TASKS_ASSEMBLY_PATH=%HELIX_CORRELATION_PAYLOAD%\build\WasmAppBuilder\WasmAppBuilder.dll" /> |
200 | | - <HelixPreCommand Include="$(EnvVarCommand) EMSDK_PATH=%HELIX_CORRELATION_PAYLOAD%\build\emsdk\" /> |
201 | | - <HelixPreCommand Include="$(EnvVarCommand) MINIPAL_INCLUDE_DIR=%HELIX_CORRELATION_PAYLOAD%\build\minipal\" /> |
202 | | - <HelixPreCommand Include="$(EnvVarCommand) CORECLR_VM_WASM_INCLUDE_DIR=%HELIX_CORRELATION_PAYLOAD%\build\coreclr-vm-wasm\" /> |
203 | | - </ItemGroup> |
204 | | - |
205 | 175 | <PropertyGroup Condition="'$(Scenario)' == 'BuildWasmApps'"> |
206 | 176 | <BuildWasmAppsJobsList Condition="'$(RuntimeFlavor)' == 'Mono'">$(RepositoryEngineeringDir)testing\scenarios\BuildWasmAppsJobsList.txt</BuildWasmAppsJobsList> |
207 | 177 | <BuildWasmAppsJobsList Condition="'$(RuntimeFlavor)' == 'CoreCLR'">$(RepositoryEngineeringDir)testing\scenarios\BuildWasmAppsJobsListCoreCLR.txt</BuildWasmAppsJobsList> |
208 | 178 | <_XUnitTraitArg Condition="'$(TestUsingWorkloads)' == 'true'">-notrait category=no-workload</_XUnitTraitArg> |
209 | 179 | <_XUnitTraitArg Condition="'$(TestUsingWorkloads)' != 'true'">-trait category=no-workload</_XUnitTraitArg> |
210 | 180 | <_XUnitTraitArg Condition="'$(WasmFingerprintAssets)' == 'false'">$(_XUnitTraitArg) -trait category=no-fingerprinting</_XUnitTraitArg> |
211 | 181 | <_XUnitTraitArg Condition="'$(WasmBundlerFriendlyBootConfig)' == 'true'">$(_XUnitTraitArg) -trait category=bundler-friendly</_XUnitTraitArg> |
212 | | - <_XUnitTraitArg Condition="'$(RuntimeFlavor)' == 'CoreCLR'">-notrait category=native-mono -notrait category=mono -notrait category=workload</_XUnitTraitArg> |
| 182 | + <!-- Mono-specific tests never apply to CoreCLR. Tests that are both native and Mono-only carry |
| 183 | + the `mono` category too, so excluding `mono` alone covers them; `native` on its own marks |
| 184 | + relink/AOT coverage that CoreCLR does run. The workload/no-workload selection above still applies. --> |
| 185 | + <_XUnitTraitArg Condition="'$(RuntimeFlavor)' == 'CoreCLR'">$(_XUnitTraitArg) -notrait category=mono</_XUnitTraitArg> |
213 | 186 | </PropertyGroup> |
214 | 187 |
|
215 | 188 | <PropertyGroup> |
|
311 | 284 | <HelixCorrelationPayload Include="$(MonoTargetsTasksDir)" Destination="build/MonoTargetsTasks" /> |
312 | 285 | </ItemGroup> |
313 | 286 |
|
314 | | - <!-- CoreCLR WBT needs eng/native.wasm.targets + eng/AcquireEmscriptenSdk.targets (the import chain |
315 | | - of BrowserWasmApp.CoreCLR.targets) shipped alongside BrowserBuildTargetsDir. Stage them into |
316 | | - a directory first — HelixCorrelationPayload on individual files causes the Helix client to |
317 | | - try unzipping them as archives. --> |
318 | | - <PropertyGroup Condition="'$(NeedsEMSDK)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR'"> |
319 | | - <_CoreCLRWbtEngPayloadDir>$(ArtifactsObjDir)helix-staging\coreclr-wbt-eng\</_CoreCLRWbtEngPayloadDir> |
320 | | - </PropertyGroup> |
321 | | - <ItemGroup Condition="'$(NeedsEMSDK)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR'"> |
322 | | - <_CoreCLRWbtEngFiles Include="$(RepositoryEngineeringDir)native.wasm.targets" /> |
323 | | - <_CoreCLRWbtEngFiles Include="$(RepositoryEngineeringDir)AcquireEmscriptenSdk.targets" /> |
324 | | - </ItemGroup> |
325 | | - <Copy Condition="'$(NeedsEMSDK)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR'" |
326 | | - SourceFiles="@(_CoreCLRWbtEngFiles)" |
327 | | - DestinationFolder="$(_CoreCLRWbtEngPayloadDir)" |
328 | | - SkipUnchangedFiles="true" /> |
329 | | - <ItemGroup Condition="'$(NeedsEMSDK)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR'"> |
330 | | - <HelixCorrelationPayload Include="$(_CoreCLRWbtEngPayloadDir)" Destination="build/eng" /> |
331 | | - </ItemGroup> |
332 | | - |
333 | | - <!-- CoreCLR WBT: ship src/native/minipal/{utils.h,entrypoints.h} and |
334 | | - src/coreclr/vm/wasm/callhelpers.hpp into the payload so per-app native |
335 | | - re-link (BrowserWasmApp.CoreCLR.targets) can resolve the #include lines |
336 | | - emitted by ManagedToNativeGenerator output. Stage into directories first |
337 | | - because HelixCorrelationPayload on individual files causes the Helix |
338 | | - client to try unzipping them as archives. --> |
339 | | - <PropertyGroup Condition="'$(NeedsEMSDK)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR'"> |
340 | | - <_CoreCLRWbtMinipalPayloadDir>$(ArtifactsObjDir)helix-staging\coreclr-wbt-minipal\</_CoreCLRWbtMinipalPayloadDir> |
341 | | - <_CoreCLRWbtVmWasmPayloadDir>$(ArtifactsObjDir)helix-staging\coreclr-wbt-vm-wasm\</_CoreCLRWbtVmWasmPayloadDir> |
342 | | - </PropertyGroup> |
343 | | - <ItemGroup Condition="'$(NeedsEMSDK)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR'"> |
344 | | - <_CoreCLRWbtMinipalFiles Include="$(RepoRoot)src\native\minipal\utils.h" /> |
345 | | - <_CoreCLRWbtMinipalFiles Include="$(RepoRoot)src\native\minipal\entrypoints.h" /> |
346 | | - <_CoreCLRWbtVmWasmFiles Include="$(RepoRoot)src\coreclr\vm\wasm\callhelpers.hpp" /> |
347 | | - </ItemGroup> |
348 | | - <Copy Condition="'$(NeedsEMSDK)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR'" |
349 | | - SourceFiles="@(_CoreCLRWbtMinipalFiles)" |
350 | | - DestinationFolder="$(_CoreCLRWbtMinipalPayloadDir)" |
351 | | - SkipUnchangedFiles="true" /> |
352 | | - <Copy Condition="'$(NeedsEMSDK)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR'" |
353 | | - SourceFiles="@(_CoreCLRWbtVmWasmFiles)" |
354 | | - DestinationFolder="$(_CoreCLRWbtVmWasmPayloadDir)" |
355 | | - SkipUnchangedFiles="true" /> |
356 | | - <ItemGroup Condition="'$(NeedsEMSDK)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR'"> |
357 | | - <HelixCorrelationPayload Include="$(_CoreCLRWbtMinipalPayloadDir)" Destination="build/minipal" /> |
358 | | - <HelixCorrelationPayload Include="$(_CoreCLRWbtVmWasmPayloadDir)" Destination="build/coreclr-vm-wasm" /> |
359 | | - </ItemGroup> |
360 | | - |
361 | 287 | <!-- copy node separately only if EMSDK is not being included --> |
362 | 288 | <ItemGroup Condition="'$(IncludeNodePayload)' == 'true'"> |
363 | 289 | <HelixCorrelationPayload Include="$(EmSdkDirForHelixPayload)node" Destination="build/emsdk-node" /> |
|
0 commit comments