diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..015565f --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,40 @@ +name: CI +on: push + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v6 + with: + submodules: recursive + - uses: actions/cache@v5 + with: + path: | + ~/.cache/pip + ~/.platformio/.cache + key: ${{ runner.os }}-pio + - uses: actions/setup-python@v6 + with: + python-version: '3.14' + + - name: Install PlatformIO Core + run: pip install --upgrade platformio + + - 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 cppcheck + run: pio check --fail-on-defect medium --fail-on-defect high + + - 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) + + - name: Build CrossPoint + run: pio run diff --git a/platformio.ini b/platformio.ini index 6918e34..7998dcb 100644 --- a/platformio.ini +++ b/platformio.ini @@ -8,6 +8,9 @@ board = esp32-c3-devkitm-1 framework = arduino monitor_speed = 115200 upload_speed = 921600 +check_tool = cppcheck +check_skip_packages = yes +check_severity = medium, high board_upload.flash_size = 16MB board_upload.maximum_size = 16777216