From 2bd796e2c2a5136b3ad1465a15a71f0e992acf91 Mon Sep 17 00:00:00 2001 From: Olivier Martin Date: Thu, 22 Feb 2024 09:35:15 +0100 Subject: [PATCH] ci: Generate Python package with cibuildwheel --- .github/workflows/github-actions.yml | 9 +++------ ci/generate-python-package.sh | 8 ++++++-- ci/install-bluez.sh | 24 ++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 8 deletions(-) create mode 100755 ci/install-bluez.sh diff --git a/.github/workflows/github-actions.yml b/.github/workflows/github-actions.yml index 13d4f909..f31693de 100644 --- a/.github/workflows/github-actions.yml +++ b/.github/workflows/github-actions.yml @@ -24,21 +24,18 @@ jobs: generate-python-binary-packages: runs-on: ubuntu-latest - strategy: - matrix: - python-version: ["3.9", "3.10", "3.11"] steps: - uses: actions/checkout@v4 - run: sudo apt install -y libbluetooth-dev - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - run: ./ci/generate-python-package.sh + env: + CIBW_BEFORE_BUILD_LINUX: "sh ci/install-bluez.sh" - name: Archive Python packages uses: actions/upload-artifact@v4 with: - name: python-${{ matrix.python-version }}-binary-package + name: python-binary-packages path: dist/* # publish-python-packages: diff --git a/ci/generate-python-package.sh b/ci/generate-python-package.sh index 8cbac500..3119531d 100755 --- a/ci/generate-python-package.sh +++ b/ci/generate-python-package.sh @@ -23,6 +23,10 @@ cp -r ${ROOT_PATH}/include ${gattlib_py_package_dir}/ cp -r ${ROOT_PATH}/CMakeLists.txt ${gattlib_py_package_dir}/ cp -r ${ROOT_PATH}/CrossCompilation.cmake ${gattlib_py_package_dir}/ +# Build script +mkdir ${gattlib_py_package_dir}/ci/ +cp -r ${ROOT_PATH}/ci/install-bluez.sh ${gattlib_py_package_dir}/ci/ + # Create MANIFEST.in cat <> MANIFEST.in graft common @@ -34,13 +38,13 @@ include CrossCompilation.cmake EOT # Install requirements -python3 -m pip install wheel +python3 -m pip --disable-pip-version-check install cibuildwheel==2.16.5 # Generate packages pushd ${gattlib_py_package_dir} # Binary package -python3 setup.py bdist_wheel +python3 -m cibuildwheel --output-dir dist # Source package python setup.py sdist diff --git a/ci/install-bluez.sh b/ci/install-bluez.sh new file mode 100755 index 00000000..3a9d22c3 --- /dev/null +++ b/ci/install-bluez.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# Exit immediately if a command exits with a non-zero status. +set -e + +# Install dependencies +yum -y install wget dbus-devel + +# +# +# +wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.66.tar.xz +tar -xf bluez-5.66.tar.xz +pushd bluez-5.66 +./configure --prefix=/usr --disable-obex --disable-udev --disable-cups --disable-client --disable-manpages --disable-tools \ + --disable-obex --disable-monitor --disable-hog --disable-hid --disable-network --disable-a2dp --disable-avrcp --disable-bap \ + --disable-mcp --disable-vcp --enable-library +make +make install +popd +rm -Rf bluez-5.66 + +find / -name '*.pc' +find / -name 'bluez.pc'