Skip to content

Commit d7445a9

Browse files
Initial Helix version
Known to be broken because we don't have the right SDK.
1 parent fe569e3 commit d7445a9

13 files changed

+168
-76
lines changed

eng/pipelines/common/global-build-job.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -205,10 +205,13 @@ jobs:
205205
# Install Wasm dependencies: emscripten, LLVM, NodeJS
206206
- ${{ if and(eq(parameters.runtimeFlavor, 'coreclr'), eq(parameters.archType, 'wasm')) }}:
207207
- ${{ if ne(parameters.hostedOs, 'windows') }}:
208-
- script: /tmp/docker exec -t -u 0 naot-llvm-ci-container sh -c "tdnf install -y sudo"
209-
displayName: Install sudo
210-
- script: $(Build.SourcesDirectory)/eng/pipelines/runtimelab/install-build-and-test-tools.sh
211-
displayName: Install NativeAOT-LLVM build and test tools
208+
- ${{ if eq(parameters.hostedTargetArch, '') }}:
209+
- script: /tmp/docker exec -t -u 0 naot-llvm-ci-container sh -c "tdnf install -y sudo"
210+
displayName: Install sudo
211+
- script: sudo tdnf install -y lldb python3-lldb
212+
displayName: Install LLDB
213+
- script: $(Build.SourcesDirectory)/eng/pipelines/runtimelab/set-emsdk-python.sh
214+
displayName: Set EMSDK_PYTHON
212215
- script: pwsh $(Build.SourcesDirectory)/eng/pipelines/runtimelab/install-emscripten.ps1 $(Build.SourcesDirectory)/wasm-tools -CI
213216
displayName: Install/activate emscripten
214217
- ${{ if eq(parameters.hostedOs, 'windows') }}:
@@ -240,6 +243,7 @@ jobs:
240243
- ${{ if ne(preBuildStep.template, '') }}:
241244
- template: ${{ preBuildStep.template }}
242245
parameters:
246+
hostedOs: ${{ parameters.hostedOs }}
243247
osGroup: ${{ parameters.osGroup }}
244248
osSubgroup: ${{ parameters.osSubgroup }}
245249
archType: ${{ parameters.archType }}
@@ -279,6 +283,7 @@ jobs:
279283
- ${{ if ne(postBuildStep.template, '') }}:
280284
- template: ${{ postBuildStep.template }}
281285
parameters:
286+
hostedOs: ${{ parameters.hostedOs }}
282287
osGroup: ${{ parameters.osGroup }}
283288
osSubgroup: ${{ parameters.osSubgroup }}
284289
archType: ${{ parameters.archType }}

eng/pipelines/common/platform-matrix.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -541,18 +541,18 @@ jobs:
541541
buildConfig: ${{ parameters.buildConfig }}
542542
${{ insert }}: ${{ parameters.jobParameters }}
543543

544-
- ${{ if containsValue(parameters.platforms, 'browser_wasm_linux_arm64_naot_llvm') }}:
544+
- ${{ if containsValue(parameters.platforms, 'wasi_wasm_linux_arm64_naot_llvm') }}:
545545
- template: xplat-setup.yml
546546
parameters:
547547
jobTemplate: ${{ parameters.jobTemplate }}
548548
helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }}
549549
variables: ${{ parameters.variables }}
550-
osGroup: browser
550+
osGroup: wasi
551551
archType: wasm
552-
targetRid: browser-wasm
553-
platform: browser_wasm_linux_arm64_naot_llvm
552+
targetRid: wasi-wasm
553+
platform: wasi_wasm_linux_arm64_naot_llvm
554554
shouldContinueOnError: ${{ parameters.shouldContinueOnError }}
555-
container: linux_arm64_naot_llvm
555+
container: linux_arm64
556556
jobParameters:
557557
hostedOs: linux
558558
hostedTargetArch: arm64

eng/pipelines/common/templates/pipeline-with-resources.yml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,6 @@ extends:
8888
env:
8989
ROOTFS_DIR: /crossrootfs/x64
9090

