Skip to content

Enable NativeAOT WASI smoke test execution on Helix - #137001

Merged
MichalStrehovsky merged 6 commits into
mainfrom
copilot/enable-nativeaot-wasi-helix
Nov 10, 2026
Merged

MichalStrehovsky merged 6 commits into
mainfrom
copilot/enable-nativeaot-wasi-helix

Conversation

Copilot AI commented Nov 5, 2026

Copy link
Copy Markdown
Contributor

Enable Helix execution for the existing checked NativeAOT WASI smoke-test leg instead of only building the tests.

Reuse the CoreCLR WASI Helix queue, wasmtime provisioning/correlation payload, and generated WASI wrappers. NativeAOT wrappers execute native/<test>.wasm directly instead of passing a managed DLL to corerun. This retains shared environment forwarding, sandbox mappings, timeout handling, out-of-process orchestration, and result uploads. WASI NativeAOT submissions bypass the desktop nativeaottest.sh launcher and do not acquire a host .NET runtime. Document the execution path in the runtime-test README.

Validation

  • git diff --check — passed.
  • .dotnet/dotnet msbuild src/tests/Common/helixpublishwitharcade.proj -p:TargetOS=wasi -p:TargetArchitecture=wasm -p:RuntimeFlavor=coreclr -p:Configuration=Checked -p:NativeAotTest=true -t:StageWasmtimeForHelixPayload — passed.
  • Ad hoc MSBuild/Python harness — all 11 checks passed. Generated and executed a Helix work-item payload with a WASI Preview 2 C executable compiled using repository-pinned WASI SDK 34 and wasmtime 49.0.1. Covered argument quoting, environment forwarding, directory mappings, result uploads, numeric success/failure exit codes, traps, missing executables, and timeouts. Generated CoreCLR WASI and desktop CoreCLR/NativeAOT wrappers were byte-identical to their originals.

Not validated: full NativeAOT WASI compilation and remote Helix execution. ./build.sh clr+libs -lc release -rc checked failed during NuGet restore with NU1900/NU1905 because the vulnerability-data endpoint was unreachable. Retrying with /p:NuGetAudit=false also failed during package restore/downloads. The executable used for focused execution checks was a C WASI component, not a managed NativeAOT smoke test.

Note

This pull request was generated by GitHub Copilot.

Reuse the WASI Helix queue and wasmtime correlation payload. Launch NativeAOT WASM executables through the shared WASI wrappers instead of the desktop NativeAOT launcher.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@azure-pipelines

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

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @agocke, @dotnet/ilc-contrib
See info in area-owners.md if you want to be subscribed.

@MichalStrehovsky

Copy link
Copy Markdown
Member

@copilot I'm seeing the following failures in the CI:

Console log: 'nativeaot' from job a3e71b72-0e18-4760-b4ce-fcda739e5ec0 (azurelinux.4.amd64.open) using docker image mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-26.04-helix-webassembly-amd64@sha256:781d25ffc10d5ee78d2294ca9463fd3f0449ee9285d425d4cf5339acb12f8b59 on a002CGI
running $HELIX_CORRELATION_PAYLOAD/scripts/3ee748fd3dbd4ff792ec52d7e2843744/execute.sh in /datadisks/disk1/work/AEB809D1/w/B88D09D7/e max 14760 seconds

