@@ -14,6 +14,37 @@ concurrency:
1414 cancel-in-progress : true
1515
1616jobs :
17+ detect-changes :
18+ runs-on : ubuntu-latest
19+ outputs :
20+ run-all : ${{ steps.detect.outputs.run-all }}
21+ transformers : ${{ steps.detect.outputs.transformers }}
22+ rerankers : ${{ steps.detect.outputs.rerankers }}
23+ diffusers : ${{ steps.detect.outputs.diffusers }}
24+ coqui : ${{ steps.detect.outputs.coqui }}
25+ moonshine : ${{ steps.detect.outputs.moonshine }}
26+ pocket-tts : ${{ steps.detect.outputs.pocket-tts }}
27+ qwen-tts : ${{ steps.detect.outputs.qwen-tts }}
28+ qwen-asr : ${{ steps.detect.outputs.qwen-asr }}
29+ nemo : ${{ steps.detect.outputs.nemo }}
30+ voxcpm : ${{ steps.detect.outputs.voxcpm }}
31+ llama-cpp-quantization : ${{ steps.detect.outputs.llama-cpp-quantization }}
32+ acestep-cpp : ${{ steps.detect.outputs.acestep-cpp }}
33+ voxtral : ${{ steps.detect.outputs.voxtral }}
34+ steps :
35+ - name : Checkout repository
36+ uses : actions/checkout@v6
37+ - name : Setup Bun
38+ uses : oven-sh/setup-bun@v2
39+ - name : Install dependencies
40+ run : bun add js-yaml @octokit/core
41+ - name : Detect changed backends
42+ id : detect
43+ env :
44+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
45+ GITHUB_EVENT_PATH : ${{ github.event_path }}
46+ run : bun run scripts/changed-backends.js
47+
1748 # Requires CUDA
1849 # tests-chatterbox-tts:
1950 # runs-on: ubuntu-latest
3768 # make --jobs=5 --output-sync=target -C backend/python/chatterbox
3869 # make --jobs=5 --output-sync=target -C backend/python/chatterbox test
3970 tests-transformers :
71+ needs : detect-changes
72+ if : needs.detect-changes.outputs.transformers == 'true' || needs.detect-changes.outputs.run-all == 'true'
4073 runs-on : ubuntu-latest
4174 steps :
4275 - name : Clone
5891 make --jobs=5 --output-sync=target -C backend/python/transformers
5992 make --jobs=5 --output-sync=target -C backend/python/transformers test
6093 tests-rerankers :
94+ needs : detect-changes
95+ if : needs.detect-changes.outputs.rerankers == 'true' || needs.detect-changes.outputs.run-all == 'true'
6196 runs-on : ubuntu-latest
6297 steps :
6398 - name : Clone
80115 make --jobs=5 --output-sync=target -C backend/python/rerankers test
81116
82117 tests-diffusers :
118+ needs : detect-changes
119+ if : needs.detect-changes.outputs.diffusers == 'true' || needs.detect-changes.outputs.run-all == 'true'
83120 runs-on : ubuntu-latest
84121 steps :
85122 - name : Clone
@@ -229,6 +266,8 @@ jobs:
229266 # make --jobs=5 --output-sync=target -C backend/python/vllm test
230267
231268 tests-coqui :
269+ needs : detect-changes
270+ if : needs.detect-changes.outputs.coqui == 'true' || needs.detect-changes.outputs.run-all == 'true'
232271 runs-on : ubuntu-latest
233272 steps :
234273 - name : Clone
@@ -248,6 +287,8 @@ jobs:
248287 make --jobs=5 --output-sync=target -C backend/python/coqui
249288 make --jobs=5 --output-sync=target -C backend/python/coqui test
250289 tests-moonshine :
290+ needs : detect-changes
291+ if : needs.detect-changes.outputs.moonshine == 'true' || needs.detect-changes.outputs.run-all == 'true'
251292 runs-on : ubuntu-latest
252293 steps :
253294 - name : Clone
@@ -267,6 +308,8 @@ jobs:
267308 make --jobs=5 --output-sync=target -C backend/python/moonshine
268309 make --jobs=5 --output-sync=target -C backend/python/moonshine test
269310 tests-pocket-tts :
311+ needs : detect-changes
312+ if : needs.detect-changes.outputs.pocket-tts == 'true' || needs.detect-changes.outputs.run-all == 'true'
270313 runs-on : ubuntu-latest
271314 steps :
272315 - name : Clone
@@ -286,6 +329,8 @@ jobs:
286329 make --jobs=5 --output-sync=target -C backend/python/pocket-tts
287330 make --jobs=5 --output-sync=target -C backend/python/pocket-tts test
288331 tests-qwen-tts :
332+ needs : detect-changes
333+ if : needs.detect-changes.outputs.qwen-tts == 'true' || needs.detect-changes.outputs.run-all == 'true'
289334 runs-on : ubuntu-latest
290335 steps :
291336 - name : Clone
@@ -327,6 +372,8 @@ jobs:
327372 # make --jobs=5 --output-sync=target -C backend/python/fish-speech
328373 # make --jobs=5 --output-sync=target -C backend/python/fish-speech test
329374 tests-qwen-asr :
375+ needs : detect-changes
376+ if : needs.detect-changes.outputs.qwen-asr == 'true' || needs.detect-changes.outputs.run-all == 'true'
330377 runs-on : ubuntu-latest
331378 steps :
332379 - name : Clone
@@ -346,6 +393,8 @@ jobs:
346393 make --jobs=5 --output-sync=target -C backend/python/qwen-asr
347394 make --jobs=5 --output-sync=target -C backend/python/qwen-asr test
348395 tests-nemo :
396+ needs : detect-changes
397+ if : needs.detect-changes.outputs.nemo == 'true' || needs.detect-changes.outputs.run-all == 'true'
349398 runs-on : ubuntu-latest
350399 steps :
351400 - name : Clone
@@ -365,6 +414,8 @@ jobs:
365414 make --jobs=5 --output-sync=target -C backend/python/nemo
366415 make --jobs=5 --output-sync=target -C backend/python/nemo test
367416 tests-voxcpm :
417+ needs : detect-changes
418+ if : needs.detect-changes.outputs.voxcpm == 'true' || needs.detect-changes.outputs.run-all == 'true'
368419 runs-on : ubuntu-latest
369420 steps :
370421 - name : Clone
@@ -384,6 +435,8 @@ jobs:
384435 make --jobs=5 --output-sync=target -C backend/python/voxcpm
385436 make --jobs=5 --output-sync=target -C backend/python/voxcpm test
386437 tests-llama-cpp-quantization :
438+ needs : detect-changes
439+ if : needs.detect-changes.outputs.llama-cpp-quantization == 'true' || needs.detect-changes.outputs.run-all == 'true'
387440 runs-on : ubuntu-latest
388441 timeout-minutes : 30
389442 steps :
@@ -411,6 +464,8 @@ jobs:
411464 run : |
412465 make --jobs=5 --output-sync=target -C backend/python/llama-cpp-quantization test
413466 tests-acestep-cpp :
467+ needs : detect-changes
468+ if : needs.detect-changes.outputs.acestep-cpp == 'true' || needs.detect-changes.outputs.run-all == 'true'
414469 runs-on : ubuntu-latest
415470 steps :
416471 - name : Clone
@@ -441,6 +496,8 @@ jobs:
441496 run : |
442497 make --jobs=5 --output-sync=target -C backend/go/acestep-cpp test
443498 tests-voxtral :
499+ needs : detect-changes
500+ if : needs.detect-changes.outputs.voxtral == 'true' || needs.detect-changes.outputs.run-all == 'true'
444501 runs-on : ubuntu-latest
445502 steps :
446503 - name : Clone
0 commit comments