lib: add CRC functionality #8
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: IAR CI | |
| on: | |
| workflow_dispatch: | |
| push: | |
| paths-ignore: | |
| - 'README.md' | |
| - '.devcontainer/**' | |
| - '.vscode/**' | |
| env: | |
| IAR_LMS_BEARER_TOKEN: ${{ secrets.IAR_LMS_BEARER_TOKEN }} | |
| jobs: | |
| build: | |
| name: Build | |
| runs-on: ubuntu-24.04 | |
| container: | |
| image: ghcr.io/iarsystems/arm:9.70.1-st | |
| steps: | |
| - name: Invoke the IAR C/C++ Compiler for Arm | |
| run: iccarm --version | |
| - name: Checkout project | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: CMake - Configure preset | |
| run: cmake --preset cxarm | |
| - name: CMake - Build Debug preset | |
| run: cmake --build --preset debug --verbose | |
| - name: CMake - Build Release preset | |
| run: cmake --build --preset release --verbose | |
| - name: CMake - Build Release With Debug Info preset | |
| run: cmake --build --preset relwithdebinfo --verbose | |
| - name: CMake - Build Minimum Size Release preset | |
| run: cmake --build --preset minsizerel --verbose | |
| static-analysis: | |
| name: Static Analysis | |
| needs: build | |
| runs-on: ubuntu-24.04 | |
| container: | |
| image: ghcr.io/iarsystems/arm:9.70.1-st | |
| timeout-minutes: 5 | |
| steps: | |
| - name: Checkout project | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: CMake - Configure enabling IAR C-STAT | |
| run: cmake --preset cxarm -DENABLE_ICSTAT=ON | |
| - name: CMake - perform Static Code Analysis with IAR C-STAT | |
| run: cmake --build --preset debug | |
| unit-testing: | |
| name: Unit Testing | |
| needs: build | |
| runs-on: ubuntu-24.04 | |
| container: | |
| image: ghcr.io/iarsystems/arm:9.70.1-st | |
| timeout-minutes: 5 | |
| steps: | |
| - name: Checkout project | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: CMake - Configure preset | |
| run: cmake --preset cxarm | |
| - name: CMake - Build all targets | |
| run: | | |
| cmake --build --preset debug | |
| cmake --build --preset release | |
| cmake --build --preset relwithdebinfo | |
| cmake --build --preset minsizerel | |
| - name: CTest - Unit testing Debug configuration | |
| run: ctest --test-dir build -C Debug | |
| - name: CTest - Unit testing Release configuration | |
| run: ctest --test-dir build -C Release | |
| - name: CTest - Unit testing Release With Debug Info configuration | |
| run: ctest --test-dir build -C RelWithDebInfo | |
| - name: CTest - Unit testing Minimal Size With Debug Info configuration | |
| run: ctest --test-dir build -C MinSizeRel | |
| deploy: | |
| name: Deploy | |
| needs: [ static-analysis, unit-testing ] | |
| runs-on: ubuntu-24.04 | |
| container: | |
| image: ghcr.io/iarsystems/arm:9.70.1-st | |
| steps: | |
| - name: Checkout project | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: CMake - Configure preset | |
| run: cmake --preset cxarm | |
| - name: CMake - Build Debug preset | |
| run: cmake --build --preset debug | |
| - name: CMake - Build Release preset | |
| run: cmake --build --preset release | |
| - name: CMake - Build Release With Debug Info preset | |
| run: cmake --build --preset relwithdebinfo | |
| - name: CMake - Build Minimum Size Release preset | |
| run: cmake --build --preset minsizerel | |
| - name: Upload verified artifacts | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: verified-artifacts | |
| path: | | |
| build/Debug/light-effects.elf | |
| build/Debug/light-effects.hex | |
| build/Debug/light-effects.map | |
| build/Release/light-effects.elf | |
| build/Release/light-effects.hex | |
| build/Release/light-effects.map | |
| build/RelWithDebInfo/light-effects.elf | |
| build/RelWithDebInfo/light-effects.hex | |
| build/RelWithDebInfo/light-effects.map | |
| build/MinSizeRel/light-effects.elf | |
| build/MinSizeRel/light-effects.hex | |
| build/MinSizeRel/light-effects.map | |
| if-no-files-found: error | |