diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 338fefe..0996179 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -61,15 +61,8 @@ jobs: run: | poetry install --all-extras --with dev,powermon poetry run meshtastic --version - - name: Run pylint - run: poetry run pylint meshtastic examples/ --ignore-patterns ".*_pb2.pyi?$" - - name: Check types with mypy - run: poetry run mypy meshtastic/ - - name: Run tests with pytest - run: poetry run pytest --cov=meshtastic - - name: Generate coverage report - run: | - poetry run pytest --cov=meshtastic --cov-report=xml + - name: Run lint, type check, and tests in parallel + run: make -j3 --output-sync=target ci - name: Upload coverage to Codecov uses: codecov/codecov-action@v4 with: diff --git a/Makefile b/Makefile index f9a43ae..0786212 100644 --- a/Makefile +++ b/Makefile @@ -42,5 +42,19 @@ cov: examples: FORCE pytest -mexamples +# CI targets (run via poetry, executed in parallel by the CI workflow) +.PHONY: ci-pylint ci-mypy ci-test ci + +ci-pylint: + poetry run pylint meshtastic examples/ --ignore-patterns ".*_pb2.pyi?$$" + +ci-mypy: + poetry run mypy meshtastic/ + +ci-test: + poetry run pytest --cov=meshtastic --cov-report=xml + +ci: ci-pylint ci-mypy ci-test + # Makefile hack to get the examples to always run FORCE: ;