@@ -304,21 +304,19 @@ jobs:
304304 pyproject.toml
305305 uv.lock
306306
307- - name : Install system dependencies (Ubuntu)
307+ - name : Install FFmpeg (multi-OS)
308+ uses : ./.github/actions/setup-ffmpeg
309+
310+ - name : Install PortAudio (Linux)
308311 if : runner.os == 'Linux'
309312 run : |
310313 sudo apt-get update
311- sudo apt-get install -y portaudio19-dev python3-all-dev ffmpeg
314+ sudo apt-get install -y portaudio19-dev python3-all-dev
312315
313- - name : Install system dependencies (macOS)
316+ - name : Install PortAudio (macOS)
314317 if : runner.os == 'macOS'
315318 run : |
316- brew install portaudio ffmpeg
317-
318- - name : Install system dependencies (Windows)
319- if : runner.os == 'Windows'
320- run : |
321- choco install ffmpeg -y
319+ brew install portaudio || true
322320
323321 - name : Install Python dependencies
324322 run : |
@@ -394,17 +392,12 @@ jobs:
394392 pyproject.toml
395393 uv.lock
396394
397- - name : Install system deps (ffmpeg, pg client)
398- run : |
399- sudo apt-get update
400- sudo apt-get install -y ffmpeg postgresql-client
401- - name : Wait for Postgres service
402- uses : ./.github/actions/wait-for-postgres
395+ - name : Install ffmpeg + pg client and wait for PG
396+ uses : ./.github/actions/ffmpeg-pg-wait
403397 with :
404398 host : localhost
405399 port : ${{ env.POSTGRES_TEST_PORT }}
406400 user : tldw
407- install-client : ' false'
408401
409402 - name : Install additional Python dependencies
410403 run : |
@@ -470,6 +463,7 @@ jobs:
470463 TLDW_PS_TC_COUNT : " 250"
471464 TLDW_PS_ITERATIONS : " 5"
472465 TLDW_PS_OPT_COUNT : " 3"
466+ PYTEST_DISABLE_PLUGIN_AUTOLOAD : ' 1'
473467 steps :
474468 - name : Checkout repository
475469 uses : actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
@@ -483,17 +477,12 @@ jobs:
483477 pyproject.toml
484478 uv.lock
485479
486- - name : Install system deps (ffmpeg, pg client)
487- run : |
488- sudo apt-get update
489- sudo apt-get install -y ffmpeg postgresql-client
490- - name : Wait for Postgres service
491- uses : ./.github/actions/wait-for-postgres
480+ - name : Install ffmpeg + pg client and wait for PG
481+ uses : ./.github/actions/ffmpeg-pg-wait
492482 with :
493483 host : localhost
494484 port : ${{ env.POSTGRES_TEST_PORT }}
495485 user : tldw
496- install-client : ' false'
497486
498487 - name : Install Python dependencies
499488 run : |
@@ -560,17 +549,12 @@ jobs:
560549 pyproject.toml
561550 uv.lock
562551
563- - name : Install system deps (ffmpeg, pg client)
564- run : |
565- sudo apt-get update
566- sudo apt-get install -y ffmpeg postgresql-client
567- - name : Wait for Postgres service
568- uses : ./.github/actions/wait-for-postgres
552+ - name : Install ffmpeg + pg client and wait for PG
553+ uses : ./.github/actions/ffmpeg-pg-wait
569554 with :
570555 host : localhost
571556 port : ${{ env.TEST_DB_PORT }}
572557 user : ${{ env.TEST_DB_USER }}
573- install-client : ' false'
574558
575559 - name : Install Python dependencies
576560 run : |
@@ -622,10 +606,13 @@ jobs:
622606 pyproject.toml
623607 uv.lock
624608
625- - name : Install system dependencies
609+ - name : Install FFmpeg (multi-OS)
610+ uses : ./.github/actions/setup-ffmpeg
611+ - name : Install system dependencies (Linux)
612+ if : runner.os == 'Linux'
626613 run : |
627614 sudo apt-get update
628- sudo apt-get install -y portaudio19-dev python3-all-dev ffmpeg
615+ sudo apt-get install -y portaudio19-dev python3-all-dev
629616
630617 - name : Install Python dependencies
631618 run : |
@@ -666,10 +653,13 @@ jobs:
666653 pyproject.toml
667654 uv.lock
668655
669- - name : Install system dependencies
656+ - name : Install FFmpeg (multi-OS)
657+ uses : ./.github/actions/setup-ffmpeg
658+ - name : Install system dependencies (Linux)
659+ if : runner.os == 'Linux'
670660 run : |
671661 sudo apt-get update
672- sudo apt-get install -y portaudio19-dev python3-all-dev ffmpeg
662+ sudo apt-get install -y portaudio19-dev python3-all-dev
673663
674664 - name : Install Python dependencies
675665 run : |
@@ -994,7 +984,11 @@ jobs:
994984 if : always()
995985 run : |
996986 export SERVER_LABEL=mcp
997- python tldw_Server_API/scripts/server_lifecycle.py stop
987+ if [ -f "tldw_Server_API/scripts/server_lifecycle.py" ]; then
988+ python tldw_Server_API/scripts/server_lifecycle.py stop || true
989+ else
990+ echo "server_lifecycle.py not found; skipping stop for '${SERVER_LABEL}'";
991+ fi
998992
999993 mcp-tests :
1000994 name : MCP Tests (gated)
@@ -1008,6 +1002,7 @@ jobs:
10081002 DISABLE_HEAVY_STARTUP : " 1"
10091003 MCP_JWT_SECRET : test_secret_key_for_ci_only_32_chars_minimum
10101004 MCP_API_KEY_SALT : test_salt_key_for_ci_only_32_chars_minimum
1005+ PYTEST_DISABLE_PLUGIN_AUTOLOAD : ' 1'
10111006 steps :
10121007 - name : Checkout repository
10131008 uses : actions/checkout@v4
0 commit comments