perf: split speech tests into 2 parallel jobs#2528
perf: split speech tests into 2 parallel jobs#2528BrendanWalsh wants to merge 1 commit intomasterfrom
Conversation
Split the single speech UnitTests matrix entry into speech1 and speech2, each targeting specific test classes. SpeechToTextSDKSuite runs alone in speech1 (it's the heaviest), while the remaining 4 suites share speech2. Add TEST_CLASSES variable support to the test execution step: when set, the sbt testOnly command uses the specified classes instead of the default package wildcard. This is backwards-compatible — existing matrix entries without TEST_CLASSES use the same PACKAGE.** pattern as before.
|
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.Snapshot WarningsEnsure that dependencies are being submitted on PR branches and consider enabling retry-on-snapshot-warnings. See the documentation for more information and troubleshooting advice. Scanned FilesNone |
There was a problem hiding this comment.
Pull request overview
This PR speeds up CI for the cognitive Speech test suite by splitting the existing long-running speech unit test matrix entry into two parallel jobs (speech1 and speech2) and adding a TEST_CLASSES override mechanism to target specific ScalaTest suites when needed.
Changes:
- Split
services.speechunit tests into two matrix entries (speech1/speech2) with explicit suite lists. - Introduce
TEST_CLASSESand resolveTEST_SPECin the unit test step to run either explicit suites or the existingPACKAGE.**default pattern.
Summary
Splits the single
speechunit test job (~33 minutes) into 2 parallel jobs (speech1andspeech2), reducing the critical path for cognitive service tests.Changes
speechmatrix entry withspeech1andspeech2speech1: runsSpeechToTextSDKSuite(the heaviest suite)speech2: runs remaining suites (ConversationTranscriptionSuite,SpeechToTextSuite,TextToSpeechSuite,SpeakerEmotionInferenceSuite)TEST_CLASSESvariable to control which test classes each job runsTEST_SPECresolution in the test step: usesTEST_CLASSESif set, otherwise falls back to the defaultPACKAGE.**patternMotivation
The speech unit test job was one of the longer-running test jobs at ~33 minutes, with
SpeechToTextSDKSuitebeing the dominant suite. Splitting allows parallel execution, reducing overall wall-clock time.Testing
TEST_CLASSESset → usesPACKAGE.**)Split from #2506 for independent review.