Skip to content

Commit

Permalink
Use CI to build Python wheels on different platforms
Browse files Browse the repository at this point in the history
  • Loading branch information
tnull committed Dec 13, 2023
1 parent 78dd547 commit bc58f4c
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 1 deletion.
30 changes: 30 additions & 0 deletions .github/workflows/build-python-wheels.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Build Python Wheels

on: [push, pull_request]

jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04, windows-2019, macos-11]

steps:
- uses: actions/checkout@v4

- name: Generate Python bindings
run: ./scripts/uniffi_bindgen_generate_python.sh

- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_ARCHS_MACOS: "x86_64 arm64 universal2"
CIBW_ARCHS_LINUX: "auto aarch64"
CIBW_BUILD_VERBOSITY: 1
with:
package-dir: ./bindings/python

- uses: actions/upload-artifact@v3
with:
path: ./wheelhouse/*.whl
1 change: 1 addition & 0 deletions bindings/python/setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,4 @@ where = src
ldk_node =
*.so
*.dylib
*.dll
7 changes: 6 additions & 1 deletion scripts/uniffi_bindgen_generate_python.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,13 @@ UNIFFI_BINDGEN_BIN="cargo run --manifest-path bindings/uniffi-bindgen/Cargo.toml

if [[ "$OSTYPE" == "linux-gnu"* ]]; then
DYNAMIC_LIB_PATH="./target/release-smaller/libldk_node.so"
else
elif [[ "$OSTYPE" == "darwin"* ]]; then
DYNAMIC_LIB_PATH="./target/release-smaller/libldk_node.dylib"
elif [[ "$OSTYPE" == "windows"* ]]; then
DYNAMIC_LIB_PATH="./target/release-smaller/libldk_node.dll"
else
echo "Unsupported platform!"
exit -1
fi

cargo build --profile release-smaller --features uniffi || exit 1
Expand Down

0 comments on commit bc58f4c

Please sign in to comment.