Skip to content

Commit 3241833

Browse files
committed
Build custom VTK wheels for other python versions too
1 parent 9b7dea2 commit 3241833

File tree

2 files changed

+42
-78
lines changed

2 files changed

+42
-78
lines changed

.github/workflows/build-ocp.yml

Lines changed: 41 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -134,28 +134,31 @@ jobs:
134134
# - - - - - - - - - - - - - - - - - - - - -
135135

136136
- name: Download wheel artifact
137-
if: matrix.python-version == '3.13' && matrix.use-vtk == 'vtk' && steps.cache-vtk-restore.outputs.cache-hit != 'true'
137+
if: (matrix.python-version == '3.13' || matrix.os == 'ubuntu-22.04-arm') && matrix.use-vtk == 'vtk' && steps.cache-vtk-restore.outputs.cache-hit != 'true'
138138
shell: bash -l {0}
139139
run: |
140-
if [[ "${{ matrix.os }}" == "macos-14" ]]; then
141-
echo "Downloading cadquery_vtk-${{ env.VTK }}-cp313-cp313-macosx_11_0_arm64.whl"
142-
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-${{ env.VTK }}-cp313-cp313-macosx_11_0_arm64.whl
140+
PY_VER=${{ matrix.python-version }}
141+
PY_TAG="cp${PY_VER/./}"
142+
143+
if [[ "${{ matrix.os }}" == "ubuntu-22.04-arm" ]]; then
144+
echo "Downloading cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-linux_aarch64.whl"
145+
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-linux_aarch64.whl
146+
147+
elif [[ "${{ matrix.os }}" == "macos-14" ]]; then
148+
echo "Downloading cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-macosx_11_0_arm64.whl"
149+
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-macosx_11_0_arm64.whl
143150
144151
elif [[ "${{ matrix.os }}" == "macos-13" ]]; then
145-
echo "Downloading cadquery_vtk-9.3.1-cp313-cp313-macosx_11_0_x86_64.whl"
146-
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-9.3.1-cp313-cp313-macosx_11_0_x86_64.whl
152+
echo "Downloading cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-macosx_11_0_x86_64.whl"
153+
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-macosx_11_0_x86_64.whl
147154
148155
elif [[ "${{ matrix.os }}" == "ubuntu-20.04" ]]; then
149-
echo "Downloading cadquery_vtk-9.3.1-cp313-cp313-linux_x86_64.whl"
150-
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-9.3.1-cp313-cp313-linux_x86_64.whl
151-
152-
elif [[ "${{ matrix.os }}" == "ubuntu-22.04-arm" ]]; then
153-
echo "Downloading cadquery_vtk-9.3.1-cp313-cp313-linux_aarch64.whl"
154-
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-9.3.1-cp313-cp313-linux_aarch64.whl
156+
echo "Downloading cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-linux_x86_64.whl"
157+
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-linux_x86_64.whl
155158
156159
else
157-
echo "Downloading cadquery_vtk-9.3.1-cp313-cp313-win_amd64.whl"
158-
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-9.3.1-cp313-cp313-win_amd64.whl
160+
echo "Downloading cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-win_amd64.whl"
161+
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-win_amd64.whl
159162
160163
fi
161164
ls -l
@@ -194,8 +197,8 @@ jobs:
194197
micromamba create -y -n vtk-$PY_VER python=$PY_VER
195198
micromamba activate vtk-$PY_VER
196199
197-
if [[ $PY_VER == 3.13 ]]; then
198-
pip install cadquery_vtk-9.3.1*.whl
200+
if [[ $PY_VER == 3.13 || "${{ matrix.os }}" == "ubuntu-22.04-arm" ]]; then
201+
pip install cadquery_vtk-*.whl
199202
else
200203
pip install vtk==${{ env.VTK }}
201204
fi
@@ -205,7 +208,8 @@ jobs:
205208
cp $CONDA_PREFIX/lib/python$PY_VER/site-packages/vtkmodules/${{ matrix.vtk_libs }} $DEST/lib/
206209
cp $CONDA_PREFIX/lib/python$PY_VER/site-packages/vtk.py $DEST
207210
208-
if [[ "$RUNNER_OS" == "Linux" && "$PY_VER" != "3.13" ]]; then
211+
# vtk.libs only exists in official PyPI VTK wheels, not in custom cadquery_vtk wheels
212+
if [[ "$RUNNER_OS" == "Linux" && "$PY_VER" != "3.13" && "${{ matrix.os }}" != "ubuntu-22.04-arm" ]]; then
209213
cp $CONDA_PREFIX/lib/python$PY_VER/site-packages/vtk.libs/* $DEST/lib/
210214
fi
211215
@@ -462,29 +466,14 @@ jobs:
462466
strategy:
463467
fail-fast: false
464468
matrix:
465-
os: ["macos-13", "macos-14", "ubuntu-20.04", "ubuntu-22.04-arm", "windows-2019"]
469+
os: ["ubuntu-22.04-arm"]
466470
python-version: ["3.11"]
467471

468472
include:
469-
- os: "macos-13"
470-
sed_i: "gsed -i"
471-
env: "MACOSX_DEPLOYMENT_TARGET=11.1"
472-
shells: "bash"
473-
- os: "macos-14"
474-
sed_i: "gsed -i"
475-
env: "MACOSX_DEPLOYMENT_TARGET=11.1"
476-
shells: "bash"
477-
- os: "ubuntu-20.04"
478-
sed_i: "sed -i"
479-
env: "DUMMY=0"
480-
shells: "bash"
481473
- os: "ubuntu-22.04-arm"
482474
sed_i: "sed -i"
483475
env: "DUMMY=0"
484476
shells: "bash"
485-
- os: "windows-2019"
486-
sed_i: "sed -i"
487-
shells: "bash cmd.exe"
488477

489478
steps:
490479
- uses: actions/checkout@v4
@@ -696,47 +685,19 @@ jobs:
696685
strategy:
697686
fail-fast: false
698687
matrix:
699-
os: ["macos-13", "macos-14", "ubuntu-20.04", "ubuntu-22.04-arm", "windows-2019"]
688+
os: ["ubuntu-22.04-arm"]
700689
python-version: ["3.10", "3.11", "3.12", "3.13"]
701-
use-vtk: ["vtk", "novtk"]
690+
use-vtk: ["vtk"]
702691

703692
include:
704-
- os: "macos-13"
705-
delocate: delocate
706-
plat: macosx_11_1_x86_64
707-
sed_i: "gsed -i"
708-
module: "OCP.*.so"
709-
env: "MACOSX_DEPLOYMENT_TARGET=11.1"
710-
shells: "bash"
711-
- os: "macos-14"
712-
delocate: delocate
713-
plat: macosx_11_1_arm64
714-
sed_i: "gsed -i"
715-
module: "OCP.*.so"
716-
env: "MACOSX_DEPLOYMENT_TARGET=11.1"
717-
shells: "bash"
718-
- os: "ubuntu-20.04"
719-
delocate: auditwheel patchelf
720-
plat: manylinux_2_31_x86_64
721-
sed_i: "sed -i"
722-
compilers: ""
723-
module: "OCP.*.so"
724-
env: "DUMMY=0"
725-
shells: "bash"
726693
- os: "ubuntu-22.04-arm"
727694
delocate: auditwheel patchelf
728-
plat: manylinux_2_39_aarch64
695+
plat: manylinux_2_35_aarch64
729696
sed_i: "sed -i"
730697
compilers: ""
731698
module: "OCP.*.so"
732699
env: "DUMMY=0"
733700
shells: "bash"
734-
- os: "windows-2019"
735-
delocate: delvewheel
736-
plat: win_amd64
737-
sed_i: "sed -i"
738-
shells: "bash cmd.exe"
739-
module: "OCP.*.pyd"
740701

741702
steps:
742703
- uses: actions/checkout@v4
@@ -1013,7 +974,7 @@ jobs:
1013974
1014975
if [[ "${{ matrix.use-vtk }}" == "vtk" ]]; then
1015976
PKG_NAME="cadquery_ocp"
1016-
if [[ ${{ matrix.python-version }} == 3.13 ]]; then
977+
if [[ ${{ matrix.python-version }} == 3.13 || "${{ matrix.os }}" == "ubuntu-22.04-arm" ]]; then
1017978
${{ matrix.sed_i }} '/requires-python/a\dependencies = [ "cadquery_vtk==${{ env.VTK }}" ]' pyproject.toml
1018979
else
1019980
${{ matrix.sed_i }} '/requires-python/a\dependencies = [ "vtk==${{ env.VTK }}" ]' pyproject.toml
@@ -1202,28 +1163,31 @@ jobs:
12021163
pip install pytest docutils ipython
12031164
12041165
- name: Download wheel artifact
1205-
if: matrix.python-version == '3.13' && matrix.use-vtk == 'vtk'
1166+
if: (matrix.python-version == '3.13' || matrix.os == 'ubuntu-22.04-arm') && matrix.use-vtk == 'vtk'
12061167
shell: bash -l {0}
12071168
run: |
1169+
PY_TAG="cp${{ matrix.python-version }}"
1170+
PY_TAG="${PY_TAG/./}" # Remove dot: cp3.13 -> cp313
1171+
12081172
if [[ "${{ matrix.os }}" == "macos-14" ]]; then
1209-
echo "Downloading cadquery_vtk-${{ env.VTK }}-cp313-cp313-macosx_11_0_arm64.whl"
1210-
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-${{ env.VTK }}-cp313-cp313-macosx_11_0_arm64.whl
1173+
echo "Downloading cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-macosx_11_0_arm64.whl"
1174+
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-macosx_11_0_arm64.whl
12111175
12121176
elif [[ "${{ matrix.os }}" == "macos-13" ]]; then
1213-
echo "Downloading cadquery_vtk-9.3.1-cp313-cp313-macosx_11_0_x86_64.whl"
1214-
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-${{ env.VTK }}-cp313-cp313-macosx_11_0_x86_64.whl
1177+
echo "Downloading cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-macosx_11_0_x86_64.whl"
1178+
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-macosx_11_0_x86_64.whl
12151179
12161180
elif [[ "${{ matrix.os }}" == "ubuntu-20.04" ]]; then
1217-
echo "Downloading cadquery_vtk-9.3.1-cp313-cp313-linux_x86_64.whl"
1218-
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-${{ env.VTK }}-cp313-cp313-linux_x86_64.whl
1181+
echo "Downloading cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-linux_x86_64.whl"
1182+
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-linux_x86_64.whl
12191183
12201184
elif [[ "${{ matrix.os }}" == "ubuntu-22.04-arm" ]]; then
1221-
echo "Downloading cadquery_vtk-9.3.1-cp313-cp313-linux_aarch64.whl"
1222-
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-${{ env.VTK }}-cp313-cp313-linux_aarch64.whl
1185+
echo "Downloading cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-linux_aarch64.whl"
1186+
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-linux_aarch64.whl
12231187
12241188
else
1225-
echo "Downloading cadquery_vtk-9.3.1-cp313-cp313-win_amd64.whl"
1226-
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-${{ env.VTK }}-cp313-cp313-win_amd64.whl
1189+
echo "Downloading cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-win_amd64.whl"
1190+
curl -L -O ${{ env.VTK313_URL }}/cadquery_vtk-${{ env.VTK }}-${PY_TAG}-${PY_TAG}-win_amd64.whl
12271191
12281192
fi
12291193
ls -l
@@ -1235,7 +1199,7 @@ jobs:
12351199
12361200
micromamba activate test
12371201
if [[ "${{ matrix.use-vtk }}" == "vtk" ]]; then
1238-
if [[ ${{ matrix.python-version }} == 3.13 ]]; then
1202+
if [[ ${{ matrix.python-version }} == 3.13 || "${{ matrix.os }}" == "ubuntu-22.04-arm" ]]; then
12391203
pip install ./cadquery_vtk*.whl
12401204
else
12411205
pip install vtk==${{ env.VTK }}

.github/workflows/build-vtk.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
fail-fast: false
1717
matrix:
1818
os: ["ubuntu-20.04", "ubuntu-22.04-arm", "macos-13", "macos-14", "windows-2019"]
19-
python-version: ["3.13"]
19+
python-version: ["3.10", "3.11", "3.12", "3.13"]
2020
include:
2121
- os: "macos-13"
2222
sed_i: "sed -i '.bak'"

0 commit comments

Comments
 (0)