Output:
[BEGIN EXECUTION]
+ cd /root/helix/work/workitem/e
+ mkdir -p /datadisks/disk1/dumps/
+ /root/helix/work/correlation/scripts/3ee748fd3dbd4ff792ec52d7e2843744/execute.sh
+ export CORE_ROOT=/root/helix/work/correlation
+ export PATH=/root/helix/work/correlation/wasmtime:/home/helixbot/.jsvu/bin:/home/helixbot/.vsts-env/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+ export __TestEnv=/root/helix/work/workitem/u/SetStressModes_normal.sh
+ export __TestTimeout=600000
+ export __TestCollectionTimeoutMins=246
+ export __CollectDumps=1
+ export __CrashDumpFolder=/datadisks/disk1/dumps
+ export __TestArchitecture=wasm
+ cat /root/helix/work/workitem/u/SetStressModes_normal.sh
#!/usr/bin/env bash
export DOTNET_DbgEnableMiniDump=1
export DOTNET_EnableCrashReport=1
export DOTNET_DbgMiniDumpName=$HELIX_DUMP_FOLDER/coredump.%d.dmp
+ export TEST_HARNESS_STRIPE_TO_EXECUTE=.0.1
+ chmod +x nativeaot/nativeaot/nativeaot.sh
+ nativeaot/nativeaot/nativeaot.sh -usewatcher
BEGIN EXECUTION
timeout --preserve-status 245m wasmtime run -W exceptions=y -S http --dir /root/helix/work/workitem/e/nativeaot/nativeaot::/ --dir /root/helix/work/correlation::/core --dir /root/helix/work/workitem/uploads::/helix-upload --env HELIX_WORKITEM_UPLOAD_ROOT=/helix-upload --env CORE_ROOT=/core --env DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true --env __TestNativeAssetsLinked --env __TestOutOfProcessPlanFile --env __TestOutOfProcessResultToken --env __TestOutOfProcessResultDirectory --env __TestOutOfProcessStatusFile --env DOTNET_DbgEnableMiniDump --env DOTNET_DbgMiniDumpName --env DOTNET_EnableCrashReport /root/helix/work/workitem/e/nativeaot/nativeaot/native/nativeaot.wasm 
timeout --preserve-status 245m wasmtime run -W exceptions=y -S http --dir /root/helix/work/workitem/e/nativeaot/nativeaot::/ --dir /root/helix/work/correlation::/core --dir /root/helix/work/workitem/uploads::/helix-upload --env HELIX_WORKITEM_UPLOAD_ROOT=/helix-upload --env CORE_ROOT=/core --env DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true --env __TestNativeAssetsLinked --env __TestOutOfProcessPlanFile --env __TestOutOfProcessResultToken --env __TestOutOfProcessResultDirectory --env __TestOutOfProcessStatusFile --env DOTNET_DbgEnableMiniDump --env DOTNET_DbgMiniDumpName --env DOTNET_EnableCrashReport /root/helix/work/workitem/e/nativeaot/nativeaot/native/nativeaot.wasm 
07:51:55.585 Running test: nativeaot/Regressions/Runtime112629/Runtime112629/Runtime112629.cmd
Xunit.Sdk.FailException: Test Infrastructure Failure: Out-of-process result file '/nativeaot.outofprocess-results/..@s..@sRegressions@sRuntime112629@sRuntime112629@sRuntime112629.dll.outofprocess-result' was not found.
   at Xunit.Assert.Fail(String)
   at TestLibrary.OutOfProcessTest.ImportPrecomputedResult(String, String)
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String, String)
   at Program.<<Main>$>g__TestExecutor1|0_2(StreamWriter, StreamWriter, StreamWriter, Program.<>c__DisplayClass0_0&)
07:51:55.589 Failed test: nativeaot/Regressions/Runtime112629/Runtime112629/Runtime112629.cmd
07:51:55.590 Running test: nativeaot/SmokeTests/AttributeTrimming/AttributeTrimming/AttributeTrimming.cmd
Xunit.Sdk.FailException: Test Infrastructure Failure: Out-of-process result file '/nativeaot.outofprocess-results/..@s..@sSmokeTests@sAttributeTrimming@sAttributeTrimming@sAttributeTrimming.dll.outofprocess-result' was not found.
   at Xunit.Assert.Fail(String)
   at TestLibrary.OutOfProcessTest.ImportPrecomputedResult(String, String)
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String, String)
   at Program.<<Main>$>g__TestExecutor2|0_3(StreamWriter, StreamWriter, StreamWriter, Program.<>c__DisplayClass0_0&)
