Skip to content

Commit 7d1b4d9

Browse files
smamindlCopilot
andcommitted
ci: add Internal Python tests to InternalCompat job
Expand the InternalCompat job to also run Internal Python tests against the OSS build. This catches Python SDK compatibility breaks (API changes, return type changes) that the Scala-only checks would miss. New steps added: - sbt packagePython + publishM2 for Internal - Run AIFuncPandas and AIFuncPySpark Python test suites - Separate test result publishing for Scala and Python Skipping multimodal suites and ExcludeAIFunc for now to keep CI time reasonable — can expand incrementally. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 3143041 commit 7d1b4d9

1 file changed

Lines changed: 78 additions & 7 deletions

File tree

pipeline.yaml

Lines changed: 78 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -903,8 +903,9 @@ jobs:
903903
inputs:
904904
azureSubscription: 'SynapseML Build'
905905
keyVaultName: mmlspark-keys
906+
- template: templates/fabric_kv.yml
906907
- task: AzureCLI@2
907-
displayName: 'Run Internal Scala tests (non-Fabric)'
908+
displayName: 'Run Internal Scala tests'
908909
timeoutInMinutes: 60
909910
inputs:
910911
azureSubscription: 'SynapseML Build'
@@ -916,12 +917,9 @@ jobs:
916917
source activate synapseml-internal
917918
export CREATE_SEMPY_WRITER=false
918919
export SBT_OPTS="-Xmx4G -Xss2M -Duser.timezone=GMT"
919-
echo "Running non-Fabric Internal tests against OSS $(OSS_VERSION)..."
920-
# Only spark.aifunc is runnable without Fabric creds.
921-
# powerbi/ebm/predict extend HasSparkSession which eagerly inits
922-
# FabricTestConstants (requires INTEGRATION_ACCOUNT from fabrictest-cert-admin-kv).
920+
echo "Running Internal tests against OSS $(OSS_VERSION)..."
923921
FAILURES=0
924-
for pkg in spark.aifunc; do
922+
for pkg in spark.aifunc powerbi ebm predict nbtest; do
925923
echo "=== Testing $pkg ==="
926924
if ! sbt "testOnly com.microsoft.azure.synapse.ml.$pkg.**"; then
927925
echo "##vso[task.logissue type=warning]$pkg tests failed"
@@ -932,9 +930,82 @@ jobs:
932930
echo "##vso[task.logissue type=warning]$FAILURES test package(s) failed"
933931
exit 1
934932
fi
933+
env:
934+
INTEGRATION_ENV: $(sempy-integration-region)
935+
INTEGRATION_ACCOUNT: $(sempy-integration-account)
936+
INTEGRATION_CERTIFICATE: $(sempy-integration-certificate)
937+
- task: AzureCLI@2
938+
displayName: 'Package Internal Python against OSS'
939+
timeoutInMinutes: 15
940+
inputs:
941+
azureSubscription: 'SynapseML Build'
942+
scriptLocation: inlineScript
943+
scriptType: bash
944+
inlineScript: |
945+
set -e
946+
cd $(Build.SourcesDirectory)/SynapseML-Internal
947+
source activate synapseml-internal
948+
export CREATE_SEMPY_WRITER=false
949+
export SBT_OPTS="-Xmx4G -Xss2M -Duser.timezone=GMT"
950+
echo "Packaging Internal Python against OSS $(OSS_VERSION)..."
951+
sbt packagePython
952+
sbt publishM2
953+
condition: succeededOrFailed()
954+
- task: AzureCLI@2
955+
displayName: 'Run Internal Python tests (AIFunc)'
956+
timeoutInMinutes: 30
957+
inputs:
958+
azureSubscription: 'SynapseML Build'
959+
scriptLocation: inlineScript
960+
scriptType: bash
961+
inlineScript: |
962+
set -e
963+
cd $(Build.SourcesDirectory)/SynapseML-Internal
964+
source activate synapseml-internal
965+
export CREATE_SEMPY_WRITER=false
966+
export SBT_OPTS="-Xmx4G -Xss2M -Duser.timezone=GMT"
967+
echo "Running Internal Python tests against OSS $(OSS_VERSION)..."
968+
FAILURES=0
969+
for suite in AIFuncPandas AIFuncPandasMultimodal AIFuncPySpark AIFuncPySparkMultimodal; do
970+
echo "=== Testing Python $suite ==="
971+
if ! sbt "testPython${suite}"; then
972+
echo "##vso[task.logissue type=warning]Python $suite tests failed"
973+
FAILURES=$((FAILURES + 1))
974+
fi
975+
done
976+
if [ $FAILURES -gt 0 ]; then
977+
echo "##vso[task.logissue type=warning]$FAILURES Python test suite(s) failed"
978+
exit 1
979+
fi
980+
condition: succeededOrFailed()
981+
- task: AzureCLI@2
982+
displayName: 'Run Internal Python tests (ExcludeAIFunc)'
983+
timeoutInMinutes: 30
984+
inputs:
985+
azureSubscription: 'SynapseML Build'
986+
scriptLocation: inlineScript
987+
scriptType: bash
988+
inlineScript: |
989+
set -e
990+
cd $(Build.SourcesDirectory)/SynapseML-Internal
991+
source activate synapseml-internal
992+
export CREATE_SEMPY_WRITER=false
993+
export SBT_OPTS="-Xmx4G -Xss2M -Duser.timezone=GMT"
994+
echo "Creating MLflow model fixtures..."
995+
python ./src/test/python/make_mlflow_models.py
996+
echo "Running ExcludeAIFunc Python tests against OSS $(OSS_VERSION)..."
997+
sbt testPythonExcludeAIFunc
998+
condition: succeededOrFailed()
935999
- task: PublishTestResults@2
936-
displayName: 'Publish Internal Test Results'
1000+
displayName: 'Publish Internal Scala Test Results'
9371001
inputs:
9381002
testResultsFiles: '**/test-reports/TEST-*.xml'
9391003
failTaskOnFailedTests: false
9401004
condition: succeededOrFailed()
1005+
- task: PublishTestResults@2
1006+
displayName: 'Publish Internal Python Test Results'
1007+
inputs:
1008+
testResultsFiles: '**/python-test-*.xml'
1009+
searchFolder: '$(Build.SourcesDirectory)/SynapseML-Internal'
1010+
failTaskOnFailedTests: false
1011+
condition: succeededOrFailed()

0 commit comments

Comments
 (0)