Update clang format #240
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build CI | |
on: | |
pull_request: | |
types: [opened, reopened] | |
push: | |
workflow_dispatch: | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.x | |
- name: Checkout Current Repo | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
fetch-depth: 0 | |
- name: Install dependencies | |
# cmake ships with the ubuntu-latest runner | |
run: | | |
sudo apt-get install python3-dev | |
python3 -m pip install -r docs/requirements.txt -r requirements.txt -r requirements-dev.txt | |
- name: Run cpp-linter as a py pkg | |
id: linter | |
run: | | |
sudo apt-get install clang-format-14 | |
cpp-linter \ | |
--version=14 \ | |
--style=file \ | |
--tidy-checks='-*' \ | |
--lines-changed-only=true \ | |
--ignore='!src|' \ | |
--format-review=true \ | |
--file-annotations=false | |
- name: C++ Linter checks failed? | |
if: steps.linter.outputs.checks-failed > 0 | |
run: exit 1 | |
- name: Build package for docs extraction and linting examples | |
run: | | |
python3 setup.py sdist bdist_wheel | |
python3 -m pip install dist/pyrf24-*.whl | |
- name: check python typing | |
run: mypy src | |
- name: check python examples PEP8 compliance | |
# duplicate-code error gets flagged because some examples use similar code snippets | |
run: pylint examples/*.py src/pyrf24/*.py --disable=duplicate-code --output-format=json:pylint.json | |
- name: Match pylint problems to diff via github annotations | |
run: python ./.github/workflows/pylint_matcher.py pylint.json | |
- name: Get doc dependencies | |
run: |- | |
sudo apt-get update | |
sudo apt-get install -y libgl-dev libglvnd-dev libxkbcommon-x11-0 graphviz | |
- name: Build docs | |
working-directory: docs | |
env: | |
# required for pySide6 on headless linux (as used by sphinx-social-cards extension) | |
QT_QPA_PLATFORM: offscreen | |
run: sphinx-build -E -W -b html . _build/html | |
- name: Save built docs as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "pyRF24_docs" | |
path: ${{ github.workspace }}/docs/_build/html | |
- name: upload to github pages | |
if: github.ref == 'refs/heads/main' | |
uses: peaceiris/actions-gh-pages@v3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
publish_dir: ./docs/_build/html | |
- name: Save distributable wheels as artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "pyRF24_pkg_dist" | |
path: ${{ github.workspace }}/dist | |
- name: Validate distribution | |
run: | | |
python3 -m pip install twine | |
python3 -m twine check dist/* |