Add coverity test application #99
Workflow file for this run
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: FreeRTOS Demos | |
on: | |
push: | |
pull_request: | |
workflow_dispatch: | |
env: | |
bashPass: \033[32;1mPASSED - | |
bashWarn: \033[33;1mWARNING - | |
bashFail: \033[31;1mFAILED - | |
bashEnd: \033[0m | |
pwshPass: "`e[32;1mPASSED -" | |
pwshWarn: "`e[33;1mWARNING -" | |
pwshFail: "`e[31;1mFAILED -" | |
pwshEnd: "`e[0m" | |
jobs: | |
WIN32-MSVC: | |
name: WIN32 MSVC | |
runs-on: windows-latest | |
steps: | |
- env: | |
stepName: Checkout Repository | |
name: ${{ env.stepName }} | |
uses: actions/checkout@v3 | |
- env: | |
stepName: Fetch Kernel Submodule | |
name: ${{ env.stepName }} | |
shell: bash | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
set +e | |
git submodule update --checkout --init --depth 1 FreeRTOS/Source | |
exitStatus=$? | |
set -e | |
echo -e "::endgroup::" | |
if [ $exitStatus -eq 0 ]; then | |
echo -e "${{ env.bashPass }} ${{env.stepName}} ${{ env.bashEnd }}" | |
else | |
echo -e "${{ env.bashFail }} ${{env.stepName}} ${{ env.bashEnd }}" | |
exit 1 | |
fi | |
- env: | |
stepName: Add msbuild to PATH | |
name: ${{ env.stepName }} | |
uses: microsoft/[email protected] | |
- env: | |
stepName: Build WIN32-MSVC Full Demo | |
name: ${{ env.stepName }} | |
id: build-win32-msvs-full-demo | |
working-directory: FreeRTOS/Demo/WIN32-MSVC | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
$content = Get-Content -Path 'main.c' -Raw | |
$newContent = $content -replace 'int\s+main(.*?)void(.*?)\r?\n\s*{', 'int main( void ){setvbuf( stdout, NULL, _IONBF, 0 );' | |
$newContent | Set-Content -Path 'main.c' | |
msbuild WIN32.sln -t:rebuild | |
$exitStatus = $? | |
echo "::endgroup::" | |
if($exitStatus -eq 1) { | |
echo "${{ env.pwshPass }} ${{env.stepName}} ${{ env.pwshEnd }}" | |
}else { | |
echo "${{ env.pwshFail }} ${{env.stepName}} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Run and monitor WIN32-MSVC Full Demo | |
name: ${{ env.stepName }} | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS/Demo/WIN32-MSVC/Debug/RTOSDemo.exe | |
timeout-seconds: 60 | |
success-line: "No errors - tick count" | |
retry-attempts: 3 | |
- env: | |
stepName: Build WIN32-MSVC Blinky Demo | |
name: ${{ env.stepName }} | |
id: build-win32-msvs-blinky-demo | |
working-directory: FreeRTOS/Demo/WIN32-MSVC | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
$content = Get-Content -Path 'main.c' -Raw | |
$newContent = $content -replace '#define\s+mainCREATE_SIMPLE_BLINKY_DEMO_ONLY\s+0', '#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 1' | |
$newContent | Set-Content -Path 'main.c' | |
msbuild WIN32.sln -t:rebuild | |
echo "::endgroup::" | |
$exitStatus = $? | |
if($exitStatus -eq 1) { | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Run and monitor WIN32-MSVC Blinky Demo | |
name: ${{ env.stepName }} | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS/Demo/WIN32-MSVC/Debug/RTOSDemo.exe | |
timeout-seconds: 60 | |
success-line: "Message received from software timer" | |
retry-attempts: 3 | |
- env: | |
stepName: Build WIN32-MSVC-Static-Allocation-Only Demo | |
name: ${{ env.stepName }} | |
id: build-win32-msvs-static-allocation-only-demo | |
working-directory: FreeRTOS/Demo/WIN32-MSVC-Static-Allocation-Only | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
$content = Get-Content -Path 'main.c' -Raw | |
$newContent = $content -replace 'int\s+main(.*?)void(.*?)\r?\n\s*{', 'int main( void ){setvbuf( stdout, NULL, _IONBF, 0 );' | |
$newContent | Set-Content -Path 'main.c' | |
msbuild WIN32.sln -t:rebuild | |
$exitStatus = $? | |
echo "::endgroup::" | |
if($exitStatus -eq 1) { | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: | |
Run and monitor WIN32-MSVC-Static-Allocation-Only Demo | |
name: ${{ env.stepName }} | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS/Demo/WIN32-MSVC-Static-Allocation-Only/Debug/RTOSDemo.exe | |
timeout-seconds: 60 | |
success-line: "No errors - tick count" | |
retry-attempts: 3 | |
WIN32-MingW: | |
name: WIN32 MingW | |
runs-on: windows-latest | |
steps: | |
- env: | |
stepName: Checkout Repository | |
name: ${{ env.stepName }} | |
uses: actions/checkout@v3 | |
- env: | |
stepName: Fetch Kernel Submodule | |
name: ${{ env.stepName }} | |
shell: bash | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
git submodule update --checkout --init --depth 1 FreeRTOS/Source | |
echo -e "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{env.stepName}} ${{ env.bashEnd }}" | |
- env: | |
stepName: Build WIN32-MingW Full Demo | |
name: ${{ env.stepName }} | |
id: build-win32-mingw-full-demo | |
working-directory: FreeRTOS/Demo/WIN32-MingW | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
$content = Get-Content -Path 'main.c' -Raw | |
$newContent = $content -replace 'int\s+main(.*?)void(.*?)\r?\n\s*{', 'int main( void ){setvbuf( stdout, NULL, _IONBF, 0 );' | |
$newContent | Set-Content -Path 'main.c' | |
gcc --version | |
make --version | |
make | |
$exitStatus = $? | |
echo "::endgroup::" | |
if($exitStatus -eq 1) { | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{env.pwshEnd}}" | |
}else { | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{env.pwshEnd}}" | |
exit 1 | |
} | |
- env: | |
stepName: Run and monitor WIN32-MingW Full Demo | |
name: ${{ env.stepName }} | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS/Demo/WIN32-MingW/build/RTOSDemo.exe | |
timeout-seconds: 60 | |
success-line: "No errors - tick count" | |
- env: | |
stepName: Build WIN32-MingW Blinky Demo | |
name: ${{ env.stepName }} | |
id: build-win32-mingw-blinky-demo | |
working-directory: FreeRTOS/Demo/WIN32-MingW | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
$content = Get-Content -Path 'main.c' -Raw | |
$newContent = $content -replace '#define\s+mainCREATE_SIMPLE_BLINKY_DEMO_ONLY\s+0', '#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 1' | |
$newContent = $newContent -replace 'int\s+main(.*?)void(.*?)\r?\n\s*{', 'int main( void ){setvbuf( stdout, NULL, _IONBF, 0 );' | |
$newContent | Set-Content -Path 'main.c' | |
gcc --version | |
make --version | |
make | |
$exitStatus = $? | |
echo "::endgroup::" | |
if($exitStatus -eq 1) { | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Run and monitor WIN32-MingW Blinky Demo | |
name: ${{ env.stepName }} | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS/Demo/WIN32-MingW/build/RTOSDemo.exe | |
timeout-seconds: 60 | |
success-line: "Message received from software timer" | |
POSIX-GCC: | |
name: Posix GCC | |
runs-on: ubuntu-latest | |
steps: | |
- env: | |
stepName: Checkout Repository | |
name: ${{ env.stepName }} | |
uses: actions/checkout@v3 | |
- env: | |
stepName: Fetch Kernel Submodule | |
name: ${{ env.stepName }} | |
shell: bash | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
set +e | |
git submodule update --checkout --init --depth 1 FreeRTOS/Source | |
set -e | |
exitStatus=$? | |
set -e | |
echo -e "::endgroup::" | |
if [ $exitStatus -eq 0 ]; then | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
else | |
echo -e "${{ env.bashFail }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
exit 1 | |
fi | |
- env: | |
stepName: Install GCC | |
name: ${{ env.stepName }} | |
shell: bash | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
set +e | |
sudo apt-get -y update | |
sudo apt-get -y install build-essential | |
exitStatus=$? | |
set -e | |
echo -e "::endgroup::" | |
if [ $exitStatus -eq 0 ]; then | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
else | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
exit 1 | |
fi | |
- env: | |
stepName: Build Posix_GCC Full Demo | |
name: ${{ env.stepName }} | |
id: build-posix-gcc-full-demo | |
shell: bash | |
working-directory: FreeRTOS/Demo/Posix_GCC | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
set +e | |
sed -i -z "s/int[[:space:]]*main[[:space:]]*([[:space:]]*void[[:space:]]*)\n{/int main( void ){setvbuf( stdout, NULL, _IONBF, 0 );/g" main.c | |
make -j | |
exitStatus=$? | |
set -e | |
echo -e "::endgroup::" | |
if [ $exitStatus -eq 0 ]; then | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
else | |
echo -e "${{ env.bashFail }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
exit 1 | |
fi | |
- env: | |
stepName: Run and monitor Posix_GCC Full Demo | |
name: ${{ env.stepName }} | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS/Demo/Posix_GCC/build/posix_demo | |
timeout-seconds: 60 | |
success-line: "OK: No errors" | |
retry-attempts: 3 | |
- env: | |
stepName: Build Posix_GCC Blinky Demo | |
name: ${{ env.stepName }} | |
id: build-posix-gcc-blinky-demo | |
shell: bash | |
working-directory: FreeRTOS/Demo/Posix_GCC | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
rm -rf build | |
set +e | |
make -j USER_DEMO=BLINKY_DEMO | |
exitStatus=$? | |
set -e | |
echo -e "::endgroup::" | |
if [ $exitStatus -eq 0 ]; then | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
else | |
echo -e "${{ env.bashFail }} ${{env.stepName}} ${{ env.bashEnd }}" | |
exit 1 | |
fi | |
- env: | |
stepName: Run and monitor Posix_GCC Blinky Demo | |
name: ${{ env.stepName }} | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS/Demo/Posix_GCC/build/posix_demo | |
timeout-seconds: 60 | |
success-line: "Message received from software timer" | |
MSP430-GCC: | |
name: GNU MSP430 Toolchain | |
runs-on: ubuntu-latest | |
steps: | |
- env: | |
stepName: Checkout Repository | |
name: ${{ env.stepName }} | |
uses: actions/checkout@v3 | |
with: | |
submodules: true | |
- env: | |
stepName: Fetch Kernel Submodule | |
name: ${{ env.stepName }} | |
shell: bash | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
set +e | |
git submodule update --checkout --init --depth 1 FreeRTOS/Source | |
exitStatus=$? | |
set -e | |
echo -e "::endgroup::" | |
if [ $exitStatus -eq 0 ]; then | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
else | |
echo -e "${{ env.bashFail }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
exit 1 | |
fi | |
- env: | |
stepName: Install MSP430 Toolchain | |
name: ${{ env.stepName }} | |
shell: bash | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
set +e | |
sudo apt-get -y update | |
sudo apt-get -y install gcc-msp430 build-essential | |
exitStatus=$? | |
set -e | |
echo -e "::endgroup::" | |
if [ $exitStatus -eq 0 ]; then | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
else | |
echo -e "${{ env.bashFail }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
exit 1 | |
fi | |
- env: | |
stepName: Build msp430_GCC Demo | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: FreeRTOS/Demo/msp430_GCC | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
set +e | |
make -j | |
exitStatus=$? | |
set -e | |
echo -e "::endgroup::" | |
if [ $exitStatus -eq 0 ]; then | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
else | |
echo -e "${{ env.bashFail }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
exit 1 | |
fi | |
ARM-GCC: | |
name: GNU ARM Toolchain | |
runs-on: ubuntu-latest | |
steps: | |
- env: | |
stepName: Checkout Repository | |
name: ${{ env.stepName }} | |
uses: actions/checkout@v3 | |
- env: | |
stepName: Fetch Kernel Submodule | |
name: ${{ env.stepName }} | |
shell: bash | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
set +e | |
git submodule update --checkout --init --depth 1 FreeRTOS/Source FreeRTOS/Demo/ThirdParty/Community-Supported-Demos | |
exitStatus=$? | |
set -e | |
echo -e "::endgroup::" | |
if [ $exitStatus -eq 0 ]; then | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
else | |
echo -e "${{ env.bashFail }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
exit 1 | |
fi | |
- env: | |
stepName: Install GNU ARM Toolchain | |
name: Install GNU ARM Toolchain | |
shell: bash | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
set +e | |
sudo apt-get -y update | |
sudo apt-get -y install gcc-arm-none-eabi build-essential cmake git ninja-build python3-minimal | |
sudo apt-get -y install qemu-system-arm qemu-efi | |
exitStatus=$? | |
set -e | |
echo -e "::endgroup::" | |
if [ $exitStatus -eq 0 ]; then | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
else | |
echo -e "${{ env.bashFail }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
exit 1 | |
fi | |
- env: | |
stepName: Build CORTEX_MPU_M3_MPS2_QEMU_GCC Demo | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: FreeRTOS/Demo/CORTEX_MPU_M3_MPS2_QEMU_GCC | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
set +e | |
make -j | |
exitStatus=$? | |
set -e | |
echo -e "::endgroup::" | |
if [ $exitStatus -eq 0 ]; then | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
else | |
echo -e "${{ env.bashFail }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
exit 1 | |
fi | |
- env: | |
stepName: Build CORTEX_LM3S102_GCC Demo | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: FreeRTOS/Demo/CORTEX_LM3S102_GCC | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
set +e | |
make clean | |
make -j | |
exitStatus=$? | |
set -e | |
echo -e "::endgroup::" | |
if [ $exitStatus -eq 0 ]; then | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
else | |
echo -e "${{ env.bashFail }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
exit 1 | |
fi | |
- env: | |
stepName: Build CORTEX_LM3S811_GCC Demo | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: FreeRTOS/Demo/CORTEX_LM3S811_GCC | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
set +e | |
make -j | |
exitStatus=$? | |
set -e | |
echo -e "::endgroup::" | |
if [ $exitStatus -eq 0 ]; then | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
else | |
echo -e "${{ env.bashFail }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
exit 1 | |
fi | |
- env: | |
stepName: Build CORTEX_M0+_RP2040 Demos | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: FreeRTOS/Demo/ThirdParty/Community-Supported-Demos/CORTEX_M0+_RP2040 | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
set +e | |
git clone https://github.com/raspberrypi/pico-sdk.git | |
cmake -B build -DPICO_SDK_PATH=pico-sdk -GNinja | |
ninja -C build --verbose | |
exitStatus=$? | |
set -e | |
echo -e "::endgroup::" | |
if [ $exitStatus -eq 0 ]; then | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
else | |
echo -e "${{ env.bashFail }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
exit 1 | |
fi | |
- env: | |
stepName: Build Qemu Runner File | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: .github/scripts | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
gcc qemu_reader.c -o ../../FreeRTOS/Demo/CORTEX_MPS2_QEMU_IAR_GCC/qemu_reader.out | |
exitStatus=$? | |
echo -e "::endgroup::" | |
if [ $exitStatus -eq 0 ]; then | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
else | |
echo -e "${{ env.bashFail }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
exit 1 | |
fi | |
- env: | |
stepName: Build CORTEX_MPS2_QEMU_IAR_GCC Demo | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: FreeRTOS/Demo/CORTEX_MPS2_QEMU_IAR_GCC | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
set +e | |
make -C build/gcc -j | |
exitStatus=$? | |
set -e | |
echo -e "::endgroup::" | |
if [ $exitStatus -eq 0 ]; then | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
else | |
echo -e "${{ env.bashFail }} ${{ env.stepName }} ${{ env.bashEnd }}" | |
exit 1 | |
fi | |
- env: | |
stepName: Run and monitor CORTEX_MPS2_QEMU_IAR_GCC Demo | |
name: ${{ env.stepName }} | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS/Demo/CORTEX_MPS2_QEMU_IAR_GCC/qemu_reader.out | |
timeout-seconds: 20 | |
success-line: "Message received from software timer" | |
retry-attempts: 1 |