Skip to content

update actions to build for Python 3.13 #26

update actions to build for Python 3.13

update actions to build for Python 3.13 #26

Workflow file for this run

name: Python package
on:
- push
- pull_request
jobs:
build:
strategy:
fail-fast: false
matrix:
platform: [ubuntu-latest, macos-latest, windows-latest]
python-version: ["3.8", "3.13"]
system-hidapi: ["", "--with-system-hidapi"]
libusb-backend: ["", "--with-libusb"]
exclude:
# TODO: it is non-trivial to install pkg-config and HIDAPI,
# and configure it run work in runtime
- platform: windows-latest
system-hidapi: "--with-system-hidapi"
# libusb backend is not present on Windows/macOS
- platform: macos-latest
libusb-backend: "--with-libusb"
- platform: windows-latest
libusb-backend: "--with-libusb"
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install Ubuntu dependencies
if: matrix.platform == 'ubuntu-latest'
run: sudo apt install libudev-dev libusb-1.0-0-dev
- name: Install Ubuntu HIDAPI
if: ${{ (matrix.platform == 'ubuntu-latest') && (matrix.system-hidapi == '--with-system-hidapi') }}
# the default apt version of libhidapi-dev is too old, need to build the one we know would work
run: |
sudo apt install cmake
mkdir hidapi_build && cd hidapi_build
cmake -B . -S ../hidapi -DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install
- name: Install macOS HIDAPI
if: ${{ (matrix.platform == 'macos-latest') && (matrix.system-hidapi == '--with-system-hidapi') }}
run: brew install hidapi
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
python -m pip install setuptools tox tox-gh-actions
pip install -r requirements.txt --upgrade
- name: Test with tox
env:
HIDAPI_SYSTEM_HIDAPI: ${{ matrix.system-hidapi == '--with-system-hidapi' && '1' || '0' }}
HIDAPI_WITH_LIBUSB: ${{ matrix.libusb-backend == '--with-libusb' && '1' || '0' }}
run: |
pip install .
tox