enable musl linux release builds or aarch64 and armv7l #404
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: | |
branches: [main] | |
push: | |
branches: [main] | |
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 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
id: linter | |
run: | | |
sudo apt-get install clang-format-14 | |
cpp-linter \ | |
--version=14 \ | |
--style=file \ | |
--tidy-checks='-*' \ | |
--lines-changed-only=true \ | |
--ignore='src/linux/gpio.h' \ | |
--format-review=true \ | |
--file-annotations=false \ | |
--step-summary=true | |
- 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: | | |
python -m pip install build | |
python -m build | |
python -m pip install dist/pyrf24-*.whl | |
- name: check python typing | |
run: mypy src | |
- name: lint python sources | |
run: ruff check examples/*.py src/pyrf24/*.py* setup.py docs/conf.py | |
- name: format python sources | |
run: ruff format examples/*.py src/pyrf24/*.py* setup.py docs/conf.py | |
- 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@v4 | |
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/* |