ci: add SynapseML-Internal compatibility check to OSS pipeline#2542
ci: add SynapseML-Internal compatibility check to OSS pipeline#2542BrendanWalsh wants to merge 1 commit intomasterfrom
Conversation
|
Hey @BrendanWalsh 👋! We use semantic commit messages to streamline the release process. Examples of commit messages with semantic prefixes:
To test your commit locally, please follow our guild on building from source. |
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
There was a problem hiding this comment.
Pull request overview
Adds an Azure DevOps pipeline job to continuously validate that the closed-source SynapseML-Internal repo still compiles and passes a targeted unit-test subset when built against the current OSS SynapseML artifacts, helping detect breaking changes earlier.
Changes:
- Adds a
SynapseML-Internalrepository resource to the pipeline. - Introduces a new non-blocking
InternalCompatjob that publishes OSS artifacts to local Maven, retargets Internal to that version, compiles, creates the Internal conda environment, and runsspark.aifunctests. - Publishes Internal test results while keeping the job non-gating (
continueOnError: true).
Show a summary per file
| File | Description |
|---|---|
pipeline.yaml |
Adds a repo resource and a new non-blocking CI job to compile/test SynapseML-Internal against locally published OSS artifacts. |
Copilot's findings
- Files reviewed: 1/1 changed files
- Comments generated: 1
| - repository: self | ||
| type: self |
There was a problem hiding this comment.
In the resources.repositories block, declaring the pipeline repo (repository: self) is typically unnecessary (the pipeline already has an implicit self repo for checkout: self). Consider removing this entry to reduce confusion and keep only the external SynapseML-Internal repository resource.
| - repository: self | |
| type: self |
There was a problem hiding this comment.
The explicit self declaration is needed here. The original pipeline had - repo: self (shorthand syntax). When restructuring to the full resources.repositories block to add the SynapseML-Internal external repo, the self entry must be included — ADO requires it in the list format for multi-repo checkout (checkout: self + checkout: SynapseML-Internal) to work correctly.
|
Azure Pipelines: 1 pipeline(s) require an authorized user to comment /azp run to run. |
fb74a9d to
d700cf1
Compare
Adds an optional InternalCompat job that validates OSS changes do not break SynapseML-Internal consumers. The job: - Reads OSS_VERSION from core/version.sbt (with empty-value guard) - Publishes the OSS build to a local m2 repo - Clones SynapseML-Internal and retargets it to the current OSS version - Sets up a fresh conda env via the Synapse-Conda feed (PipAuthenticate) - Activates with 'eval "$(conda shell.bash hook)" && conda activate ...' - Pulls Fabric credentials from mmlspark-keys via fabric_kv.yml - Runs Scala tests across spark.aifunc, powerbi, ebm, predict packages - Runs Python tests from the Internal synapseml namespace - Publishes JUnit test results Rebased onto master to resolve conflicts with the newly-merged ReleaseBranchCompat job (#2550); the two jobs are independent siblings and now coexist cleanly in pipeline.yaml.
d700cf1 to
2d79b17
Compare
Summary
Adds a non-blocking CI job (
InternalCompat) to the OSS pipeline that validates SynapseML-Internal compiles and passes unit tests against the current OSS build. This catches breaking changes before they reach Internal.What it does
build.sbtto use the OSS version from this build + addsResolver.mavenLocalsbt compile Test/compileagainst retargeted Internalmmlspark-keys, and runsspark.aifunctests (128 tests)Design decisions
continueOnError: trueso failures surface as warnings, not build failurespowerbi,ebm,predict) extendHasSparkSessionwhich eagerly initializesFabricTestConstants, requiring Fabric credentials fromfabrictest-cert-admin-kv(not available in the OSS pipeline)CI validation
Changes
All changes are in
pipeline.yaml:SynapseML-InternalInternalCompatjob (~100 lines)