07:51:55.593 Failed test: nativeaot/SmokeTests/AttributeTrimming/AttributeTrimming/AttributeTrimming.cmd
07:51:55.593 Running test: nativeaot/SmokeTests/Determinism/Determinism/Determinism.cmd
Xunit.Sdk.FailException: Test Infrastructure Failure: Out-of-process result file '/nativeaot.outofprocess-results/..@s..@sSmokeTests@sDeterminism@sDeterminism@sDeterminism.dll.outofprocess-result' was not found.
   at Xunit.Assert.Fail(String)
   at TestLibrary.OutOfProcessTest.ImportPrecomputedResult(String, String)
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String, String)
   at Program.<<Main>$>g__TestExecutor3|0_4(StreamWriter, StreamWriter, StreamWriter, Program.<>c__DisplayClass0_0&)
07:51:55.595 Failed test: nativeaot/SmokeTests/Determinism/Determinism/Determinism.cmd
07:51:55.595 Running test: nativeaot/SmokeTests/DynamicGenerics/DynamicGenerics/DynamicGenerics.cmd
Xunit.Sdk.FailException: Test Infrastructure Failure: Out-of-process result file '/nativeaot.outofprocess-results/..@s..@sSmokeTests@sDynamicGenerics@sDynamicGenerics@sDynamicGenerics.dll.outofprocess-result' was not found.
   at Xunit.Assert.Fail(String)
   at TestLibrary.OutOfProcessTest.ImportPrecomputedResult(String, String)
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String, String)
   at Program.<<Main>$>g__TestExecutor4|0_5(StreamWriter, StreamWriter, StreamWriter, Program.<>c__DisplayClass0_0&)
07:51:55.597 Failed test: nativeaot/SmokeTests/DynamicGenerics/DynamicGenerics/DynamicGenerics.cmd
07:51:55.597 Running test: nativeaot/SmokeTests/Exceptions/Exceptions/Exceptions.cmd
Xunit.Sdk.FailException: Test Infrastructure Failure: Out-of-process result file '/nativeaot.outofprocess-results/..@s..@sSmokeTests@sExceptions@sExceptions@sExceptions.dll.outofprocess-result' was not found.
   at Xunit.Assert.Fail(String)
   at TestLibrary.OutOfProcessTest.ImportPrecomputedResult(String, String)
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String, String)
   at Program.<<Main>$>g__TestExecutor5|0_6(StreamWriter, StreamWriter, StreamWriter, Program.<>c__DisplayClass0_0&)
07:51:55.598 Failed test: nativeaot/SmokeTests/Exceptions/Exceptions/Exceptions.cmd
07:51:55.599 Running test: nativeaot/SmokeTests/FrameworkStrings/Baseline/Baseline.cmd
Xunit.Sdk.FailException: Test Infrastructure Failure: Out-of-process result file '/nativeaot.outofprocess-results/..@s..@sSmokeTests@sFrameworkStrings@sBaseline@sBaseline.dll.outofprocess-result' was not found.
   at Xunit.Assert.Fail(String)
   at TestLibrary.OutOfProcessTest.ImportPrecomputedResult(String, String)
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String, String)
   at Program.<<Main>$>g__TestExecutor6|0_7(StreamWriter, StreamWriter, StreamWriter, Program.<>c__DisplayClass0_0&)
07:51:55.602 Failed test: nativeaot/SmokeTests/FrameworkStrings/Baseline/Baseline.cmd
07:51:55.602 Running test: nativeaot/SmokeTests/FrameworkStrings/UseSystemResourceKeys/UseSystemResourceKeys.cmd
Xunit.Sdk.FailException: Test Infrastructure Failure: Out-of-process result file '/nativeaot.outofprocess-results/..@s..@sSmokeTests@sFrameworkStrings@sUseSystemResourceKeys@sUseSystemResourceKeys.dll.outofprocess-result' was not found.
   at Xunit.Assert.Fail(String)
   at TestLibrary.OutOfProcessTest.ImportPrecomputedResult(String, String)
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String, String)
   at Program.<<Main>$>g__TestExecutor7|0_8(StreamWriter, StreamWriter, StreamWriter, Program.<>c__DisplayClass0_0&)
