@@ -23,19 +23,62 @@ jobs:
2323 name : core-wheels
2424 path : ./wheelhouse/*.whl
2525
26- build_extension_wheels :
27- name : Build ${{ matrix. extension }} wheels on Python ${{ matrix.python-version }}
26+ build_cpp_extension_wheels :
27+ name : Build C++ extension wheels for ${{ matrix.extension }}
2828 needs : [build_core_wheels]
2929 runs-on : ubuntu-latest
3030 strategy :
3131 fail-fast : false
3232 matrix :
33- python-version : ["3.11", "3.12", "3.13"]
3433 extension :
3534 - rcs_fr3
3635 - rcs_panda
3736 - rcs_robotics_library
3837 - rcs_so101
38+
39+ steps :
40+ - uses : actions/checkout@v4
41+
42+ - uses : actions/download-artifact@v4
43+ with :
44+ name : core-wheels
45+ path : dist/core
46+
47+ - name : Install root Debian dependencies
48+ run : |
49+ sudo apt-get update
50+ sudo xargs -a debian_deps.txt apt-get install -y
51+
52+ - name : Install extension Debian dependencies
53+ run : |
54+ deps_file="extensions/${{ matrix.extension }}/debian_deps.txt"
55+ if [ -f "${deps_file}" ]; then
56+ sudo xargs -a "${deps_file}" apt-get install -y
57+ fi
58+
59+ - name : Build C++ extension wheels
60+ uses : pypa/cibuildwheel@v2.22.0
61+ env :
62+ CIBW_ARCHS_LINUX : x86_64
63+ CIBW_BUILD : cp311-* cp312-* cp313-*
64+ PIP_FIND_LINKS : /project/dist/core
65+ with :
66+ package-dir : extensions/${{ matrix.extension }}
67+ output-dir : extensions/${{ matrix.extension }}/wheelhouse
68+
69+ - uses : actions/upload-artifact@v4
70+ with :
71+ name : wheels-${{ matrix.extension }}
72+ path : extensions/${{ matrix.extension }}/wheelhouse/*.whl
73+
74+ build_python_extension_wheels :
75+ name : Build pure Python wheel for ${{ matrix.extension }}
76+ needs : [build_core_wheels]
77+ runs-on : ubuntu-latest
78+ strategy :
79+ fail-fast : false
80+ matrix :
81+ extension :
3982 - rcs_realsense
4083 - rcs_robotiq2f85
4184 - rcs_tacto
@@ -67,10 +110,10 @@ jobs:
67110 - name : Set up Python
68111 uses : actions/setup-python@v5
69112 with :
70- python-version : ${{ matrix.python-version }}
113+ python-version : " 3.11 "
71114 cache : pip
72115
73- - name : Build extension wheel
116+ - name : Build pure Python wheel
74117 env :
75118 PIP_FIND_LINKS : ${{ github.workspace }}/dist/core
76119 run : |
@@ -80,11 +123,11 @@ jobs:
80123
81124 - uses : actions/upload-artifact@v4
82125 with :
83- name : wheels-${{ matrix.extension }}-py${{ matrix.python-version }}
126+ name : wheels-${{ matrix.extension }}
84127 path : extensions/${{ matrix.extension }}/dist/*.whl
85128
86129 upload_pypi :
87- needs : [build_core_wheels, build_extension_wheels ]
130+ needs : [build_core_wheels, build_cpp_extension_wheels, build_python_extension_wheels ]
88131 runs-on : ubuntu-latest
89132 if : github.event_name == 'release' && github.event.action == 'published'
90133 environment : pypi
0 commit comments