1010 workflow_dispatch :
1111
1212jobs :
13+ build-rtc :
14+ name : Build livekit-rtc wheel
15+ runs-on : ubuntu-latest
16+ steps :
17+ - uses : actions/checkout@v6
18+ with :
19+ submodules : true
20+
21+ - uses : actions/setup-python@v6
22+ with :
23+ python-version : " 3.9"
24+
25+ - name : Install cibuildwheel
26+ run : python3 -m pip install cibuildwheel==2.17.0
27+
28+ - name : Build wheel
29+ working-directory : ./livekit-rtc
30+ run : python3 -m cibuildwheel --output-dir dist
31+ env :
32+ CIBW_ARCHS : x86_64
33+
34+ - uses : actions/upload-artifact@v4
35+ with :
36+ name : rtc-wheel
37+ path : livekit-rtc/dist/*.whl
38+
1339 tests :
14- name : Run tests
40+ name : Run tests (Python ${{ matrix.python-version }})
41+ needs : build-rtc
1542 runs-on : ubuntu-latest
43+ strategy :
44+ fail-fast : false
45+ matrix :
46+ python-version : ["3.9", "3.10", "3.11", "3.12", "3.13"]
1647 steps :
1748 - uses : actions/checkout@v6
1849 with :
1950 submodules : true
2051 lfs : true
21- - name : Install uv
2252
53+ - uses : actions/setup-python@v6
54+ with :
55+ python-version : ${{ matrix.python-version }}
56+
57+ - name : Install uv
2358 uses : astral-sh/setup-uv@v5
2459 with :
2560 enable-cache : true
2661 cache-dependency-glob : " uv.lock"
2762
63+ - name : Download livekit-rtc wheel
64+ uses : actions/download-artifact@v4
65+ with :
66+ name : rtc-wheel
67+ path : rtc-wheel
68+
2869 - name : Install the project
2970 run : uv sync --all-extras --dev
3071
31- - uses : actions/setup-python@v6
32- with :
33- python-version : ' 3.13'
34-
3572 - name : Run tests
3673 env :
3774 LIVEKIT_URL : ${{ secrets.LIVEKIT_URL }}
3875 LIVEKIT_API_KEY : ${{ secrets.LIVEKIT_API_KEY }}
3976 LIVEKIT_API_SECRET : ${{ secrets.LIVEKIT_API_SECRET }}
4077 run : |
41-
42- uv run python ./livekit-rtc/rust-sdks/download_ffi.py --output livekit-rtc/livekit/rtc/resources
43- uv add ./livekit-rtc ./livekit-api ./livekit-protocol
78+ uv add rtc-wheel/*.whl ./livekit-api ./livekit-protocol
4479 uv run pytest . --ignore=livekit-rtc/rust-sdks
4580
0 commit comments