ci: Script to generate Python package

pull/268/head
Olivier Martin 2024-02-21 00:00:12 +01:00 committed by Olivier Martin
parent 33a634a535
commit 7d5748cb0d
1 changed files with 53 additions and 0 deletions

53
ci/generate-python-package.sh Executable file
View File

@ -0,0 +1,53 @@
#!/bin/bash
# Exit immediately if a command exits with a non-zero status.
set -e
# Retrieve path of current script
SCRIPT_PATH=`dirname "$0"`
SCRIPT_PATH=`( cd "$SCRIPT_PATH" && pwd )`
ROOT_PATH=`( cd "$SCRIPT_PATH/.." && pwd )`
gattlib_py_package_dir=$(mktemp -d -p $PWD -t gattlib-py-package-XXXXXXXXXX)
# Python code
cp -r ${ROOT_PATH}/gattlib-py/gattlib ${gattlib_py_package_dir}/
cp -r ${ROOT_PATH}/gattlib-py/setup.py ${gattlib_py_package_dir}/
cp -r ${ROOT_PATH}/gattlib-py/README.md ${gattlib_py_package_dir}/
# Native code
cp -r ${ROOT_PATH}/common ${gattlib_py_package_dir}/
cp -r ${ROOT_PATH}/bluez ${gattlib_py_package_dir}/
cp -r ${ROOT_PATH}/dbus ${gattlib_py_package_dir}/
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}/
# Create MANIFEST.in
cat <<EOT >> MANIFEST.in
graft common
graft bluez
graft dbus
graft include
include CMakeLists.txt
include CrossCompilation.cmake
EOT
# Install requirements
python3 -m pip install wheel
# Generate packages
pushd ${gattlib_py_package_dir}
# Binary package
python3 setup.py bdist_wheel
# Source package
python setup.py sdist
# Move generated artifact to project root path
ls dist/*
mv dist/* ${ROOT_PATH}
popd
rm -Rf ${gattlib_py_package_dir}