Merge branch 'main' into smp-dev-add-smp-unit-test #87
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: | |
jobs: | |
WIN32-MSVC: | |
name: WIN32 MSVC | |
runs-on: windows-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v2 | |
- name: Fetch Kernel Submodule | |
shell: bash | |
run: | | |
# Fetch Kernel Submodule | |
echo "::group::Fetch Kernel Submodule" | |
git submodule update --checkout --init --depth 1 FreeRTOS/Source | |
echo "::endgroup::" | |
if [[ "$?" = "0" ]] | |
then | |
echo -e "\033[32;3mCloned the Kernel\033[0m" | |
else | |
echo -e "\033[32;31mKernel Clone Failed...\033[0m" | |
exit 1 | |
fi | |
- name: Add msbuild to PATH | |
uses: microsoft/[email protected] | |
- name: Build WIN32-MSVC Full Demo | |
id: build-win32-msvs-full-demo | |
working-directory: FreeRTOS/Demo/WIN32-MSVC | |
run: | | |
# Build WIN32-MSVC Full Demo | |
echo "::group::Build WIN32-MSVC Full Demo" | |
$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 | |
echo "::endgroup::" | |
if($? -eq 1) { | |
Write-Host -ForegroundColor green "Built the WIN32-MSVC Full Demo" | |
}else { | |
Write-Host -ForegroundColor red "Build WIN32-MSVC Full Demo Failed..." | |
exit 1 | |
} | |
- name: Run and monitor WIN32-MSVC Full Demo | |
if: success() || failure() && steps.build-win32-msvs-full-demo.outcome == 'success' | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS/Demo/WIN32-MSVC/Debug/RTOSDemo.exe | |
log-dir: demo_run_logs | |
timeout-seconds: 60 | |
success-line: "No errors - tick count" | |
- name: Build WIN32-MSVC Blinky Demo | |
id: build-win32-msvs-blinky-demo | |
working-directory: FreeRTOS/Demo/WIN32-MSVC | |
run: | | |
# Build WIN32-MSVC Blinky Demo | |
echo "::group::MSBuild of WIN32-MSVC Blinky Demo" | |
$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' | |
# Perform MSBuild of WIN32-MSVC Blinky Demo | |
msbuild WIN32.sln -t:rebuild | |
echo "::endgroup::" | |
if($? -eq 1) { | |
Write-Host -ForegroundColor green "Built the WIN32-MSVC Blinky Demo" | |
}else { | |
Write-Host -ForegroundColor red "Build WIN32-MSVC Blinky Demo Failed..." | |
exit 1 | |
} | |
- name: Run and monitor WIN32-MSVC Blinky Demo | |
if: success() || failure() && steps.build-win32-msvs-blinky-demo.outcome == 'success' | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS/Demo/WIN32-MSVC/Debug/RTOSDemo.exe | |
log-dir: demo_run_logs | |
timeout-seconds: 60 | |
success-line: "Message received from software timer" | |
- name: Build WIN32-MSVC-Static-Allocation-Only Demo | |
id: build-win32-msvs-static-allocation-only-demo | |
working-directory: FreeRTOS/Demo/WIN32-MSVC-Static-Allocation-Only | |
run: | | |
# Build WIN32-MSVC-Static-Allocation-Only Demo | |
echo "::group::Build WIN32-MSVC-Static-Allocation-Only Demo" | |
$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 | |
echo "::endgroup::" | |
if($? -eq 1) { | |
Write-Host -ForegroundColor green "Built the WIN32-MSVC-Static-Allocation-Only Demo" | |
}else { | |
Write-Host -ForegroundColor red "Build WIN32-MSVC-Static-Allocation-Only Demo Failed..." | |
exit 1 | |
} | |
- name: Run and monitor WIN32-MSVC-Static-Allocation-Only Demo | |
if: success() || failure() && steps.build-win32-msvs-static-allocation-only-demo.outcome == 'success' | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS/Demo/WIN32-MSVC-Static-Allocation-Only/Debug/RTOSDemo.exe | |
log-dir: demo_run_logs | |
timeout-seconds: 60 | |
success-line: "No errors - tick count" | |
WIN32-MingW: | |
name: WIN32 MingW | |
runs-on: windows-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v2 | |
- name: Fetch Kernel Submodule | |
shell: bash | |
run: | | |
# Fetch Kernel Submodule | |
echo "::group::Fetch Kernel Submodule" | |
git submodule update --checkout --init --depth 1 FreeRTOS/Source | |
echo "::endgroup::" | |
if [[ "$?" = "0" ]] | |
then | |
echo -e "\033[32;3mCloned the Kernel\033[0m" | |
else | |
echo -e "\033[32;31mKernel Clone Failed...\033[0m" | |
exit 1 | |
fi | |
- name: Build WIN32-MingW Full Demo | |
id: build-win32-mingw-full-demo | |
working-directory: FreeRTOS/Demo/WIN32-MingW | |
run: | | |
# Build WIN32-MingW Full Demo | |
echo "::group::Build WIN32-MingW Full Demo" | |
$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 | |
echo "::endgroup::" | |
if($? -eq 1) { | |
Write-Host -ForegroundColor green "Built the WIN32-MingW Full Demo" | |
}else { | |
Write-Host -ForegroundColor red "Build WIN32-MingW Full Demo Failed..." | |
exit 1 | |
} | |
- name: Run and monitor WIN32-MingW Full Demo | |
if: success() || failure() && steps.build-win32-mingw-full-demo.outcome == 'success' | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS/Demo/WIN32-MingW/build/RTOSDemo.exe | |
log-dir: demo_run_logs | |
timeout-seconds: 60 | |
success-line: "No errors - tick count" | |
- name: Build WIN32-MingW Blinky Demo | |
id: build-win32-mingw-blinky-demo | |
working-directory: FreeRTOS/Demo/WIN32-MingW | |
run: | | |
# Build WIN32-MingW Blinky Demo | |
echo "::group::Build WIN32-MingW Blinky Demo" | |
$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' | |
gcc --version | |
make --version | |
make | |
echo "::endgroup::" | |
if($? -eq 1) { | |
Write-Host -ForegroundColor green "Built the WIN32-MingW Blinky Demo" | |
}else { | |
Write-Host -ForegroundColor red "Build WIN32-MingW Blinky Demo Failed..." | |
exit 1 | |
} | |
- name: Run and monitor WIN32-MingW Blinky Demo | |
if: success() || failure() && steps.build-win32-mingw-blinky-demo.outcome == 'success' | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS/Demo/WIN32-MingW/build/RTOSDemo.exe | |
log-dir: demo_run_logs | |
timeout-seconds: 60 | |
success-line: "Message received from software timer" | |
POSIX-GCC: | |
name: Posix GCC | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v2 | |
- name: Fetch Kernel Submodule | |
shell: bash | |
run: | | |
# Fetch Kernel Submodule | |
echo "::group::Fetch Kernel Submodule" | |
git submodule update --checkout --init --depth 1 FreeRTOS/Source | |
echo "::endgroup::" | |
if [ "$?" = "0" ]; then | |
echo -e "\033[32;3mCloned the Kernel\033[0m" | |
else | |
echo -e "\033[32;31mKernel Clone Failed...\033[0m" | |
exit 1 | |
fi | |
- name: Install GCC | |
shell: bash | |
run: | | |
# Install GCC | |
echo "::group::Install GCC" | |
sudo apt-get -y update | |
sudo apt-get -y install build-essential | |
echo "::endgroup::" | |
if [ "$?" = "0" ]; then | |
echo -e "\e[0;32mInstall GCC Passed\e[0m" | |
else | |
echo -e "\e[0;32mInstall GCC Failed\e[0m" | |
# If there is an error, set this flag high again so the exit 1 fails the run | |
set -e | |
exit 1 | |
fi | |
- name: Build Posix_GCC Demo for Coverage Test | |
shell: bash | |
working-directory: FreeRTOS/Demo/Posix_GCC | |
run: make -j COVERAGE_TEST=1 | |
- name: Build Posix_GCC Full Demo | |
id: build-posix-gcc-full-demo | |
shell: bash | |
working-directory: FreeRTOS/Demo/Posix_GCC | |
run: | | |
# Build Posix_GCC Full Demo | |
echo "::group::Build Posix_GCC Full Demo" | |
sed -i -z "s/int[[:space:]]*main[[:space:]]*([[:space:]]*void[[:space:]]*)\n{/int main( void ){setvbuf( stdout, NULL, _IONBF, 0 );/g" main.c | |
make clean | |
make -j | |
echo "::endgroup::" | |
if [ "$?" = "0" ]; then | |
echo -e "\033[32;3mBuild Posix_GCC Full Demo Passed\033[0m" | |
else | |
echo -e "\033[32;31mBuild Posix_GCC Full Demo Failed...\033[0m" | |
exit 1 | |
fi | |
- name: Run and monitor Posix_GCC Full Demo | |
if: success() || failure() && steps.build-posix-gcc-full-demo.outcome == 'success' | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS/Demo/Posix_GCC/build/posix_demo | |
log-dir: demo_run_logs | |
timeout-seconds: 60 | |
success-line: "OK: No errors" | |
- name: Build Posix_GCC Blinky Demo | |
id: build-posix-gcc-blinky-demo | |
if: success() || failure() | |
shell: bash | |
working-directory: FreeRTOS/Demo/Posix_GCC | |
run: | | |
# Build Posix_GCC Blinky Demo | |
echo "::group::Build Posix_GCC Blinky Demo" | |
rm -rf build | |
make -j USER_DEMO=BLINKY_DEMO | |
echo "::endgroup::" | |
if [ "$?" = "0" ]; then | |
echo -e "\033[32;3mBuilt the Posix_GCC Blinky Demo\033[0m" | |
else | |
echo -e "\033[32;31mBuild Posix_GCC Blinky Demo Failed...\033[0m" | |
exit 1 | |
fi | |
- name: Run and monitor Posix_GCC Blinky Demo | |
if: success() || failure() && steps.build-posix-gcc-blinky-demo.outcome == 'success' | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS/Demo/Posix_GCC/build/posix_demo | |
log-dir: demo_run_logs | |
timeout-seconds: 60 | |
success-line: "Message received from software timer" | |
MSP430-GCC: | |
name: GNU MSP430 Toolchain | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v2 | |
- name: Fetch Kernel Submodule | |
shell: bash | |
run: | | |
# Fetch Kernel Submodule | |
echo "::group::Fetch Kernel Submodule" | |
git submodule update --checkout --init --depth 1 FreeRTOS/Source | |
echo "::endgroup::" | |
if [ "$?" = "0" ]; then | |
echo -e "\033[32;3mCloned the Kernel\033[0m" | |
else | |
echo -e "\033[32;31mKernel Clone Failed...\033[0m" | |
exit 1 | |
fi | |
- name: Install MSP430 Toolchain | |
shell: bash | |
run: | | |
# Install MSP430 Toolchain | |
echo "::group::Install MSP430 Toolchain" | |
sudo apt-get -y update | |
sudo apt-get -y install gcc-msp430 build-essential | |
echo "::endgroup::" | |
if [ "$?" = "0" ]; then | |
echo -e "\033[32;3mInstalled the MSP430 Toolchain\033[0m" | |
else | |
echo -e "\033[32;31mInstalling the MSP430 ToolchainFailed...\033[0m" | |
exit 1 | |
fi | |
- name: Build msp430_GCC Demo | |
shell: bash | |
working-directory: FreeRTOS/Demo/msp430_GCC | |
run: | | |
# Build msp430_GCC Demo | |
echo "::group::Build msp430_GCC Demo" | |
make -j | |
echo "::endgroup::" | |
if [ "$?" = "0" ]; then | |
echo -e "\033[32;3mBuilt the msp430_GCC Demo\033[0m" | |
else | |
echo -e "\033[32;31mBuilding the msp430_GCC Demo Failed...\033[0m" | |
exit 1 | |
fi | |
ARM-GCC: | |
name: GNU ARM Toolchain | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v2 | |
- name: Fetch Kernel Submodule | |
shell: bash | |
run: | | |
# Fetch Kernel Submodule | |
echo "::group::Fetch Kernel Submodule" | |
git submodule update --checkout --init --depth 1 FreeRTOS/Source | |
echo "::endgroup::" | |
if [ "$?" = "0" ]; then | |
echo -e "\033[32;3mCloned the Kernel\033[0m" | |
else | |
echo -e "\033[32;31mKernel Clone Failed...\033[0m" | |
exit 1 | |
fi | |
- name: Fetch Community-Supported-Demos Submodule | |
shell: bash | |
run: | | |
# Fetch Community-Supported-Demos Submodule | |
echo "::group::Fetch Community-Supported-Demos Submodule" | |
git submodule update --checkout --init --depth 1 FreeRTOS/Demo/ThirdParty/Community-Supported-Demos | |
echo "::engdroup::" | |
if [ "$?" = "0" ]; then | |
echo -e "\033[32;3mCloned the Community-Supported-Demos\033[0m" | |
else | |
echo -e "\033[32;31mCommunity-Supported-Demos Clone Failed...\033[0m" | |
exit 1 | |
fi | |
- name: Install GNU ARM Toolchain | |
shell: bash | |
run: | | |
# Install GNU ARM Toolchain | |
echo "::group::Install GNU ARM Toolchain" | |
sudo apt-get -y update | |
sudo apt-get -y install gcc-arm-none-eabi build-essential cmake git ninja-build python3-minimal | |
echo "::endgroup::" | |
if [ "$?" = "0" ]; then | |
echo -e "\033[32;3mInstalled the GNU ARM Toolchain\033[0m" | |
else | |
echo -e "\033[32;31mInstalling GNU ARM Toolchain Failed...\033[0m" | |
exit 1 | |
fi | |
- name: Build CORTEX_MPU_M3_MPS2_QEMU_GCC Demo | |
shell: bash | |
working-directory: FreeRTOS/Demo/CORTEX_MPU_M3_MPS2_QEMU_GCC | |
run: | | |
# Build CORTEX_MPU_M3_MPS2_QEMU_GCC Demo | |
echo "::group::Build CORTEX_MPU_M3_MPS2_QEMU_GCC Demo" | |
make -j | |
echo "::endgroup::" | |
if [ "$?" = "0" ]; then | |
echo -e "\033[32;3mBuild CORTEX_MPU_M3_MPS2_QEMU_GCC Demo\033[0m" | |
else | |
echo -e "\033[32;31mBuild CORTEX_MPU_M3_MPS2_QEMU_GCC Demo Failed...\033[0m" | |
exit 1 | |
fi | |
- name: Build CORTEX_LM3S102_GCC Demo | |
shell: bash | |
working-directory: FreeRTOS/Demo/CORTEX_LM3S102_GCC | |
run: | | |
# Build CORTEX_LM3S102_GCC Demo | |
echo "::group::Build CORTEX_LM3S102_GCC Demo" | |
make -j | |
echo "::endgroup::" | |
if [ "$?" = "0" ]; then | |
echo -e "\033[32;3mBuilt the CORTEX_LM3S102_GCC Demo Kernel\033[0m" | |
else | |
echo -e "\033[32;31mBuild CORTEX_LM3S102_GCC Demo Failed...\033[0m" | |
exit 1 | |
fi | |
- name: Build CORTEX_M3_MPS2_QEMU_GCC Demo | |
shell: bash | |
working-directory: FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC | |
run: | | |
# Build CORTEX_M3_MPS2_QEMU_GCC Demo | |
echo "::group::Build CORTEX_M3_MPS2_QEMU_GCC Demo" | |
make clean | |
make -j | |
echo "::endgroup::" | |
if [ "$?" = "0" ]; then | |
echo -e "\033[32;3mBuilt the CORTEX_M3_MPS2_QEMU_GCC Demo\033[0m" | |
else | |
echo -e "\033[32;31mBuild CORTEX_M3_MPS2_QEMU_GCC Demo Failed...\033[0m" | |
exit 1 | |
fi | |
- name: Build CORTEX_M3_MPS2_QEMU_GCC Full Demo | |
shell: bash | |
working-directory: FreeRTOS/Demo/CORTEX_M3_MPS2_QEMU_GCC | |
run: | | |
# Build CORTEX_M3_MPS2_QEMU_GCC Full Demo | |
echo "::group::Build CORTEX_M3_MPS2_QEMU_GCC Full Demo" | |
make clean | |
make FULL_DEMO=1 -j | |
echo "::endgroup::" | |
if [ "$?" = "0" ]; then | |
echo -e "\033[32;3mBuilt the CORTEX_M3_MPS2_QEMU_GCC Full Demo\033[0m" | |
else | |
echo -e "\033[32;31mBuild CORTEX_M3_MPS2_QEMU_GCC Full Demo Failed...\033[0m" | |
exit 1 | |
fi | |
- name: Build CORTEX_LM3S811_GCC Demo | |
shell: bash | |
working-directory: FreeRTOS/Demo/CORTEX_LM3S811_GCC | |
run: | | |
# Build CORTEX_LM3S811_GCC Demo | |
echo "::group::Build CORTEX_LM3S811_GCC Demo" | |
make -j | |
echo "::endgroup::" | |
if [ "$?" = "0" ]; then | |
echo -e "\033[32;3mBuilt the CORTEX_LM3S811_GCC Demo\033[0m" | |
else | |
echo -e "\033[32;31mBuild CORTEX_LM3S811_GCC Demo Failed...\033[0m" | |
exit 1 | |
fi | |
- name: Build CORTEX_M0+_RP2040 Demos | |
shell: bash | |
working-directory: FreeRTOS/Demo/ThirdParty/Community-Supported-Demos/CORTEX_M0+_RP2040 | |
run: | | |
# Build CORTEX_M0+_RP2040 Demos | |
echo "::group::Build CORTEX_M0+_RP2040 Demos" | |
git clone https://github.com/raspberrypi/pico-sdk.git | |
cmake -B build -DPICO_SDK_PATH=pico-sdk -GNinja | |
ninja -C build --verbose | |
echo "::endgroup::" | |
if [ "$?" = "0" ]; then | |
echo -e "\033[32;3mBuilt CORTEX_M0+_RP2040 Demos\033[0m" | |
else | |
echo -e "\033[32;31mBuild CORTEX_M0+_RP2040 Demos Failed...\033[0m" | |
exit 1 | |
fi | |
- name: Build CORTEX_MPS2_QEMU_IAR_GCC Demo | |
shell: bash | |
working-directory: FreeRTOS/Demo/CORTEX_MPS2_QEMU_IAR_GCC | |
run: | | |
# Build CORTEX_MPS2_QEMU_IAR_GCC Demo | |
echo "::group::Build CORTEX_MPS2_QEMU_IAR_GCC Demo" | |
make -C build/gcc -j | |
echo "::endgroup::" | |
if [ "$?" = "0" ]; then | |
echo -e "\033[32;3mBuilt the CORTEX_MPS2_QEMU_IAR_GCC Demo\033[0m" | |
else | |
echo -e "\033[32;31mBuild CORTEX_MPS2_QEMU_IAR_GCC Demo Failed...\033[0m" | |
exit 1 | |
fi |