91-
# For arm64, we need to install QEMU.
92-
linux_arm64_naot_llvm:
93-
image: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-net10.0-cross-arm64
94-
options: '--name naot-llvm-ci-container -v /usr/bin/docker:/tmp/docker:ro'
95-
env:
96-
ROOTFS_DIR: /crossrootfs/arm64
97-
9891
# We use a CentOS Stream 8 image here to test building from source on CentOS Stream 9.
9992
SourceBuild_centos_x64:
10093
image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9

eng/pipelines/coreclr/templates/helix-queues-setup.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ jobs:
6868
- (Debian.12.Arm32)[email protected]/dotnet-buildtools/prereqs:debian-12-helix-arm32v7
6969

7070
# Linux arm64
71-
- ${{ if eq(parameters.platform, 'linux_arm64') }}:
71+
- ${{ if in(parameters.platform, 'linux_arm64', 'wasi_wasm_linux_arm64_naot_llvm') }}:
7272
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
7373
- (Ubuntu.2004.Arm64.Open)[email protected]/dotnet-buildtools/prereqs:ubuntu-20.04-helix-arm64v8
7474
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:

eng/pipelines/runtimelab-official.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ extends:
3838
platforms:
3939
- browser_wasm_win
4040
- wasi_wasm_win
41-
- browser_wasm_linux_x64_naot_llvm
42-
- browser_wasm_linux_arm64_naot_llvm
41+
- wasi_wasm_linux_x64_naot_llvm
42+
- wasi_wasm_linux_arm64_naot_llvm
4343
jobParameters:
4444
templatePath: 'templates-official'
4545
timeoutInMinutes: 300

eng/pipelines/runtimelab.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ extends:
115115
- template: /eng/pipelines/common/platform-matrix.yml
116116
parameters:
117117
jobTemplate: /eng/pipelines/common/global-build-job.yml
118-
helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
118+
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
119119
buildConfig: release
120120
platforms:
121121
# - linux_x64
@@ -125,7 +125,7 @@ extends:
125125
# - wasi_wasm_win
126126
# - browser_wasm_linux_x64_naot_llvm
127127
# - wasi_wasm_linux_x64_naot_llvm
128-
- browser_wasm_linux_arm64_naot_llvm
128+
- wasi_wasm_linux_arm64_naot_llvm
129129
jobParameters:
130130
timeoutInMinutes: 300
131131
buildArgs: -s clr.aot+libs -c $(_BuildConfig)

eng/pipelines/runtimelab/install-wasi-sdk.ps1

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
param(
22
$InstallDir,
3+
$HostArch = $null,
34
[switch]$CI
45
)
56

@@ -16,20 +17,29 @@ if ($WasiSdkVersion -lt [int]$UpstreamWasiSdkVersion)
1617
exit
1718
}
1819

19-
if ($IsWindows)
20+
if (!$HostArch)
2021
{
21-
$WasiSdkHost = "x86_64-windows"
22+
$HostArch = [Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture
2223
}
23-
else
24+
$WasiSdkHostArch = switch ($HostArch)
2425
{
25-
$WasiSdkHost = "x86_64-linux"
26+
x64 { "x86_64" }
27+
default { "$HostArch".ToLowerInvariant() }
28+
}
29+
30+
$WasiSdkHost = $IsWindows ? "$WasiSdkHostArch-windows" : "$WasiSdkHostArch-linux"
31+
if ($WasiSdkHost -eq "arm64-windows")
32+
{
33+
# TODO-LLVM: remove once we updgrade to WASI SDK 27.0 that supports win-arm64. For now we rely on emulation.
34+
$WasiSdkHost = "x86_64-windows"
2635
}
2736
$WasiSdkDirName = "wasi-sdk-$WasiSdkVersion.0-$WasiSdkHost"
2837
$WasiSdkGzFile = "$WasiSdkDirName.tar.gz"
2938

3039
Invoke-WebRequest -Uri https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$WasiSdkVersion/$WasiSdkGzFile -OutFile $WasiSdkGzFile
3140

3241
tar -xzf $WasiSdkGzFile
42+
del $WasiSdkGzFile
3343
mv $WasiSdkDirName wasi-sdk
3444

3545
# The upstream build expects this sentinel to exist, otherwise it tries to use a provisioned SDK.

eng/pipelines/runtimelab/remove-duplicate-packages.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ if (!$PublishTargetPackages)
4040
Remove-Item -Force $PackagesPath/$TargetPackagePattern
4141
}
4242

