@@ -106,7 +106,8 @@ jobs:
106106 fetchDepth : 1
107107 - bash : |
108108 set -uo pipefail
109- run_databricks=true
109+ run_databricks_cpu=true
110+ run_databricks_gpu=true
110111
111112 if [ "$(Build.Reason)" = "PullRequest" ]; then
112113 target_ref="${SYSTEM_PULLREQUEST_TARGETBRANCH:-}"
@@ -119,15 +120,27 @@ jobs:
119120 # effective PR diff. A source-only checkout can only over-report
120121 # target changes, which safely keeps Databricks enabled.
121122 echo "Changed paths used for Databricks E2E impact detection:"
122- git diff --name-only --diff-filter=ACMRD "$target_commit" HEAD | sed 's/^/ /'
123- decision="$(
124- git diff --name-only -z --diff-filter=ACMRD "$target_commit" HEAD |
125- python3 tools/ci/databricks_impact.py --null
123+ changed_paths_file="$(mktemp)"
124+ trap 'rm -f "$changed_paths_file"' EXIT
125+ git diff --name-only -z --diff-filter=ACMRD "$target_commit" HEAD > "$changed_paths_file"
126+ tr '\0' '\n' < "$changed_paths_file" | sed 's/^/ /'
127+
128+ cpu_decision="$(
129+ python3 tools/ci/databricks_impact.py --null --suite cpu < "$changed_paths_file"
130+ )"
131+ gpu_decision="$(
132+ python3 tools/ci/databricks_impact.py --null --suite gpu < "$changed_paths_file"
126133 )"
127- case "$decision" in
128- true|false) run_databricks="$decision" ;;
134+ case "$cpu_decision" in
135+ true|false) run_databricks_cpu="$cpu_decision" ;;
136+ *)
137+ echo "##vso[task.logissue type=warning]Invalid Databricks CPU impact result; running CPU E2E"
138+ ;;
139+ esac
140+ case "$gpu_decision" in
141+ true|false) run_databricks_gpu="$gpu_decision" ;;
129142 *)
130- echo "##vso[task.logissue type=warning]Invalid Databricks impact result; running E2E"
143+ echo "##vso[task.logissue type=warning]Invalid Databricks GPU impact result; running GPU E2E"
131144 ;;
132145 esac
133146 else
@@ -137,8 +150,10 @@ jobs:
137150 echo "Non-PR build; Databricks E2E remains enabled"
138151 fi
139152
140- echo "Databricks E2E enabled: $run_databricks"
141- echo "##vso[task.setvariable variable=runDatabricksE2E;isOutput=true]$run_databricks"
153+ echo "Databricks CPU E2E enabled: $run_databricks_cpu"
154+ echo "Databricks GPU E2E enabled: $run_databricks_gpu"
155+ echo "##vso[task.setvariable variable=runDatabricksCpuE2E;isOutput=true]$run_databricks_cpu"
156+ echo "##vso[task.setvariable variable=runDatabricksGpuE2E;isOutput=true]$run_databricks_gpu"
142157 name: detectDatabricksImpact
143158 displayName: 'Detect Databricks E2E impact'
144159 - template : templates/update_cli.yml
@@ -226,14 +241,15 @@ jobs:
226241 condition : and(succeeded(), eq(variables.isMaster, true))
227242 displayName : Publish Badges
228243
229- - job : DatabricksE2E
244+ - job : DatabricksCPUE2E
230245 dependsOn : BuildAndCacheSbt
231- displayName : ' Databricks E2E'
246+ displayName : ' Databricks CPU E2E'
232247 condition : >-
233248 and(
234249 succeeded(),
250+ eq(variables.runTests, 'True'),
235251 eq('${{ parameters.testDatabricksE2E }}', true),
236- eq(dependencies.BuildAndCacheSbt.outputs['detectDatabricksImpact.runDatabricksE2E '], 'true')
252+ eq(dependencies.BuildAndCacheSbt.outputs['detectDatabricksImpact.runDatabricksCpuE2E '], 'true')
237253 )
238254 timeoutInMinutes : 300
239255 cancelTimeoutInMinutes : 0
@@ -255,35 +271,31 @@ jobs:
255271 TEST-CLASS : " com.microsoft.azure.synapse.ml.nbtest.DatabricksCPUTests4"
256272 databricks-cpu-5 :
257273 TEST-CLASS : " com.microsoft.azure.synapse.ml.nbtest.DatabricksCPUTests5"
258- databricks-gpu :
259- TEST-CLASS : " com.microsoft.azure.synapse.ml.nbtest.DatabricksGPUTests"
260- # databricks-rapids tests have been disabled because these tests are failing.
261- # This test will be re-enabled once the issue is fixed.
262- # databricks-rapids:
263- # TEST-CLASS: "com.microsoft.azure.synapse.ml.nbtest.DatabricksRapidsTests"
264274 steps :
265- - template : templates/sbt_cache.yml
266- - template : templates/update_cli.yml
267- - template : templates/conda.yml
268- - template : templates/kv.yml
269- - template : templates/publish.yml
270- - task : AzureCLI@2
271- displayName : ' E2E'
272- inputs :
273- azureSubscription : ' SynapseML Build'
274- scriptLocation : inlineScript
275- scriptType : bash
276- inlineScript : |
277- set -e
278- source activate synapseml
279- sbt "testOnly $(TEST-CLASS)"
280- condition : and(succeeded(), eq(variables.runTests, 'True'))
281- - task : PublishTestResults@2
282- displayName : ' Publish Test Results'
283- inputs :
284- testResultsFiles : ' **/test-reports/TEST-*.xml'
285- failTaskOnFailedTests : true
286- condition : and(eq(variables.runTests, 'True'), succeededOrFailed())
275+ - template : templates/databricks_e2e_steps.yml
276+
277+ - job : DatabricksGPUE2E
278+ dependsOn : BuildAndCacheSbt
279+ displayName : ' Databricks GPU E2E'
280+ condition : >-
281+ and(
282+ succeeded(),
283+ eq(variables.runTests, 'True'),
284+ eq('${{ parameters.testDatabricksE2E }}', true),
285+ eq(dependencies.BuildAndCacheSbt.outputs['detectDatabricksImpact.runDatabricksGpuE2E'], 'true')
286+ )
287+ timeoutInMinutes : 300
288+ cancelTimeoutInMinutes : 0
289+ pool :
290+ vmImage : $(UBUNTU_VERSION)
291+ variables :
292+ TEST-CLASS : " com.microsoft.azure.synapse.ml.nbtest.DatabricksGPUTests"
293+ MML_ADB_AUTH_TYPE : " aad"
294+ MML_ADB_WORKSPACE_HOST : " adb-1885762835647850.10.azuredatabricks.net"
295+ MML_ADB_WORKSPACE_RESOURCE_ID : " /subscriptions/e342c2c0-f844-4b18-9208-52c8c234c30e/resourceGroups/marhamil-mmlspark/providers/Microsoft.Databricks/workspaces/synapseml-build-adb"
296+ # The DatabricksRapidsTests suite remains disabled until its existing failures are fixed.
297+ steps :
298+ - template : templates/databricks_e2e_steps.yml
287299
288300- job : FabricE2E
289301 dependsOn : BuildAndCacheSbt
0 commit comments