diff --git a/.github/workflows/build-rtc.yml b/.github/workflows/build-rtc.yml index 52b8c10b..987a7fa5 100644 --- a/.github/workflows/build-rtc.yml +++ b/.github/workflows/build-rtc.yml @@ -139,6 +139,9 @@ jobs: - os: ubuntu-latest python-version: "3.13" artifact: rtc-release-ubuntu-latest + - os: ubuntu-latest + python-version: "3.14" + artifact: rtc-release-ubuntu-latest # macOS tests (arm64 runner) - os: macos-latest python-version: "3.9" @@ -146,6 +149,9 @@ jobs: - os: macos-latest python-version: "3.12" artifact: rtc-release-macos-latest + - os: macos-latest + python-version: "3.14" + artifact: rtc-release-macos-latest # Windows tests - os: windows-latest python-version: "3.9" @@ -153,6 +159,9 @@ jobs: - os: windows-latest python-version: "3.12" artifact: rtc-release-windows-latest + - os: windows-latest + python-version: "3.14" + artifact: rtc-release-windows-latest uses: ./.github/workflows/tests.yml with: os: ${{ matrix.os }} diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a7c74e10..632918f6 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -37,9 +37,10 @@ jobs: submodules: true lfs: true - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: ${{ inputs.python-version }} + allow-prereleases: true - name: Install uv uses: astral-sh/setup-uv@v5 diff --git a/tests/rtc/test_ffi_queue.py b/tests/rtc/test_ffi_queue.py index f0d4dead..329018db 100644 --- a/tests/rtc/test_ffi_queue.py +++ b/tests/rtc/test_ffi_queue.py @@ -147,8 +147,9 @@ def test_filter_with_multiple_event_types(self, event_loop): queue = FfiQueue() sub = queue.subscribe( event_loop, - filter_fn=lambda e: e.WhichOneof("message") - in {"audio_stream_event", "video_stream_event"}, + filter_fn=lambda e: ( + e.WhichOneof("message") in {"audio_stream_event", "video_stream_event"} + ), ) events = [ diff --git a/tests/rtc/test_import.py b/tests/rtc/test_import.py new file mode 100644 index 00000000..f6934f19 --- /dev/null +++ b/tests/rtc/test_import.py @@ -0,0 +1,9 @@ +"""Smoke test: import the SDK and initialize the FFI library.""" + + +def test_import_and_ffi_initialize(): + from livekit import rtc # noqa: F401 + from livekit.rtc._ffi_client import FfiClient + + # accessing .instance triggers livekit_ffi_initialize + assert FfiClient.instance is not None