Skip to content

Changed slcan serial read routine to be faster and to manage the buffer more carefully #1286

Changed slcan serial read routine to be faster and to manage the buffer more carefully

Changed slcan serial read routine to be faster and to manage the buffer more carefully #1286

Workflow file for this run

name: Tests
on:
release:
types: [ published ]
pull_request:
push:
branches-ignore:
- 'dependabot/**'
env:
PY_COLORS: "1"
permissions:
contents: read
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
env: [
"py310",
"py311",
"py312",
"py313",
"py314",
# "py313t",
# "py314t",
"pypy310",
"pypy311",
]
fail-fast: false
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # 6.0.1
with:
fetch-depth: 0
persist-credentials: false
- name: Install uv
uses: astral-sh/setup-uv@681c641aba71e4a1c380be3ab5e12ad51f415867 # 7.1.6
- name: Install tox
run: uv tool install tox --with tox-uv
- name: Setup SocketCAN
if: ${{ matrix.os == 'ubuntu-latest' }}
run: |
sudo apt-get update
sudo apt-get -y install linux-modules-extra-$(uname -r)
sudo ./test/open_vcan.sh
- name: Test with pytest via tox
run: |
tox -e ${{ matrix.env }}
env:
# SocketCAN tests currently fail with PyPy because it does not support raw CAN sockets
# See: https://github.com/pypy/pypy/issues/3808
TEST_SOCKETCAN: "${{ matrix.os == 'ubuntu-latest' && ! startsWith(matrix.env, 'pypy' ) }}"
- name: Coveralls Parallel
uses: coverallsapp/github-action@5cbfd81b66ca5d10c19b062c04de0199c215fb6e # 2.3.7
with:
github-token: ${{ secrets.github_token }}
flag-name: Unittests-${{ matrix.os }}-${{ matrix.env }}
parallel: true
path-to-lcov: ./coverage.lcov
coveralls:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # 6.0.1
with:
fetch-depth: 0
persist-credentials: false
- name: Coveralls Finished
uses: coverallsapp/github-action@5cbfd81b66ca5d10c19b062c04de0199c215fb6e # 2.3.7
with:
github-token: ${{ secrets.github_token }}
parallel-finished: true
static-code-analysis:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # 6.0.1
with:
fetch-depth: 0
persist-credentials: false
- name: Install uv
uses: astral-sh/setup-uv@681c641aba71e4a1c380be3ab5e12ad51f415867 # 7.1.6
- name: Install tox
run: uv tool install tox --with tox-uv
- name: Run linters
run: |
tox -e lint
- name: Run type checker
run: |
tox -e type
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # 6.0.1
with:
fetch-depth: 0
persist-credentials: false
- name: Install uv
uses: astral-sh/setup-uv@681c641aba71e4a1c380be3ab5e12ad51f415867 # 7.1.6
- name: Install tox
run: uv tool install tox --with tox-uv
- name: Build documentation
run: |
tox -e docs
build:
name: Packaging
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # 6.0.1
with:
fetch-depth: 0
persist-credentials: false
- name: Install uv
uses: astral-sh/setup-uv@681c641aba71e4a1c380be3ab5e12ad51f415867 # 7.1.6
- name: Build wheel and sdist
run: uv build
- name: Check build artifacts
run: uvx twine check --strict dist/*
- name: Save artifacts
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # 6.0.0
with:
name: release
path: ./dist
upload_pypi:
needs: [build]
name: Release to PyPi
runs-on: ubuntu-latest
permissions:
id-token: write
attestations: write
# upload to PyPI only on release
if: github.event.release && github.event.action == 'published'
steps:
- uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # 7.0.0
with:
path: dist
merge-multiple: true
- name: Generate artifact attestation
uses: actions/attest-build-provenance@00014ed6ed5efc5b1ab7f7f34a39eb55d41aa4f8 # 3.1.0
with:
subject-path: 'dist/*'
- name: Publish release distributions to PyPI
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # 1.13.0