Skip to content

FIX: Some hardware ID are not compatible with ascii, in that case fal… #1249

FIX: Some hardware ID are not compatible with ascii, in that case fal…

FIX: Some hardware ID are not compatible with ascii, in that case fal… #1249

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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 5.0.0
with:
fetch-depth: 0
persist-credentials: false
- name: Install uv
uses: astral-sh/setup-uv@eb1897b8dc4b5d5bfe39a428a8f2304605e0983c # 7.0.0
- 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@648a8eb78e6d50909eff900e4ec85cab4524a45b # 2.3.6
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 5.0.0
with:
fetch-depth: 0
persist-credentials: false
- name: Coveralls Finished
uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b # 2.3.6
with:
github-token: ${{ secrets.github_token }}
parallel-finished: true
static-code-analysis:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 5.0.0
with:
fetch-depth: 0
persist-credentials: false
- name: Install uv
uses: astral-sh/setup-uv@eb1897b8dc4b5d5bfe39a428a8f2304605e0983c # 7.0.0
- 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 5.0.0
with:
fetch-depth: 0
persist-credentials: false
- name: Install uv
uses: astral-sh/setup-uv@eb1897b8dc4b5d5bfe39a428a8f2304605e0983c # 7.0.0
- 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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # 5.0.0
with:
fetch-depth: 0
persist-credentials: false
- name: Install uv
uses: astral-sh/setup-uv@eb1897b8dc4b5d5bfe39a428a8f2304605e0983c # 7.0.0
- 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@ea165f8d65b6e75b540449e92b4886f43607fa02 # 4.6.2
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@634f93cb2916e3fdff6788551b99b062d0335ce0 # 5.0.0
with:
path: dist
merge-multiple: true
- name: Generate artifact attestation
uses: actions/attest-build-provenance@977bb373ede98d70efdf65b84cb5f73e068dcc2a # 3.0.0
with:
subject-path: 'dist/*'
- name: Publish release distributions to PyPI
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # 1.13.0