07:51:55.605 Failed test: nativeaot/SmokeTests/FrameworkStrings/UseSystemResourceKeys/UseSystemResourceKeys.cmd
07:51:55.605 Running test: nativeaot/SmokeTests/PInvoke/PInvoke/PInvoke.cmd
Xunit.Sdk.FailException: Test Infrastructure Failure: Out-of-process result file '/nativeaot.outofprocess-results/..@s..@sSmokeTests@sPInvoke@sPInvoke@sPInvoke.dll.outofprocess-result' was not found.
   at Xunit.Assert.Fail(String)
   at TestLibrary.OutOfProcessTest.ImportPrecomputedResult(String, String)
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String, String)
   at Program.<<Main>$>g__TestExecutor8|0_9(StreamWriter, StreamWriter, StreamWriter, Program.<>c__DisplayClass0_0&)
07:51:55.608 Failed test: nativeaot/SmokeTests/PInvoke/PInvoke/PInvoke.cmd
07:51:55.608 Running test: nativeaot/SmokeTests/Preinitialization/Preinitialization/Preinitialization.cmd
Xunit.Sdk.FailException: Test Infrastructure Failure: Out-of-process result file '/nativeaot.outofprocess-results/..@s..@sSmokeTests@sPreinitialization@sPreinitialization@sPreinitialization.dll.outofprocess-result' was not found.
   at Xunit.Assert.Fail(String)
   at TestLibrary.OutOfProcessTest.ImportPrecomputedResult(String, String)
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String, String)
   at Program.<<Main>$>g__TestExecutor9|0_10(StreamWriter, StreamWriter, StreamWriter, Program.<>c__DisplayClass0_0&)
07:51:55.611 Failed test: nativeaot/SmokeTests/Preinitialization/Preinitialization/Preinitialization.cmd
07:51:55.612 Running test: nativeaot/SmokeTests/Reflection/Reflection/Reflection.cmd
Xunit.Sdk.FailException: Test Infrastructure Failure: Out-of-process result file '/nativeaot.outofprocess-results/..@s..@sSmokeTests@sReflection@sReflection@sReflection.dll.outofprocess-result' was not found.
   at Xunit.Assert.Fail(String)
   at TestLibrary.OutOfProcessTest.ImportPrecomputedResult(String, String)
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String, String)
   at Program.<<Main>$>g__TestExecutor10|0_11(StreamWriter, StreamWriter, StreamWriter, Program.<>c__DisplayClass0_0&)
07:51:55.613 Failed test: nativeaot/SmokeTests/Reflection/Reflection/Reflection.cmd
07:51:55.613 Running test: nativeaot/SmokeTests/Reflection/Reflection_FromUsage/Reflection_FromUsage.cmd
Xunit.Sdk.FailException: Test Infrastructure Failure: Out-of-process result file '/nativeaot.outofprocess-results/..@s..@sSmokeTests@sReflection@sReflection_FromUsage@sReflection_FromUsage.dll.outofprocess-result' was not found.
   at Xunit.Assert.Fail(String)
   at TestLibrary.OutOfProcessTest.ImportPrecomputedResult(String, String)
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String, String)
   at Program.<<Main>$>g__TestExecutor11|0_12(StreamWriter, StreamWriter, StreamWriter, Program.<>c__DisplayClass0_0&)
07:51:55.615 Failed test: nativeaot/SmokeTests/Reflection/Reflection_FromUsage/Reflection_FromUsage.cmd
07:51:55.615 Running test: nativeaot/SmokeTests/StackTraceMetadata/StackTraceMetadata/StackTraceMetadata.cmd
Xunit.Sdk.FailException: Test Infrastructure Failure: Out-of-process result file '/nativeaot.outofprocess-results/..@s..@sSmokeTests@sStackTraceMetadata@sStackTraceMetadata@sStackTraceMetadata.dll.outofprocess-result' was not found.
   at Xunit.Assert.Fail(String)
   at TestLibrary.OutOfProcessTest.ImportPrecomputedResult(String, String)
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String, String)
   at Program.<<Main>$>g__TestExecutor12|0_13(StreamWriter, StreamWriter, StreamWriter, Program.<>c__DisplayClass0_0&)