43-
$PublishHostPackages = $TargetOS -eq "browser"
43+
$PublishHostPackages = $TargetOS -eq "wasi"
4444
if (!$PublishHostPackages)
4545
{
4646
$HostPackagePattern = "runtime.$HostRid.Microsoft.DotNet.ILCompiler.LLVM.*.nupkg"

eng/pipelines/runtimelab/runtimelab-post-build-steps.yml

Lines changed: 35 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -25,35 +25,44 @@ steps:
2525
- script: $(Build.SourcesDirectory)/build$(scriptExt) libs+nativeaot.packages -a $(hostedTargetArch) -c $(buildConfigUpper) -cross $(_officialBuildParameter) -ci
2626
displayName: Build host packages
2727

28-
# Build coreclr native test output outside of official build
28+
# Build and run runtime tests outside of official build
2929
- ${{ if ne(parameters.isOfficialBuild, true) }}:
30-
- ${{ if and(eq(parameters.archType, 'wasm'), ne(parameters.nameSuffix, ''), eq(parameters.wasmEnableThreadsArg, '')) }}:
31-
- script: pwsh $(Build.SourcesDirectory)/eng/pipelines/runtimelab/set-ilc-emulation-environment.ps1 -Arch $(hostedTargetArch)
32-
displayName: Set up ILC emulation environment
3330

34-
# - ${{ if eq(parameters.archType, 'wasm') }}:
35-
# - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) nativeaot $(buildConfigUpper) ${{ parameters.osGroup }} $(crossArg) $(_officialBuildParameter) ci tree nativeaot /p:LibrariesConfiguration=${{ parameters.librariesConfiguration }} ${{ parameters.wasmEnableThreadsArg }}
36-
# displayName: Build runtime tests
37-
# - ${{ else }}:
38-
# - ${{ if eq(parameters.osGroup, 'windows') }}:
39-
# - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) nativeaot $(buildConfigUpper) ${{ parameters.archType }} $(crossArg) $(_officialBuildParameter) ci tree nativeaot /p:LibrariesConfiguration=${{ parameters.librariesConfiguration }}
40-
# displayName: Build runtime tests
41-
# - ${{ else }}:
42-
# - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) nativeaot $(buildConfigUpper) ${{ parameters.archType }} $(crossArg) $(_officialBuildParameter) ci 'tree nativeaot' /p:LibrariesConfiguration=${{ parameters.librariesConfiguration }}
43-
# displayName: Build runtime tests
44-
#
45-
# - ${{ if contains(parameters.platform, 'win') }}:
46-
# - ${{ if eq(parameters.wasmEnableThreadsArg, '') }}:
47-
# - script: $(Build.SourcesDirectory)/src/tests/run$(scriptExt) runnativeaottests $(buildConfigUpper) ${{ parameters.archType }} ${{ parameters.osGroup }}
48-
# displayName: Run runtime tests
49-
# - ${{ else }}:
50-
# - script: $(Build.SourcesDirectory)/src/tests/run$(scriptExt) --runnativeaottests $(buildConfigUpper) ${{ parameters.archType }} ${{ parameters.osGroup }}
51-
# displayName: Run runtime tests
31+
# Full validation with ILC that we can run on the build machine.
32+
- ${{ if ne(parameters.nameSuffix, 'arm64') }}:
33+
- ${{ if eq(parameters.hostedOs, 'windows') }}:
34+
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) nativeaot $(buildConfigUpper) ${{ parameters.archType }} $(crossArg) $(_officialBuildParameter) ci tree nativeaot /p:LibrariesConfiguration=${{ parameters.librariesConfiguration }} ${{ parameters.wasmEnableThreadsArg }}
35+
displayName: Build runtime tests
36+
- ${{ else }}:
37+
- script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) nativeaot $(buildConfigUpper) ${{ parameters.archType }} $(crossArg) $(_officialBuildParameter) ci 'tree nativeaot' /p:LibrariesConfiguration=${{ parameters.librariesConfiguration }} ${{ parameters.wasmEnableThreadsArg }}
38+
displayName: Build runtime tests
5239

