Introduce automatic linting with Github workflows (#251)

* Add linters

* use other setup-python version

* Use string instead

* Add more linting

* Fix tests

* minor changes

---------

Co-authored-by: Marcus Valtonen Örnhag <marcus.valtonen.ornhag@ericsson.com>
This commit is contained in:
Marcus Valtonen Örnhag
2025-04-04 18:36:35 +02:00
committed by GitHub
parent c93176d83a
commit 948a479601
5 changed files with 70 additions and 3 deletions

17
.github/workflows/tests-frontend.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
name: tests
on: [push, pull_request]
jobs:
prettier:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18
- name: Run prettier
run: |
cd frontend
npm install
npx prettier --check .

17
.github/workflows/tests.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
name: tests
on: [push, pull_request]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Run linters
run: |
pip install ruff
ruff check .
ruff format --check --diff .

View File

@@ -83,5 +83,38 @@ artifacts = ["/backend/fastrtc/templates", "*.pyi"]
packages = ["/backend/fastrtc"] packages = ["/backend/fastrtc"]
[tool.ruff] [tool.ruff]
src = ["demo", "backend/fastrtc"]
target-version = "py310" target-version = "py310"
extend-exclude = ["demo/phonic_chat", "demo/nextjs_voice_chat"] extend-exclude = ["demo/phonic_chat", "demo/nextjs_voice_chat"]
[tool.ruff.format]
exclude = ["*.pyi"]
quote-style = "double"
indent-style = "space"
skip-magic-trailing-comma = false
line-ending = "auto"
[tool.ruff.lint]
select = [
"E",
"F",
"W",
"Q",
"I",
]
# These can be turned on when the framework is more mature (Too many errors right now)
exclude = [
"D",
"UP"
]
# Avoid enforcing line-length violations (`E501`)
ignore = ["E501"]
[tool.ruff.lint.pydocstyle]
convention = "google"
[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["E402"]
"demo/talk_to_smolagents/app.py" = ["W291"]