07:51:55.617 Failed test: nativeaot/SmokeTests/StackTraceMetadata/StackTraceMetadata/StackTraceMetadata.cmd
07:51:55.617 Running test: nativeaot/SmokeTests/StackTraceMetadata/StackTraceMetadata_Stripped/StackTraceMetadata_Stripped.cmd
Xunit.Sdk.FailException: Test Infrastructure Failure: Out-of-process result file '/nativeaot.outofprocess-results/..@s..@sSmokeTests@sStackTraceMetadata@sStackTraceMetadata_Stripped@sStackTraceMetadata_Stripped.dll.outofprocess-result' was not found.
   at Xunit.Assert.Fail(String)
   at TestLibrary.OutOfProcessTest.ImportPrecomputedResult(String, String)
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String, String)
   at Program.<<Main>$>g__TestExecutor13|0_14(StreamWriter, StreamWriter, StreamWriter, Program.<>c__DisplayClass0_0&)
07:51:55.620 Failed test: nativeaot/SmokeTests/StackTraceMetadata/StackTraceMetadata_Stripped/StackTraceMetadata_Stripped.cmd
07:51:55.620 Running test: nativeaot/SmokeTests/TrimmingBehaviors/TrimmingBehaviors/TrimmingBehaviors.cmd
Xunit.Sdk.FailException: Test Infrastructure Failure: Out-of-process result file '/nativeaot.outofprocess-results/..@s..@sSmokeTests@sTrimmingBehaviors@sTrimmingBehaviors@sTrimmingBehaviors.dll.outofprocess-result' was not found.
   at Xunit.Assert.Fail(String)
   at TestLibrary.OutOfProcessTest.ImportPrecomputedResult(String, String)
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String, String)
   at Program.<<Main>$>g__TestExecutor14|0_15(StreamWriter, StreamWriter, StreamWriter, Program.<>c__DisplayClass0_0&)
07:51:55.623 Failed test: nativeaot/SmokeTests/TrimmingBehaviors/TrimmingBehaviors/TrimmingBehaviors.cmd
07:51:55.624 Running test: nativeaot/SmokeTests/UnitTests/UnitTests/UnitTests.cmd
Xunit.Sdk.FailException: Test Infrastructure Failure: Out-of-process result file '/nativeaot.outofprocess-results/..@s..@sSmokeTests@sUnitTests@sUnitTests@sUnitTests.dll.outofprocess-result' was not found.
   at Xunit.Assert.Fail(String)
   at TestLibrary.OutOfProcessTest.ImportPrecomputedResult(String, String)
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String, String)
   at Program.<<Main>$>g__TestExecutor15|0_16(StreamWriter, StreamWriter, StreamWriter, Program.<>c__DisplayClass0_0&)
07:51:55.626 Failed test: nativeaot/SmokeTests/UnitTests/UnitTests/UnitTests.cmd
07:51:55.626 Running test: nativeaot/StartupHook/StartupHook/StartupHook.cmd
Xunit.Sdk.FailException: Test Infrastructure Failure: Out-of-process result file '/nativeaot.outofprocess-results/..@s..@sStartupHook@sStartupHook@sStartupHook.dll.outofprocess-result' was not found.
   at Xunit.Assert.Fail(String)
   at TestLibrary.OutOfProcessTest.ImportPrecomputedResult(String, String)
   at TestLibrary.OutOfProcessTest.RunOutOfProcessTest(String, String)
   at Program.<<Main>$>g__TestExecutor16|0_17(StreamWriter, StreamWriter, StreamWriter, Program.<>c__DisplayClass0_0&)
07:51:55.629 Failed test: nativeaot/StartupHook/StartupHook/StartupHook.cmd
Expected: 100
Actual: 100
END EXECUTION - PASSED
+ test_exit_code=0
+ xunitlogchecker_exit_code=0
+ result_exit_code=0
+ [ 0 -ne 0 ]
+ [ 0 -ne 0 ]
+ set_return 0
+ return 0
+ export _commandExitCode=0
+ find . -maxdepth 5 ( -iname *.trx -o -iname testResults.xml -o -iname test-results.xml -o -iname test_results.xml -o -iname junit-results.xml -o -iname junitresults.xml ) -print0
+ xargs -0 -I {} sh -c mkdir -p "$HELIX_WORKITEM_UPLOAD_ROOT/$" && cp -f "{}" "$HELIX_WORKITEM_UPLOAD_ROOT/{}"
+ exit 0
+ _commandExitCode=0
+ chmod -R 777 /datadisks/disk1/dumps
+ exit 0