53-
# Don't compile/run the libraries tests with emulated ILC to save CI time/resources.
54-
- ${{ if and(eq(parameters.archType, 'wasm'), eq(parameters.nameSuffix, ''), eq(parameters.wasmEnableThreadsArg, '')) }}:
55-
- script: $(Build.SourcesDirectory)/build$(scriptExt) libs.tests -test -a ${{ parameters.archType }} -os ${{ parameters.osGroup }} -lc ${{ parameters.librariesConfiguration }} -rc $(buildConfigUpper) /p:TestNativeAot=true /p:RunSmokeTestsOnly=true
56-
displayName: Build and run WebAssembly libraries tests
40+
- ${{ if eq(parameters.wasmEnableThreadsArg, '') }}:
41+
- ${{ if eq(parameters.hostedOs, 'windows') }}:
42+
- script: $(Build.SourcesDirectory)/src/tests/run$(scriptExt) runnativeaottests $(buildConfigUpper) ${{ parameters.archType }} ${{ parameters.osGroup }}
43+
displayName: Run runtime tests
44+
- ${{ else }}:
45+
- script: $(Build.SourcesDirectory)/src/tests/run$(scriptExt) --runnativeaottests $(buildConfigUpper) ${{ parameters.archType }} ${{ parameters.osGroup }}
46+
displayName: Run runtime tests
47+
48+
- ${{ if eq(parameters.archType, 'wasm') }}:
49+
- script: $(Build.SourcesDirectory)/build$(scriptExt) libs.tests -test -a ${{ parameters.archType }} -os ${{ parameters.osGroup }} -lc ${{ parameters.librariesConfiguration }} -rc $(buildConfigUpper) /p:TestNativeAot=true /p:RunSmokeTestsOnly=true
50+
displayName: Build and run WebAssembly libraries tests
51+
52+
# Minimal Helix-based validation for cross-compiled ILC.
53+
- ${{ elseif eq(parameters.osGroup, 'wasi') }}:
54+
- template: /eng/pipelines/common/templates/runtimes/send-to-helix-step.yml
55+
parameters:
56+
displayName: Test cross-compiled ILC on Helix
57+
buildConfig: $(buildConfigUpper)
58+
archType: $(hostedTargetArch)
59+
osGroup: ${{ parameters.hostedOs }}
60+
creator: $(Build.DefinitionName)
61+
helixBuild: $(Build.BuildNumber)
62+
helixSource: $(_HelixSource)
63+
helixType: 'test/functional/ilc/'
64+
helixQueues: ${{ parameters.helixQueues }}
65+
helixProjectArguments: '$(Build.SourcesDirectory)/eng/pipelines/runtimelab/sendtohelix-naot-llvm.proj /p:TestTargetOS=${{ parameters.osGroup }}'
5766

