@@ -21,6 +21,7 @@ parameters:
2121 dependsOn : []
2222 extraHelixArguments : ' '
2323 buildAllTestsAsStandalone : false
24+ sendToHelix : true
2425 # arcade-specific parameters
2526 condition : always()
2627 continueOnError : false
@@ -82,41 +83,48 @@ steps:
8283 env :
8384 __MonoToolPrefix : aarch64-linux-gnu-
8485
85- - template : /eng/pipelines/common/templates/runtimes/send-to-helix-step.yml
86- parameters :
87- displayName : Send tests to Helix
88- buildConfig : $(buildConfigUpper)
89- archType : ${{ parameters.archType }}
90- osGroup : ${{ parameters.osGroup }}
91- osSubgroup : ${{ parameters.osSubgroup}}
92- coreClrRepoRoot : $(Build.SourcesDirectory)/src/coreclr
93- shouldContinueOnError : ${{ parameters.shouldContinueOnError }}
94- runtimeFlavor : ${{ parameters.runtimeFlavor }}
95- runtimeVariant : ${{ parameters.runtimeVariant }}
86+ # Build the runtime tests above, but only send them to Helix when sendToHelix is true.
87+ # This is a compile-time exclusion (not a runtime condition): send-to-helix-inner-step.yml
88+ # wraps the passed-in condition into a string and compares it with ne(condition, false), so a
89+ # runtime 'condition: false' is swallowed and the send runs anyway. Excluding the template keeps
90+ # build coverage while reliably skipping execution on engines that can't run the tests yet
91+ # (e.g. browser/V8 without exnref support).
92+ - ${{ if eq(parameters.sendToHelix, true) }} :
93+ - template : /eng/pipelines/common/templates/runtimes/send-to-helix-step.yml
94+ parameters :
95+ displayName : Send tests to Helix
96+ buildConfig : $(buildConfigUpper)
97+ archType : ${{ parameters.archType }}
98+ osGroup : ${{ parameters.osGroup }}
99+ osSubgroup : ${{ parameters.osSubgroup}}
100+ coreClrRepoRoot : $(Build.SourcesDirectory)/src/coreclr
101+ shouldContinueOnError : ${{ parameters.shouldContinueOnError }}
102+ runtimeFlavor : ${{ parameters.runtimeFlavor }}
103+ runtimeVariant : ${{ parameters.runtimeVariant }}
96104
97- ${{ if eq(variables['System.TeamProject'], 'internal') }} :
98- # Access token variable for internal project from the
99- # DotNet-HelixApi-Access variable group
100- helixAccessToken : $(HelixApiAccessToken)
101- ${{ else }} :
102- creator : $(Build.DefinitionName)
105+ ${{ if eq(variables['System.TeamProject'], 'internal') }} :
106+ # Access token variable for internal project from the
107+ # DotNet-HelixApi-Access variable group
108+ helixAccessToken : $(HelixApiAccessToken)
109+ ${{ else }} :
110+ creator : $(Build.DefinitionName)
103111
104- helixBuild : $(Build.BuildNumber)
105- helixSource : $(_HelixSource)
106- ${{ if ne(parameters.readyToRun, true) }} :
107- helixType : ' test/functional/cli/'
112+ helixBuild : $(Build.BuildNumber)
113+ helixSource : $(_HelixSource)
114+ ${{ if ne(parameters.readyToRun, true) }} :
115+ helixType : ' test/functional/cli/'
108116
109- helixQueues : ${{ parameters.helixQueues }}
110- # This tests whether an array is empty
111- ${{ if eq(join('', parameters.helixQueues), '') }} :
112- condition : false
113- publishTestResults : true
114- timeoutPerTestInMinutes : $(timeoutPerTestInMinutes)
115- timeoutPerTestCollectionInMinutes : $(timeoutPerTestCollectionInMinutes)
116- runCrossGen2 : ${{ eq(parameters.readyToRun, true) }}
117- compositeBuildMode : ${{ parameters.compositeBuildMode }}
118- runInUnloadableContext : ${{ parameters.runInUnloadableContext }}
119- nativeAotTest : ${{ parameters.nativeAotTest }}
120- helixProjectArguments : ' $(Build.SourcesDirectory)/src/tests/Common/helixpublishwitharcade.proj'
121- extraHelixArguments : ${{ parameters.extraHelixArguments }}
122- scenarios : ${{ parameters.scenarios }}
117+ helixQueues : ${{ parameters.helixQueues }}
118+ # This tests whether an array is empty
119+ ${{ if eq(join('', parameters.helixQueues), '') }} :
120+ condition : false
121+ publishTestResults : true
122+ timeoutPerTestInMinutes : $(timeoutPerTestInMinutes)
123+ timeoutPerTestCollectionInMinutes : $(timeoutPerTestCollectionInMinutes)
124+ runCrossGen2 : ${{ eq(parameters.readyToRun, true) }}
125+ compositeBuildMode : ${{ parameters.compositeBuildMode }}
126+ runInUnloadableContext : ${{ parameters.runInUnloadableContext }}
127+ nativeAotTest : ${{ parameters.nativeAotTest }}
128+ helixProjectArguments : ' $(Build.SourcesDirectory)/src/tests/Common/helixpublishwitharcade.proj'
129+ extraHelixArguments : ${{ parameters.extraHelixArguments }}
130+ scenarios : ${{ parameters.scenarios }}
0 commit comments