Skip to content

Commit

Permalink
test pypi
Browse files Browse the repository at this point in the history
  • Loading branch information
moonlight83340 committed Aug 13, 2024
1 parent 999bcf1 commit 38d8f76
Show file tree
Hide file tree
Showing 6 changed files with 120 additions and 41 deletions.
89 changes: 89 additions & 0 deletions .github/workflows/build-test-publish-python.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
name: Build and test python
on: [push, pull_request]
jobs:
build-test-python:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-24.04
arch:
- posix
buildsystem:
- cmake
runs-on: ${{ matrix.os }}
steps:
- name: Setup packages on Linux
run: |
sudo apt-get update
sudo apt-get install libzmq3-dev libsocketcan-dev
- name: Setup build system packages on Linux
run: |
sudo apt-get install ninja-build cmake
- name: Checkout
uses: actions/checkout@v4

- name: Build libcsp examples
run: python3 examples/buildall.py ${{ matrix.arch }} --build-system=${{ matrix.buildsystem }}

- name: Build libcsp with python binding
run: |
cmake -GNinja -B buildBinding -DCSP_ENABLE_PYTHON3_BINDINGS=1 -DCSP_USE_RTABLE=1 -DCMAKE_POSITION_INDEPENDENT_CODE=ON && ninja -C buildBinding
- name: Run ZMQ Python binding Test
run: |
build/examples/zmqproxy &
LD_LIBRARY_PATH=buildBinding PYTHONPATH=buildBinding python3 examples/python_bindings_example_server.py &
LD_LIBRARY_PATH=buildBinding PYTHONPATH=buildBinding python3 examples/python_bindings_example_client.py -z localhost -s 27 -a 2
pkill zmqproxy
- name: Prepare Python binding for packaging
run: |
mkdir -p libcsp_py3/
cp buildBinding/libcsp_py3*.so libcsp_py3/libcsp_py3-${{ matrix.os }}.so
- name: Set up Python environment
uses: actions/setup-python@v4
with:
python-version: '3.x'

- name: Create and activate virtual environment
run: |
python -m venv venv
source venv/bin/activate
python -m pip install --upgrade pip
python -m pip install setuptools wheel build
- name: Build the Python package
run: |
source venv/bin/activate
python3 -m build
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
#if: github.ref == 'refs/heads/develop' || startsWith(github.ref, 'refs/tags/')

# Install the package from PyPI and run tests again
- name: Install package from PyPI
run: |
source venv/bin/activate
pip install -i https://test.pypi.org/simple/ csp-moonlight
# Verify the package installation
pip show csp-moonlight
# Verify that .py files are present
ls venv/lib/python*/site-packages/
ls -l venv/lib/python*/site-packages/csp_moonlight-2.0.0.dist-info
# Test import in Python
python -c "import csp_moonlight; print('csp_moonlight imported successfully')"
python -c "from csp_moonlight import libcsp_py3 as libcsp; print('libcsp_py3 imported successfully')"
# Run again tests to test the uploaded package
#- name: Run ZMQ Python binding test with PyPI package
# run: |
# build/examples/zmqproxy &
# python3 examples/python_bindings_example_server.py &
# python3 examples/python_bindings_example_client.py -z localhost -s 27 -a 2
# pkill zmqproxy
41 changes: 0 additions & 41 deletions .github/workflows/build-test-python.yml

This file was deleted.

1 change: 1 addition & 0 deletions libcsp_py3/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from .libcsp_py3 import *
2 changes: 2 additions & 0 deletions manifest.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
include README.md
include LICENSE
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["setuptools>=42", "wheel"]
build-backend = "setuptools.build_meta"
25 changes: 25 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
from setuptools import setup, find_packages

setup(
name='csp_moonlight',
version='2.0.0',
description='CSP Python bindings',
long_description=open('README.md').read(),
long_description_content_type='text/markdown',
license='MIT',
license_files=('LICENSE',),
author='moonlight83340',
author_email='[email protected]',
url='https://github.com/moonlight83340/libcsp',
packages=find_packages(), # Automatically find packages in the current directory
package_dir={'': ''}, # Root directory is the current directory
package_data={
'': ['libcsp_py3*.so'], # Include .so files in the package
},
classifiers=[
'Programming Language :: Python :: 3',
'License :: OSI Approved :: MIT License',
'Operating System :: POSIX :: Linux',
],
python_requires='>=3.5',
)

0 comments on commit 38d8f76

Please sign in to comment.