5867
- script: pwsh $(Build.SourcesDirectory)/eng/pipelines/runtimelab/remove-duplicate-packages.ps1 -Config $(_BuildConfig) -HostArch $(hostedTargetArch) -TargetOS ${{ parameters.osGroup }} -TargetArch ${{ parameters.archType }}
5968
displayName: Remove duplicate packages before publishing
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
<Project Sdk="Microsoft.DotNet.Helix.Sdk" DefaultTargets="Test">
2+
3+
<!-- This project uses the Helix SDK, documented at
4+
https://github.com/dotnet/arcade/tree/master/src/Microsoft.DotNet.Helix/Sdk,
5+
to send a small test job that uses ILC to compile a few projects.
6+
This is used to smoke-test ILC compiled for architectures we don't
7+
have native test machines for (not-x64).
8+
-->
9+
<PropertyGroup>
10+
<Creator>$(_Creator)</Creator>
11+
<HelixAccessToken>$(_HelixAccessToken)</HelixAccessToken>
12+
<HelixBuild>$(_HelixBuild)</HelixBuild>
13+
<HelixSource>$(_HelixSource)</HelixSource>
14+
<HelixTargetQueues>$(_HelixTargetQueues)</HelixTargetQueues>
15+
<HelixType>$(_HelixType)</HelixType>
16+
17+
<GlobalJsonContent>$([System.IO.File]::ReadAllText('$(RepoRoot)global.json'))</GlobalJsonContent>
18+
<IncludeDotNetCli>true</IncludeDotNetCli>
19+
<DotNetCliPackageType>sdk</DotNetCliPackageType>
20+
<DotNetCliVersion>$([System.Text.RegularExpressions.Regex]::Match($(GlobalJsonContent), '(%3F&lt;="dotnet": ").*(%3F=")'))</DotNetCliVersion>
21+
</PropertyGroup>
22+
23+
<Target Name="BuildHelixWorkItems" BeforeTargets="CoreTest" Condition="'$(HelixTargetQueue)' != ''">
24+
<PropertyGroup>
25+
<TestTargetOS>wasi</TestTargetOS>
26+
<TestTargetRid>$(TestTargetOS)-wasm</TestTargetRid>
27+
<IlcHostPlatform>$(TargetOS)-$(TargetArchitecture)</IlcHostPlatform>
28+
<WindowsShell Condition="$(HelixTargetQueue.ToLowerInvariant().Contains('windows'))">true</WindowsShell>
29+
<ExeExt Condition="'$(WindowsShell)' == 'true'">.exe</ExeExt>
30+
<WorkItemDirectory>$([MSBuild]::NormalizeDirectory('$(ArtifactsObjDir)', '$(IlcHostPlatform)-$(Configuration)-NativeAOT-LLVM-HelixTestPayload'))</WorkItemDirectory>
31+
</PropertyGroup>
32+
33+
<Error Text="Only WASI SDK supported for $(IlcHostPlatform)" Condition="'$(TestTargetOS)' != 'wasi'" />
34+
35+
<ItemGroup>
36+
<PackageFile Include="$(ArtifactsShippingPackagesDir)*" />
37+
<SampleProjectFile Include="$(RepoRoot)samples/**/*" />
38+
</ItemGroup>
39+
40+
<RemoveDir Directories="$(WorkItemDirectory)" />
41+
<Copy SourceFiles="@(PackageFile)" DestinationFolder="$(WorkItemDirectory)pkg-src" />
42+
<Copy SourceFiles="@(SampleProjectFile)" DestinationFolder="$(WorkItemDirectory)samples/%(RecursiveDir)" Condition="'%(Filename)%(Extension)' != 'nuget.config'" />
43+
<Exec Command="pwsh install-wasi-sdk.ps1 -InstallDir $(WorkItemDirectory) -HostArch $(TargetArchitecture)" Condition="'$(TestTargetOS)' == 'wasi'" />
44+
45+
<!-- Windows WASI SDK is very heavy due to **many** clang copies. Remove them for better upload times. -->
46+
<Delete Files="$(WorkItemDirectory)wasi-sdk/bin/wasm32-wasi-clang$(ExeExt);
47+
$(WorkItemDirectory)wasi-sdk/bin/wasm32-wasi-clang++$(ExeExt);
48+
$(WorkItemDirectory)wasi-sdk/bin/wasm32-wasi-threads-clang$(ExeExt);
49+
$(WorkItemDirectory)wasi-sdk/bin/wasm32-wasi-threads-clang++$(ExeExt);
50+
$(WorkItemDirectory)wasi-sdk/bin/wasm32-wasip1-clang$(ExeExt);
51+
$(WorkItemDirectory)wasi-sdk/bin/wasm32-wasip1-clang++$(ExeExt);
52+
$(WorkItemDirectory)wasi-sdk/bin/wasm32-wasip1-threads-clang$(ExeExt);
53+
$(WorkItemDirectory)wasi-sdk/bin/wasm32-wasip1-threads-clang++$(ExeExt);
54+
$(WorkItemDirectory)wasi-sdk/bin/wasm32-wasip2-clang$(ExeExt);
55+
$(WorkItemDirectory)wasi-sdk/bin/wasm32-wasip2-clang++$(ExeExt);
56+
$(WorkItemDirectory)wasi-sdk/bin/clang-tidy$(ExeExt);
57+
$(WorkItemDirectory)wasi-sdk/bin/clang-cpp$(ExeExt);
58+
$(WorkItemDirectory)wasi-sdk/bin/clang-cl$(ExeExt);
59+
$(WorkItemDirectory)wasi-sdk/bin/ld.lld$(ExeExt);
60+
$(WorkItemDirectory)wasi-sdk/bin/ld64.lld$(ExeExt);
61+
$(WorkItemDirectory)wasi-sdk/bin/lld-link$(ExeExt)" />
62+
63+
<PropertyGroup Condition="'$(WindowsShell)' == 'true'">
64+
<HelixPreCommands>set RestoreAdditionalProjectSources=%HELIX_WORKITEM_PAYLOAD%\pkg-src</HelixPreCommands>
65+
<HelixPreCommands Condition="'$(TestTargetOS)' == 'wasi'">$(HelixPreCommands);set WASI_SDK_PATH=%HELIX_WORKITEM_PAYLOAD%\wasi-sdk</HelixPreCommands>
66+
<HelixCommand>
67+
dotnet publish %HELIX_WORKITEM_PAYLOAD%\samples\HelloWorld\HelloWorld.csproj -c $(Configuration) -r $(TestTargetRid) &amp;&amp;^
68+
dotnet publish %HELIX_WORKITEM_PAYLOAD%\samples\NativeLibrary\NativeLibrary.csproj -c $(Configuration) -r $(TestTargetRid)
69+
</HelixCommand>
70+
</PropertyGroup>
71+
72+
<PropertyGroup Condition="'$(WindowsShell)' != 'true'">
73+
<HelixPreCommands>export RestoreAdditionalProjectSources=$HELIX_WORKITEM_PAYLOAD/pkg-src</HelixPreCommands>
74+
<HelixPreCommands Condition="'$(TestTargetOS)' == 'wasi'">$(HelixPreCommands);export WASI_SDK_PATH=$HELIX_WORKITEM_PAYLOAD/wasi-sdk</HelixPreCommands>
75+
<HelixPreCommands Condition="'$(TestTargetOS)' == 'wasi'">$(HelixPreCommands);chmod +x $WASI_SDK_PATH/bin/*</HelixPreCommands>
76+
<HelixCommand>
77+
dotnet publish $HELIX_WORKITEM_PAYLOAD/samples/HelloWorld/HelloWorld.csproj -c $(Configuration) -r $(TestTargetRid) &amp;&amp;\
78+
dotnet publish $HELIX_WORKITEM_PAYLOAD/samples/NativeLibrary/NativeLibrary.csproj -c $(Configuration) -r $(TestTargetRid)
79+
</HelixCommand>
80+
</PropertyGroup>
81+
82+
<ItemGroup>
83+
<HelixWorkItem Include="NativeAOT-LLVM-$(IlcHostPlatform)-ILC-SmokeTest">
84+
<Command>$(HelixCommand)</Command>
85+
<PayloadDirectory>$(WorkItemDirectory)</PayloadDirectory>
86+
<Timeout>01:00:00</Timeout>
87+
</HelixWorkItem>
88+
</ItemGroup>
89+
90+
<Message Text="HelixWorkItem: %(HelixWorkItem.Identity)
91+
PreCommands: $(HelixPreCommands)
92+
Command: %(HelixWorkItem.Command)
93+
PayloadDirectory: %(HelixWorkItem.PayloadDirectory)" Importance="High" />
94+
95+
<Error Text="Stopping the build for dry run" Condition="'$(HelixDryRun)' == 'true'" />
96+
</Target>
97+
98+
</Project>

0 commit comments

Comments
 (0)