[END EXECUTION]
Exit Code:0

Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>

Copilot AI commented Nov 5, 2026

Copy link
Copy Markdown
Contributor Author

@copilot I'm seeing the following failures in the CI:

...

Fixed in 3927866. Result import incorrectly applied NativeAOT’s extra .. prefix, although the plan writer and shell result filenames do not include it. The prefix now applies only to desktop executable lookup.

Added four regression cases, verified failing before the fix and passing afterward on CoreCLR; all four also pass as compiled NativeAOT WASI.

Built and ran the real WASI smoke tree locally: all 16 results now import, with 14 passing and two separate child-test failures remaining:

  • PInvoke: cannot load PInvokeNative.
  • UnitTests: null stack-frame filename in TestLineNumbers.

Those failures are not suppressed. These counts come from the XML; the merged runner still returns 100 despite test failures. Remote Helix execution of the fix has not been validated.

@MichalStrehovsky

Copy link
Copy Markdown
Member

@copilot revert the changes in TestConfigTester.cs‎ and src/tests/README.md

Co-authored-by: MichalStrehovsky <13110571+MichalStrehovsky@users.noreply.github.com>

Copilot AI commented Nov 10, 2026

Copy link
Copy Markdown
Contributor Author

@copilot revert the changes in TestConfigTester.cs‎ and src/tests/README.md

Reverted both files in 8c77750. Verified they exactly match their pre-PR contents; all other changes remain intact.

@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.

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.

🟡 Changes recommended

The template call in eng/pipelines/runtime.yml passes the undeclared testRunNamePrefixSuffix parameter, causing Azure Pipelines to reject the call before the leg can build or submit tests.

1 open issue
What changed in this PR

This PR enables Helix execution for the existing checked NativeAOT WASI smoke-test leg, reusing the CoreCLR WASI infrastructure.

Changes:

  • Connects the pipeline leg to NativeAOT test submission and WASI Helix queues.
  • Runs NativeAOT .wasm executables directly under wasmtime without acquiring a host .NET runtime.
  • Aligns precomputed result lookup with test-plan paths and skips stack-trace line-number checks on WebAssembly.
File Description
src/​tests/​nativeaot/​SmokeTests/​UnitTests/​StackTraces.cs Skips line-number checks on WebAssembly for a tracked issue.
src/​tests/​Common/​helixpublishwitharcade.proj Bypasses desktop NativeAOT launchers and host runtime acquisition for WASI.
src/​tests/​Common/​CoreCLRTestLibrary/​OutOfProcessTest.cs Uses test-plan paths when importing precomputed results.
src/​tests/​Common/​CLRTest.Execute.Bash.targets Launches NativeAOT WASI executables directly through wasmtime.
eng/​pipelines/​runtime.yml Changes the checked NativeAOT WASI leg from build-only to Helix execution.

Review effort: Balanced

Comment thread eng/pipelines/runtime.yml Resolved
@MichalStrehovsky

Copy link
Copy Markdown
Member

Native AOT WASI-WASM now runs in the CI, logs from this run at https://helixr1107v0xdeko0k025g8.blob.core.windows.net/dotnet-runtime-refs-pull-137001-merge-c71c6e6d871247e093/nativeaot/1/console.632c6657.log?helixlogtype=result.

@dotnet/ilc-contrib could someone have a look?

@MichalStrehovsky

Copy link
Copy Markdown
Member

/ba-g the mac legs have been stuck for 19 hours, I don't think they will finish. relevant leg was good and I also spot checked CoreCLR WASI manually

@MichalStrehovsky
MichalStrehovsky merged commit e5e56bd into main Nov 10, 2026
208 of 212 checks passed
@MichalStrehovsky
MichalStrehovsky deleted the copilot/enable-nativeaot-wasi-helix branch November 10, 2026 23:43
@dotnet-milestone-bot dotnet-milestone-bot Bot added this to the 12.0-preview1 milestone Nov 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

arch-wasm WebAssembly architecture area-NativeAOT-coreclr

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants