Skip to content

Commit e0920bf

Browse files
committed
Ship arm64 pygeodiff builds with plugin
1 parent 5dcca60 commit e0920bf

File tree

1 file changed

+24
-6
lines changed

1 file changed

+24
-6
lines changed

.github/workflows/packages.yml

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,11 +80,9 @@ jobs:
8080
name: artifact-pygeodiff-windows
8181
path: ./pygeodiff-binaries/*.pyd
8282

83-
build_macos_binary:
83+
build_macos_binaries:
8484
name: Extract geodiff binary macos
8585
runs-on: macos-latest
86-
env:
87-
PY_PLATFORM: "macosx_10_9_x86_64"
8886
steps:
8987
- uses: actions/setup-python@v4
9088
name: Install Python
@@ -93,14 +91,16 @@ jobs:
9391
run: |
9492
brew install unzip
9593
96-
- name: Download pygeodiff binaries
94+
- name: Download pygeodiff binaries (Intel)
95+
env:
96+
PY_PLATFORM: "macosx_10_9_x86_64"
9797
run: |
9898
pip3 download --only-binary=:all: --no-deps --platform ${PY_PLATFORM} --python-version ${PYTHON_VER} --implementation cp --abi cp${PYTHON_VER} pygeodiff==$GEODIFF_VER
9999
unzip -o pygeodiff-$GEODIFF_VER-cp${PYTHON_VER}-cp${PYTHON_VER}-${PY_PLATFORM}.whl -d tmp
100100
mkdir pygeodiff-binaries
101101
cp tmp/pygeodiff/*.dylib ./pygeodiff-binaries/
102102
103-
- name: Patching pygeodiff binaries
103+
- name: Patching pygeodiff binaries (Intel)
104104
run: |
105105
install_name_tool -change @loader_path/.dylibs/libsqlite3.0.dylib @rpath/libsqlite3.dylib ./pygeodiff-binaries/libpygeodiff-$GEODIFF_VER-python.dylib
106106
OTOOL_L=$(otool -L ./pygeodiff-binaries/libpygeodiff-$GEODIFF_VER-python.dylib)
@@ -110,13 +110,31 @@ jobs:
110110
exit 1
111111
fi
112112
113+
- name: Download pygeodiff binaries (arm64)
114+
env:
115+
PY_PLATFORM: "macosx_14_0_arm64"
116+
run: |
117+
pip3 download --only-binary=:all: --no-deps --platform ${PY_PLATFORM} --python-version ${PYTHON_VER} --implementation cp --abi cp${PYTHON_VER} pygeodiff==$GEODIFF_VER
118+
unzip -o pygeodiff-$GEODIFF_VER-cp${PYTHON_VER}-cp${PYTHON_VER}-${PY_PLATFORM}.whl -d tmp
119+
cp tmp/pygeodiff/*.dylib ./pygeodiff-binaries/ # expects that the folder is created before in the intel job
120+
121+
- name: Patching pygeodiff binaries (arm64)
122+
run: |
123+
install_name_tool -change @loader_path/.dylibs/libsqlite3.0.dylib @rpath/libsqlite3.dylib ./pygeodiff-binaries/libpygeodiff-$GEODIFF_VER-arm64-python.dylib
124+
OTOOL_L=$(otool -L ./pygeodiff-binaries/libpygeodiff-$GEODIFF_VER-arm64-python.dylib)
125+
if echo "${OTOOL_L}" | grep -q loader_path
126+
then
127+
echo "libpygeodiff-$GEODIFF_VER-arm64-python.dylib was not patched correctly, maybe sqlite version changed??"
128+
exit 1
129+
fi
130+
113131
- uses: actions/upload-artifact@v4
114132
with:
115133
name: artifact-pygeodiff-macos
116134
path: ./pygeodiff-binaries/*.dylib
117135

118136
create_mergin_plugin_package:
119-
needs: [build_windows_binaries, build_linux_binary, build_macos_binary]
137+
needs: [build_windows_binaries, build_linux_binary, build_macos_binaries]
120138
runs-on: ubuntu-latest
121139
steps:
122140
- uses: actions/checkout@v3

0 commit comments

Comments
 (0)