Revise README for clarity on CrumBLE features #13
This file contains hidden or 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: CI (build) | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| permissions: | |
| contents: read | |
| jobs: | |
| clang-format: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.14" | |
| - name: Install clang-format-21 | |
| run: | | |
| wget https://apt.llvm.org/llvm.sh | |
| chmod +x llvm.sh | |
| sudo ./llvm.sh 21 | |
| sudo apt-get update | |
| sudo apt-get install -y clang-format-21 | |
| - name: Run clang-format | |
| run: | | |
| PATH="/usr/lib/llvm-21/bin:$PATH" ./bin/clang-format-fix | |
| git diff --exit-code || (echo "Please run 'bin/clang-format-fix' to fix formatting issues" && exit 1) | |
| cppcheck: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.14" | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| version: "latest" | |
| enable-cache: true | |
| - name: Cache PlatformIO packages | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.platformio | |
| key: ${{ runner.os }}-platformio-${{ hashFiles('platformio.ini', 'platformio.local.example.ini') }} | |
| restore-keys: | | |
| ${{ runner.os }}-platformio- | |
| - name: Install PlatformIO Core | |
| run: uv pip install --system -U https://github.com/pioarduino/platformio-core/archive/refs/tags/v6.1.19.zip | |
| - name: Run cppcheck | |
| run: pio check --fail-on-defect low --fail-on-defect medium --fail-on-defect high | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.14" | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| version: "latest" | |
| enable-cache: true | |
| - name: Cache PlatformIO packages | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.platformio | |
| key: ${{ runner.os }}-platformio-${{ hashFiles('platformio.ini', 'platformio.local.example.ini') }} | |
| restore-keys: | | |
| ${{ runner.os }}-platformio- | |
| - name: Install PlatformIO Core | |
| run: uv pip install --system -U https://github.com/pioarduino/platformio-core/archive/refs/tags/v6.1.19.zip | |
| - name: Build CrossInk | |
| run: | | |
| set -euo pipefail | |
| pio run | tee pio.log | |
| - name: Extract firmware stats | |
| run: | | |
| set -euo pipefail | |
| { | |
| echo "## Firmware build stats" | |
| grep -E "RAM:\s|Flash:\s" pio.log | while read -r line; do echo "- ${line}"; done | |
| } >> "$GITHUB_STEP_SUMMARY" | |
| - name: Upload firmware artifacts | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: firmware | |
| path: | | |
| .pio/build/tiny/firmware-tiny.bin | |
| .pio/build/xlarge/firmware-xlarge.bin | |
| .pio/build/no_emoji/firmware-no_emoji.bin | |
| if-no-files-found: error | |
| # This job is used as the PR required actions check, allows for changes to other steps in the future without breaking | |
| # PR requirements. | |
| test-status: | |
| name: Test Status | |
| needs: | |
| - build | |
| - clang-format | |
| - cppcheck | |
| if: always() | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Fail because needed jobs failed | |
| # Fail if any job failed or was cancelled (skipped jobs are ok) | |
| if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }} | |
| run: exit 1 | |
| - name: Success | |
| run: exit 0 |