Skip to content

lib: add CRC functionality #8

lib: add CRC functionality

lib: add CRC functionality #8

Workflow file for this run

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