Merge branch 'main' into add-async-core-yield-test #500
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: Build FreeRTOS+ Demos | |
on: | |
workflow_dispatch: | |
push: | |
branches: ["**"] | |
pull_request: | |
branches: [main] | |
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: | |
winsim_cellular: | |
name: Windows Simulator Cellular Demos | |
runs-on: windows-2019 | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- env: | |
stepName: Fetch Submodules | |
name: ${{ env.stepName}} | |
shell: bash | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
git submodule update --checkout --init --depth 1 \ | |
FreeRTOS/Source \ | |
FreeRTOS-Plus/Source/FreeRTOS-Cellular-Interface \ | |
FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/bg96 \ | |
FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/hl7802 \ | |
FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/sara-r4 \ | |
FreeRTOS-Plus/Source/Application-Protocols/coreMQTT \ | |
FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP \ | |
FreeRTOS-Plus/Source/Utilities/backoff_algorithm \ | |
FreeRTOS-Plus/Source/coreJSON \ | |
FreeRTOS-Plus/Source/corePKCS11 \ | |
FreeRTOS-Plus/ThirdParty/mbedtls \ | |
FreeRTOS-Plus/ThirdParty/tinycbor | |
git -C FreeRTOS-Plus/Source/corePKCS11 submodule update --checkout --init --depth 1 source/dependency/3rdparty/pkcs11 | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- name: Add msbuild to PATH | |
uses: microsoft/[email protected] | |
- env: | |
stepName: Configure FreeRTOS+Cellular Demos | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
echo '#define CELLULAR_COMM_INTERFACE_PORT ""' | tee -a */cellular_config.h | |
echo '#define CELLULAR_APN ""' | tee -a */cellular_config.h | |
echo '#ifndef DEMO_CONFIG_H_TEST_BUILD' | tee -a */demo_config.h | |
echo ' #define DEMO_CONFIG_H_TEST_BUILD' | tee -a */demo_config.h | |
echo ' #define democonfigMQTT_BROKER_ENDPOINT ""' | tee -a */demo_config.h | |
echo ' #define democonfigMQTT_BROKER_PORT ( 8883 )' | tee -a */demo_config.h | |
echo ' #define democonfigROOT_CA_PEM ""' | tee -a */demo_config.h | |
echo ' #define democonfigCLIENT_CERTIFICATE_PEM ""' | tee -a */demo_config.h | |
echo ' #define democonfigCLIENT_PRIVATE_KEY_PEM ""' | tee -a */demo_config.h | |
echo ' #define democonfigUSE_AWS_IOT_CORE_BROKER ( 1 )' | tee -a */demo_config.h | |
echo '#endif /* DEMO_CONFIG_H_TEST_BUILD */' | tee -a */demo_config.h | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- env: | |
stepName: Build Cellular MQTT Demo for BG96 | |
name: ${{ env.stepName }} | |
working-directory: FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_BG96 | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild mqtt_mutual_auth_demo_with_bg96.sln -t:rebuild -property:Configuration=Debug | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Build Cellular MQTT Demo for HL7802 | |
name: ${{ env.stepName }} | |
working-directory: FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_HL7802 | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild mqtt_mutual_auth_demo_with_hl7802.sln -t:rebuild -property:Configuration=Debug | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Build Cellular MQTT Demo for SARA-R4 | |
name: ${{ env.stepName }} | |
working-directory: FreeRTOS-Plus/Demo/FreeRTOS_Cellular_Interface_Windows_Simulator/MQTT_Mutual_Auth_Demo_with_SARA_R4 | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild mqtt_mutual_auth_demo_with_sara_r4.sln -t:rebuild -property:Configuration=Debug | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
winsim_coreHTTP: | |
name: coreHTTP WinSim Demos | |
runs-on: windows-2019 | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- env: | |
stepName: Fetch Submodules | |
name: ${{ env.stepName }} | |
shell: bash | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
git submodule update --checkout --init --depth 1 \ | |
FreeRTOS/Source \ | |
FreeRTOS-Plus/Source/AWS/sigv4 \ | |
FreeRTOS-Plus/Source/Application-Protocols/coreHTTP \ | |
FreeRTOS-Plus/Source/Application-Protocols/coreMQTT \ | |
FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP \ | |
FreeRTOS-Plus/Source/Utilities/backoff_algorithm \ | |
FreeRTOS-Plus/Source/coreJSON \ | |
FreeRTOS-Plus/ThirdParty/mbedtls \ | |
FreeRTOS-Plus/ThirdParty/glib \ | |
FreeRTOS-Plus/ThirdParty/libslirp | |
git -C FreeRTOS-Plus/Source/Application-Protocols/coreHTTP submodule update --checkout --init --depth 1 source/dependency/3rdparty/llhttp | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- name: Add msbuild to PATH | |
uses: microsoft/[email protected] | |
- env: | |
stepName: Configure coreHTTP Demos | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
echo '#ifndef DEMO_CONFIG_H_TEST_BUILD' | tee -a */demo_config.h | |
echo ' #define DEMO_CONFIG_H_TEST_BUILD' | tee -a */demo_config.h | |
echo ' #define democonfigSERVER_HOSTNAME ""' | tee -a */demo_config.h | |
echo ' #define democonfigAWS_IOT_ENDPOINT ""' | tee -a */demo_config.h | |
echo ' #define democonfigROOT_CA_PEM ""' | tee -a */demo_config.h | |
echo ' #define democonfigCLIENT_CERTIFICATE_PEM ""' | tee -a */demo_config.h | |
echo ' #define democonfigCLIENT_PRIVATE_KEY_PEM ""' | tee -a */demo_config.h | |
echo ' #define democonfigIOT_CRED_PROVIDER_ROOT_CA_PEM ""' | tee -a */demo_config.h | |
echo ' #define democonfigIOT_CREDENTIAL_PROVIDER_ENDPOINT ""' | tee -a */demo_config.h | |
echo ' #define democonfigIOT_CREDENTIAL_PROVIDER_ROLE ""' | tee -a */demo_config.h | |
echo ' #define democonfigIOT_THING_NAME ""' | tee -a */demo_config.h | |
echo ' #define democonfigS3_PRESIGNED_GET_URL "ABCDEF"' | tee -a */demo_config.h | |
echo ' #define democonfigS3_PRESIGNED_PUT_URL "ABCDEF"' | tee -a */demo_config.h | |
echo ' #define democonfigS3_ROOT_CA_PEM ""' | tee -a */demo_config.h | |
echo ' #define democonfigS3_BUCKET_NAME ""' | tee -a */demo_config.h | |
echo ' #define democonfigS3_BUCKET_REGION ""' | tee -a */demo_config.h | |
echo ' #define democonfigS3_OBJECT_NAME ""' | tee -a */demo_config.h | |
echo '#endif /* DEMO_CONFIG_H_TEST_BUILD */' | tee -a */demo_config.h | |
exitStatus=$? | |
set -e | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- env: | |
stepName: Build HTTP Plain Text Demo | |
name: ${{ env.stepName }} | |
id: build-http-plain-text-demo | |
working-directory: FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Plaintext | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild http_plain_text_demo.sln -t:rebuild -property:Configuration=Debug -m | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Build HTTP Mutual Auth Demo | |
name: ${{ env.stepName }} | |
id: build-http-mutual-auth-demo | |
working-directory: FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_Mutual_Auth | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild http_mutual_auth_demo.sln -t:rebuild -property:Configuration=Debug -m | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Build HTTP S3 Upload Demo | |
name: ${{ env.stepName }} | |
id: build-http-s3-upload-demo | |
working-directory: FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Upload | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild http_s3_upload_demo.sln -t:rebuild -property:Configuration=Debug -m | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Build HTTP S3 Download Multithreaded Demo | |
name: ${{ env.stepName }} | |
id: build-http-s3-download-multithreaded-demo | |
working-directory: FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download_Multithreaded | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild http_s3_download_multithreaded_demo.sln -t:rebuild -property:Configuration=Debug -m | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Build HTTP S3 Download Demo | |
name: ${{ env.stepName }} | |
id: build-http-s3-download-demo | |
working-directory: FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator/HTTP_S3_Download | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild http_s3_download_demo.sln -t:rebuild -property:Configuration=Debug -m | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
winsim_corePKCS11: | |
name: corePKCS11 WinSim Demos | |
runs-on: windows-2019 | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- env: | |
stepName: Fetch Submodules | |
name: ${{ env.stepName }} | |
shell: bash | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
git submodule update --checkout --init --depth 1 \ | |
FreeRTOS/Source \ | |
FreeRTOS-Plus/Source/AWS/fleet-provisioning \ | |
FreeRTOS-Plus/Source/Application-Protocols/coreMQTT \ | |
FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP \ | |
FreeRTOS-Plus/Source/Utilities/backoff_algorithm \ | |
FreeRTOS-Plus/Source/coreJSON \ | |
FreeRTOS-Plus/Source/corePKCS11 \ | |
FreeRTOS-Plus/ThirdParty/mbedtls \ | |
FreeRTOS-Plus/ThirdParty/glib \ | |
FreeRTOS-Plus/ThirdParty/libslirp | |
git -C FreeRTOS-Plus/Source/corePKCS11 submodule update --checkout --init --depth 1 source/dependency/3rdparty/pkcs11 | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- name: Add msbuild to PATH | |
uses: microsoft/[email protected] | |
- env: | |
stepName: Install Glib | |
name: ${{ env.stepName }} | |
working-directory: FreeRTOS-Plus\ThirdParty\glib | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
Push-Location | |
Get-Location | |
& "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\Launch-VsDevShell.ps1" | |
Get-Location | |
Pop-Location | |
pip install meson | |
meson setup build --backend=vs2019 -Dselinux=disabled -Dxattr=false -Dbsymbolic_functions=false -Dtests=false -Dglib_debug=disabled -Dglib_assert=false --buildtype=release | |
meson compile -C build | |
echo "::endgroup::" | |
if(Test-Path -Path build\glib\glib-2.0.lib) { | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 0 | |
}else { | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Build corePKCS11 Demo | |
name: ${{ env.stepName }} | |
id: build-corePKCS11-demo | |
working-directory: FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild CorePKCS11_Demos.sln -t:rebuild -property:Configuration=Debug_with_Libslirp -property:Platform=Win32 -m | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Run and monitor corePKCS11 Demo | |
name: ${{ env.stepName }} | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS-Plus/Demo/corePKCS11_Windows_Simulator/Debug_with_Libslirp/CorePKCS11_Demos.exe | |
log-dir: demo_run_logs | |
timeout-seconds: 30 | |
success-line: "Finished DEMO" | |
success-exit-code: 0 | |
retry-attempts: 3 | |
winsim_corelibs: | |
name: core Library Windows Simulator Demos | |
runs-on: windows-2019 | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- env: | |
stepName: Fetch Submodules | |
name: ${{ env.stepName }} | |
shell: bash | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
git submodule update --checkout --init --depth 1 \ | |
FreeRTOS/Source \ | |
FreeRTOS-Plus/Source/AWS/device-defender \ | |
FreeRTOS-Plus/Source/AWS/device-shadow \ | |
FreeRTOS-Plus/Source/AWS/fleet-provisioning \ | |
FreeRTOS-Plus/Source/AWS/jobs \ | |
FreeRTOS-Plus/Source/AWS/ota \ | |
FreeRTOS-Plus/Source/AWS/sigv4 \ | |
FreeRTOS-Plus/Source/FreeRTOS-Cellular-Interface \ | |
FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/bg96 \ | |
FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/hl7802 \ | |
FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/sara-r4 \ | |
FreeRTOS-Plus/Source/Application-Protocols/coreHTTP \ | |
FreeRTOS-Plus/Source/Application-Protocols/coreMQTT \ | |
FreeRTOS-Plus/Source/Application-Protocols/coreMQTT-Agent \ | |
FreeRTOS-Plus/Source/Application-Protocols/coreSNTP \ | |
FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP \ | |
FreeRTOS-Plus/Source/Utilities/backoff_algorithm \ | |
FreeRTOS-Plus/Source/coreJSON \ | |
FreeRTOS-Plus/Source/corePKCS11 \ | |
FreeRTOS-Plus/ThirdParty/mbedtls \ | |
FreeRTOS-Plus/ThirdParty/tinycbor \ | |
FreeRTOS-Plus/ThirdParty/wolfSSL \ | |
FreeRTOS-Plus/ThirdParty/glib \ | |
FreeRTOS-Plus/ThirdParty/libslirp | |
git -C FreeRTOS-Plus/Source/Application-Protocols/coreHTTP submodule update --checkout --init --depth 1 source/dependency/3rdparty/llhttp | |
git -C FreeRTOS-Plus/Source/corePKCS11 submodule update --checkout --init --depth 1 source/dependency/3rdparty/pkcs11 | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- name: Add msbuild to PATH | |
uses: microsoft/[email protected] | |
- env: | |
stepName: Install Glib | |
name: ${{ env.stepName }} | |
working-directory: FreeRTOS-Plus\ThirdParty\glib | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
Push-Location | |
Get-Location | |
& "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\Launch-VsDevShell.ps1" | |
Get-Location | |
Pop-Location | |
pip install meson | |
meson setup build --backend=vs2019 -Dselinux=disabled -Dxattr=false -Dbsymbolic_functions=false -Dtests=false -Dglib_debug=disabled -Dglib_assert=false --buildtype=release | |
meson compile -C build | |
echo "::endgroup::" | |
if(Test-Path -Path build\glib\glib-2.0.lib) { | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 0 | |
}else { | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- name: Generate SSL credentials | |
id: generate-credentials | |
uses: FreeRTOS/CI-CD-GitHub-Actions/ssl-credential-creator@main | |
- name: Start localhost MQTT broker | |
id: mqtt-broker | |
uses: FreeRTOS/CI-CD-GitHub-Actions/localhost-mqtt-broker@main | |
with: | |
root-ca-cert-path: | |
${{ steps.generate-credentials.outputs.root-ca-cert-path }} | |
server-priv-key-path: | |
${{ steps.generate-credentials.outputs.server-priv-key-path }} | |
server-cert-path: | |
${{ steps.generate-credentials.outputs.server-cert-path }} | |
- env: | |
stepName: Update main.c to force stdout to write immediately | |
name: ${{ env.stepName }} | |
working-directory: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/Common | |
run: | | |
$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' | |
- env: | |
stepName: Configure MQTT Plain Text Demo | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
echo '#define democonfigCLIENT_IDENTIFIER "mqtt_demo_test"' >> demo_config.h | |
echo '#define democonfigMQTT_BROKER_ENDPOINT "127.0.0.1"' >> demo_config.h | |
echo '#define democonfigMQTT_BROKER_PORT ( 1883 )' >> demo_config.h | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- env: | |
stepName: Build MQTT Plain Text Demo | |
name: ${{ env.stepName }} | |
id: build-mqtt-plain-text-demo | |
working-directory: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild mqtt_plain_text_demo.sln -t:rebuild -property:Configuration=Debug_with_Libslirp -property:Platform=Win32 -m | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Run and monitor MQTT Plain Text Demo | |
name: ${{ env.stepName }} | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Plain_Text/Debug_with_Libslirp/MQTT_Plain_Text.exe | |
log-dir: demo_run_logs | |
timeout-seconds: 120 | |
success-line: "Demo completed successfully" | |
retry-attempts: 3 | |
- env: | |
stepName: Configure MQTT Basic TLS Demo | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
echo '#define democonfigROOT_CA_PEM \' >> demo_config.h | |
sed 's/.*/"&\\n"\\/' ${{ steps.generate-credentials.outputs.root-ca-cert-path }} >> root_ca_cert.txt | |
sed '$ s/.$//' root_ca_cert.txt >> demo_config.h | |
echo '#define democonfigCLIENT_IDENTIFIER "mqtt_demo_test"' >> demo_config.h | |
echo '#define democonfigMQTT_BROKER_ENDPOINT "127.0.0.1"' >> demo_config.h | |
echo '#define democonfigMQTT_BROKER_PORT ( 8883 )' >> demo_config.h | |
sed -i -z "s/define[[:space:]]*democonfigDISABLE_SNI[[:space:]]*([[:space:]]*[a-zA-Z0-9]\+[[:space:]]*)/define democonfigDISABLE_SNI ( pdTRUE )/g" demo_config.h | |
exitStatus=$? | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- env: | |
stepName: Build MQTT Basic TLS Demo | |
name: ${{ env.stepName }} | |
id: build-mqtt-basic-tls-demo | |
working-directory: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild mqtt_basic_tls_demo.sln -t:rebuild -property:Configuration=Debug_with_Libslirp -property:Platform=Win32 -m | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Run and monitor MQTT Basic TLS Demo | |
name: ${{ env.stepName }} | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Basic_TLS/Debug_with_Libslirp/MQTT_Basic_TLS.exe | |
log-dir: demo_run_logs | |
timeout-seconds: 120 | |
success-line: "Demo completed successfully" | |
retry-attempts: 3 | |
- env: | |
stepName: Configure MQTT Mutual Authentication with mbedtls Demo | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
echo '#define democonfigROOT_CA_PEM \' >> demo_config.h | |
sed 's/.*/"&\\n"\\/' ${{ steps.generate-credentials.outputs.root-ca-cert-path }} >> root_ca_cert.txt | |
sed '$ s/.$//' root_ca_cert.txt >> demo_config.h | |
echo '#define democonfigCLIENT_CERTIFICATE_PEM \' >> demo_config.h | |
sed 's/.*/"&\\n"\\/' ${{ steps.generate-credentials.outputs.device-cert-path }} >> device_cert.txt | |
sed '$ s/.$//' device_cert.txt >> demo_config.h | |
echo '#define democonfigCLIENT_PRIVATE_KEY_PEM \' >> demo_config.h | |
sed 's/.*/"&\\n"\\/' ${{ steps.generate-credentials.outputs.device-priv-key-path }} >> device_priv_key.txt | |
sed '$ s/.$//' device_priv_key.txt >> demo_config.h | |
echo '#define democonfigCLIENT_IDENTIFIER "mqtt_demo_test"' >> demo_config.h | |
echo '#define democonfigMQTT_BROKER_ENDPOINT "127.0.0.1"' >> demo_config.h | |
echo '#define democonfigMQTT_BROKER_PORT ( 8883 )' >> demo_config.h | |
sed -i -z "s/define[[:space:]]*democonfigDISABLE_SNI[[:space:]]*([[:space:]]*[a-zA-Z0-9]\+[[:space:]]*)/define democonfigDISABLE_SNI ( pdTRUE )/g" demo_config.h | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- env: | |
stepName: Build MQTT Mutual Authentication with mbedtls Demo | |
name: ${{ env.stepName }} | |
id: build-mqtt-mutual-auth-demo | |
working-directory: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild mqtt_mutual_auth_demo.sln -t:rebuild -property:Configuration=Debug_with_Libslirp -property:Platform=Win32 -m | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Run and monitor MQTT Mutual Authentication with mbedtls Demo | |
name: ${{ env.stepName }} | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth/Debug_with_Libslirp/MQTT_Mutual_Auth.exe | |
log-dir: demo_run_logs | |
timeout-seconds: 120 | |
success-line: "Demo completed successfully" | |
retry-attempts: 3 | |
- env: | |
stepName: Configure MQTT Keep Alive Demo | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
echo '#ifndef DEMO_CONFIG_H_TEST_BUILD' >> demo_config.h | |
echo ' #define DEMO_CONFIG_H_TEST_BUILD' >> demo_config.h | |
echo ' #define democonfigCLIENT_IDENTIFIER "mqtt_demo_test"' >> demo_config.h | |
echo ' #define democonfigMQTT_BROKER_ENDPOINT "127.0.0.1"' >> demo_config.h | |
echo ' #define democonfigMQTT_BROKER_PORT ( 1883 )' >> demo_config.h | |
echo '#endif /* DEMO_CONFIG_H_TEST_BUILD */' >> demo_config.h | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- env: | |
stepName: Build MQTT Keep Alive Demo | |
name: ${{ env.stepName }} | |
id: build-mqtt-keep-alive-demo | |
working-directory: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild mqtt_keep_alive_demo.sln -t:rebuild -property:Configuration=Debug_with_Libslirp -property:Platform=Win32 -m | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Run and monitor MQTT Keep Alive Demo | |
name: ${{ env.stepName }} | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Keep_Alive/Debug_with_Libslirp/MQTT_Keep_Alive.exe | |
log-dir: demo_run_logs | |
timeout-seconds: 90 | |
success-line: "Demo completed successfully" | |
retry-attempts: 3 | |
- env: | |
stepName: Configure MQTT Serializer Demo | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
echo '#define democonfigCLIENT_IDENTIFIER "mqtt_demo_test"' >> demo_config.h | |
echo '#define democonfigMQTT_BROKER_ENDPOINT "127.0.0.1"' >> demo_config.h | |
echo '#define democonfigMQTT_BROKER_PORT ( 1883 )' >> demo_config.h | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- env: | |
stepName: Build MQTT Serializer Demo | |
name: ${{ env.stepName }} | |
id: build-mqtt-serializer-demo | |
working-directory: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer | |
run: | |
msbuild mqtt_serializer_demo.sln -t:rebuild | |
-property:Configuration=Debug_with_Libslirp | |
-property:Platform=Win32 -m | |
- env: | |
stepName: Run and monitor MQTT Serializer Demo | |
name: ${{ env.stepName }} | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Serializer/Debug_with_Libslirp/MQTT_Serializer.exe | |
log-dir: demo_run_logs | |
timeout-seconds: 90 | |
success-line: "Demo completed successfully" | |
retry-attempts: 3 | |
- env: | |
stepName: Configure MQTT Mutual Authentication with WolfSSL Demo | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
echo '#define democonfigCREDENTIALS_IN_BUFFER 0' >> demo_config.h | |
echo '#define democonfigROOT_CA_PEM \' >> demo_config.h | |
sed 's/.*/"&\\n"\\/' ${{ steps.generate-credentials.outputs.root-ca-cert-path }} >> root_ca_cert.txt | |
sed '$ s/.$//' root_ca_cert.txt >> demo_config.h | |
echo '#define democonfigCLIENT_CERTIFICATE_PEM \' >> demo_config.h | |
sed 's/.*/"&\\n"\\/' ${{ steps.generate-credentials.outputs.device-cert-path }} >> device_cert.txt | |
sed '$ s/.$//' device_cert.txt >> demo_config.h | |
echo '#define democonfigCLIENT_PRIVATE_KEY_PEM \' >> demo_config.h | |
sed 's/.*/"&\\n"\\/' ${{ steps.generate-credentials.outputs.device-priv-key-path }} >> device_priv_key.txt | |
sed '$ s/.$//' device_priv_key.txt >> demo_config.h | |
echo '#define democonfigCLIENT_IDENTIFIER "mqtt_demo_test"' >> demo_config.h | |
echo '#define democonfigMQTT_BROKER_ENDPOINT "127.0.0.1"' >> demo_config.h | |
echo '#define democonfigMQTT_BROKER_PORT ( 8883 )' >> demo_config.h | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- env: | |
stepName: Build MQTT Mutual Authentication with WolfSSL Demo | |
name: ${{ env.stepName }} | |
id: build-mqtt-mutual-auth-with-wolfssl-demo | |
working-directory: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild mqtt_mutual_auth_demo_wolfSSL.sln -t:rebuild -property:Configuration=Debug_with_Libslirp -property:Platform=Win32 -m | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Run and monitor MQTT Mutual Authentication with WolfSSL Demo | |
name: ${{ env.stepName }} | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Mutual_Auth_wolfSSL/Debug/RTOSDemo.exe | |
log-dir: demo_run_logs | |
timeout-seconds: 90 | |
success-line: "Demo completed successfully" | |
retry-attempts: 3 | |
- env: | |
stepName: Configure MQTT Multi-Task Demo | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
echo '#ifndef DEMO_CONFIG_H_TEST_BUILD' | tee -a demo_config.h | |
echo ' #define DEMO_CONFIG_H_TEST_BUILD' | tee -a demo_config.h | |
echo ' #define democonfigCLIENT_CERTIFICATE_PEM ""' | tee -a demo_config.h | |
echo ' #define democonfigCLIENT_IDENTIFIER ""' | tee -a demo_config.h | |
echo ' #define democonfigCLIENT_PRIVATE_KEY_PEM ""' | tee -a demo_config.h | |
echo ' #define democonfigMQTT_BROKER_ENDPOINT ""' | tee -a demo_config.h | |
echo ' #define democonfigMQTT_BROKER_PORT ( 8883 )' | tee -a demo_config.h | |
echo ' #define democonfigROOT_CA_PEM ""' | tee -a demo_config.h | |
echo '#endif /* DEMO_CONFIG_H_TEST_BUILD */' | tee -a demo_config.h | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- env: | |
stepName: Build MQTT Multi-Task Demo | |
name: ${{ env.stepName }} | |
id: build-mqtt-multitask-demo | |
working-directory: FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator/MQTT_Multitask | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild mqtt_multitask_demo.sln -t:rebuild -property:Configuration=Debug -m | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Configure corePKCS11_MQTT_Mutual_Auth_Windows_Simulator | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
echo '#ifndef DEMO_CONFIG_H_TEST_BUILD' | tee -a demo_config.h | |
echo ' #define DEMO_CONFIG_H_TEST_BUILD' | tee -a demo_config.h | |
echo ' #define democonfigCLIENT_CERTIFICATE_PEM ""' | tee -a demo_config.h | |
echo ' #define democonfigCLIENT_IDENTIFIER ""' | tee -a demo_config.h | |
echo ' #define democonfigTHING_NAME ""' | tee -a demo_config.h | |
echo ' #define democonfigPROVISIONING_TEMPLATE_NAME ""' | tee -a demo_config.h | |
echo ' #define democonfigCLIENT_PRIVATE_KEY_PEM ""' | tee -a demo_config.h | |
echo ' #define democonfigCLIENT_PRIVATE_KEY_PEM ""' | tee -a demo_config.h | |
echo ' #define democonfigMQTT_BROKER_ENDPOINT ""' | tee -a demo_config.h | |
echo ' #define democonfigMQTT_BROKER_PORT ( 8883 )' | tee -a demo_config.h | |
echo ' #define democonfigROOT_CA_PEM ""' | tee -a demo_config.h | |
echo '#endif /* DEMO_CONFIG_H_TEST_BUILD */' | tee -a demo_config.h | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- env: | |
stepName: Build corePKCS11 + coreMQTT Mutual Auth Demo | |
name: ${{ env.stepName }} | |
working-directory: FreeRTOS-Plus/Demo/corePKCS11_MQTT_Mutual_Auth_Windows_Simulator | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild corePKCS11_MQTT_Mutual_Auth.sln -t:rebuild -property:Configuration=Debug -property:Platform=Win32 -m | |
- env: | |
stepName: Configure coreSNTP_Windows_Simulator | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
echo '#ifndef DEMO_CONFIG_H_TEST_BUILD' | tee -a demo_config.h | |
echo ' #define DEMO_CONFIG_H_TEST_BUILD' | tee -a demo_config.h | |
echo ' #define democonfigLIST_OF_TIME_SERVERS ""' | tee -a demo_config.h | |
echo ' #define democonfigLIST_OF_AUTHENTICATION_SYMMETRIC_KEYS ""' | tee -a demo_config.h | |
echo ' #define democonfigLIST_OF_AUTHENTICATION_KEY_IDS ""' | tee -a demo_config.h | |
echo ' #define democonfigSNTP_CLIENT_POLLING_INTERVAL_SECONDS 500U' | tee -a demo_config.h | |
echo '#endif /* DEMO_CONFIG_H_TEST_BUILD */' | tee -a demo_config.h | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- env: | |
stepName: Build coreSNTP Demo | |
name: ${{ env.stepName }} | |
working-directory: FreeRTOS-Plus/Demo/coreSNTP_Windows_Simulator | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild core_sntp_demo.sln -t:rebuild -property:Configuration=Debug -property:Platform=Win32 -m | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
winsim_aws_iot: | |
name: AWS IoT Windows Simulator Demos | |
runs-on: windows-2019 | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- env: | |
stepName: Fetch Submodules | |
name: ${{ env.stepName }} | |
shell: bash | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
git submodule update --checkout --init --depth 1 \ | |
FreeRTOS/Source \ | |
FreeRTOS-Plus/Source/AWS/device-defender \ | |
FreeRTOS-Plus/Source/AWS/device-shadow \ | |
FreeRTOS-Plus/Source/AWS/fleet-provisioning \ | |
FreeRTOS-Plus/Source/AWS/jobs \ | |
FreeRTOS-Plus/Source/AWS/ota \ | |
FreeRTOS-Plus/Source/AWS/sigv4 \ | |
FreeRTOS-Plus/Source/FreeRTOS-Cellular-Interface \ | |
FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/bg96 \ | |
FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/hl7802 \ | |
FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/sara-r4 \ | |
FreeRTOS-Plus/Source/Application-Protocols/coreHTTP \ | |
FreeRTOS-Plus/Source/Application-Protocols/coreMQTT \ | |
FreeRTOS-Plus/Source/Application-Protocols/coreMQTT-Agent \ | |
FreeRTOS-Plus/Source/Application-Protocols/coreSNTP \ | |
FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP \ | |
FreeRTOS-Plus/Source/Utilities/backoff_algorithm \ | |
FreeRTOS-Plus/Source/coreJSON \ | |
FreeRTOS-Plus/Source/corePKCS11 \ | |
FreeRTOS-Plus/ThirdParty/mbedtls \ | |
FreeRTOS-Plus/ThirdParty/tinycbor \ | |
FreeRTOS-Plus/ThirdParty/wolfSSL | |
git -C FreeRTOS-Plus/Source/Application-Protocols/coreHTTP submodule update --checkout --init --depth 1 source/dependency/3rdparty/llhttp | |
git -C FreeRTOS-Plus/Source/corePKCS11 submodule update --checkout --init --depth 1 source/dependency/3rdparty/pkcs11 | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- name: Add msbuild to PATH | |
uses: microsoft/[email protected] | |
- env: | |
stepName: Adjust Configuration files | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: FreeRTOS-Plus/Demo/AWS | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
echo '#ifndef DEMO_CONFIG_H_TEST_BUILD' | tee -a */*/demo_config.h | |
echo ' #define DEMO_CONFIG_H_TEST_BUILD' | tee -a */*/demo_config.h | |
echo ' #define democonfigCLIENT_CERTIFICATE_PEM ""' | tee -a */*/demo_config.h | |
echo ' #define democonfigCLIENT_IDENTIFIER ""' | tee -a */*/demo_config.h | |
echo ' #define democonfigTHING_NAME ""' | tee -a */*/demo_config.h | |
echo ' #define democonfigPROVISIONING_TEMPLATE_NAME ""' | tee -a */*/demo_config.h | |
echo ' #define democonfigCLIENT_PRIVATE_KEY_PEM ""' | tee -a */*/demo_config.h | |
echo ' #define democonfigCLIENT_PRIVATE_KEY_PEM ""' | tee -a */*/demo_config.h | |
echo ' #define democonfigMQTT_BROKER_ENDPOINT ""' | tee -a */*/demo_config.h | |
echo ' #define democonfigMQTT_BROKER_PORT ( 8883 )' | tee -a */*/demo_config.h | |
echo ' #define democonfigROOT_CA_PEM ""' | tee -a */*/demo_config.h | |
echo '#endif /* DEMO_CONFIG_H_TEST_BUILD */' | tee -a */*/demo_config.h | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- env: | |
stepName: Build AWS IoT Device Defender Demo | |
name: ${{ env.stepName }} | |
working-directory: FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild defender_demo.sln -t:rebuild -property:Configuration=Debug -m | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Build AWS IoT Device Shadow Demo | |
name: ${{ env.stepName }} | |
working-directory: FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator/Device_Shadow_Demo | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild shadow_main_demo.sln -t:rebuild -property:Configuration=Debug -m | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Build AWS IoT Fleet Provisioning Demo | |
name: ${{ env.stepName }} | |
working-directory: FreeRTOS-Plus/Demo/AWS/Fleet_Provisioning_Windows_Simulator/CSR_Demo | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild fleet_provisioning_demo.sln -t:rebuild -property:Configuration=Debug -m | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Build AWS IoT Jobs Demo | |
name: ${{ env.stepName }} | |
working-directory: FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild jobs_demo.sln -t:rebuild -property:Configuration=Debug -m | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Build AWS IoT OTA over MQTT | |
name: ${{ env.stepName }} | |
working-directory: FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Mqtt_Demo | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild ota_over_mqtt_demo.sln -t:rebuild -property:Configuration=Debug -m | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- env: | |
stepName: Build AWS IoT OTA over HTTP | |
name: ${{ env.stepName }} | |
working-directory: FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator/Ota_Over_Http_Demo | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild ota_over_http_demo.sln -t:rebuild -property:Configuration=Debug -m | |
if($? -eq 1) { | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
}else { | |
echo "::endgroup::" | |
echo "${{ env.pwshFail }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
plus_tcp_posix: | |
name: FreeRTOS+TCP Posix Simulator Demo | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- env: | |
stepName: Fetch Submodules | |
shell: bash | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
git submodule update --checkout --init --depth 1 \ | |
FreeRTOS/Source \ | |
FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP \ | |
FreeRTOS-Plus/Source/FreeRTOS-Plus-Trace | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- env: | |
stepName: Install prerequisite packages | |
name: ${{ env.stepName }} | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
sudo apt-get install -y git build-essential libglib2.0-dev libslirp-dev | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- name: Start localhost Echo server | |
id: echo-server | |
uses: FreeRTOS/CI-CD-GitHub-Actions/localhost-echo-server@main | |
with: | |
port_number: 5000 | |
- env: | |
stepName: Build FreeRTOS+TCP Echo Posix Demo | |
name: ${{ env.stepName }} | |
id: build-echo-posix-demo | |
working-directory: FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
sed -i -z "s/define[[:space:]]*echoECHO_PORT[[:space:]]*([[:space:]]*[0-9]\+[[:space:]]*)/define echoECHO_PORT ( 5000 )/g" TCPEchoClient_SingleTasks.c | |
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 TRACE_ON_ENTER=0 | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- env: | |
stepName: Run and monitor FreeRTOS+TCP Echo Posix Demo | |
name: ${{ env.stepName }} | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Posix/build/posix_tcp_demo | |
log-dir: demo_run_logs | |
timeout-seconds: 30 | |
success-line: "Received correct data 3 times" | |
retry-attempts: 3 | |
plus_tcp_arm: | |
name: FreeRTOS+TCP QEMU ARM MPS2 AN385 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- env: | |
stepName: Fetch Submodules | |
name: ${{ env.stepName }} | |
shell: bash | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
git submodule update --checkout --init --depth 1 \ | |
FreeRTOS/Source \ | |
FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- env: | |
stepName: Install prerequisite packages | |
name: ${{ env.stepName }} | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
sudo apt-get install -y git make gcc-arm-none-eabi | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- env: | |
stepName: Build FreeRTOS+TCP Minimal Demo | |
name: ${{ env.stepName }} | |
working-directory: FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Echo_Qemu_mps2 | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
make -j | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
plus_tcp_winsim: | |
name: FreeRTOS+TCP Windows Simulator Demos | |
runs-on: windows-2019 | |
continue-on-error: true | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- env: | |
stepName: Fetch Submodules | |
name: ${{ env.stepName }} | |
shell: bash | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
git submodule update --checkout --init --depth 1 \ | |
FreeRTOS/Source \ | |
FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP \ | |
FreeRTOS-Plus/ThirdParty/mbedtls \ | |
FreeRTOS-Plus/ThirdParty/wolfSSL \ | |
FreeRTOS-Plus/ThirdParty/glib \ | |
FreeRTOS-Plus/ThirdParty/libslirp | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- name: Add msbuild to PATH | |
uses: microsoft/[email protected] | |
- env: | |
stepName: Install Glib | |
name: ${{ env.stepName }} | |
working-directory: FreeRTOS-Plus\ThirdParty\glib | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
Push-Location | |
Get-Location | |
& "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\Launch-VsDevShell.ps1" | |
Get-Location | |
Pop-Location | |
pip install meson | |
meson setup build --backend=vs2019 -Dselinux=disabled -Dxattr=false -Dbsymbolic_functions=false -Dtests=false -Dglib_debug=disabled -Dglib_assert=false --buildtype=release | |
meson compile -C build | |
echo "::endgroup::" | |
if(Test-Path -Path build\glib\glib-2.0.lib) { | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 0 | |
}else { | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
exit 1 | |
} | |
- name: Start localhost Echo server | |
id: echo-server | |
uses: FreeRTOS/CI-CD-GitHub-Actions/localhost-echo-server@main | |
with: | |
port_number: 5000 | |
- env: | |
stepName: Build FreeRTOS+TCP Minimal Demo | |
name: ${{ env.stepName }} | |
id: build-plus-tcp-minimal-demo | |
working-directory: FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
$content = Get-Content -Path 'DemoTasks\TCPEchoClient_SingleTasks.c' -Raw | |
$newContent = $content -replace '#define\s+echoECHO_PORT.*', '#define echoECHO_PORT ( 5000 )' | |
$newContent | Set-Content -Path 'DemoTasks\TCPEchoClient_SingleTasks.c' | |
$content = Get-Content -Path 'tcp_echo_config.h' -Raw | |
$newContent = $content -replace '#define\s+configECHO_SERVER_ADDR.*', '#define configECHO_SERVER_ADDR "127.0.0.1"' | |
$newContent | Set-Content -Path 'tcp_echo_config.h' | |
$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 FreeRTOS_Plus_TCP_Minimal.sln -t:rebuild -property:Configuration=Debug_with_Libslirp -property:Platform=Win32 -m | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
- env: | |
stepName: Run and monitor FreeRTOS+TCP Minimal Demo | |
name: ${{ env.stepName }} | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_Minimal_Windows_Simulator/Debug_with_Libslirp/FreeRTOS_Plus_TCP_Minimal.exe | |
log-dir: demo_run_logs | |
timeout-seconds: 30 | |
success-line: "Received correct data 3 times" | |
retry-attempts: 3 | |
- name: Generate SSL credentials | |
id: generate-credentials | |
uses: FreeRTOS/CI-CD-GitHub-Actions/ssl-credential-creator@main | |
- env: | |
stepName: Configure FreeRTOS+WolfSSL Demo | |
name: ${{ env.stepName }} | |
shell: bash | |
working-directory: FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
cp ${{ steps.generate-credentials.outputs.root-ca-cert-path }} . | |
cp ${{ steps.generate-credentials.outputs.server-cert-path }} . | |
cp ${{ steps.generate-credentials.outputs.server-priv-key-path }} . | |
sed -i -z "s/ca-cert.pem/root_ca_cert.crt/g" SecureTCPServerTask.c | |
sed -i -z "s/server-cert.pem/server_cert.crt/g" SecureTCPServerTask.c | |
sed -i -z "s/server-key.pem/server_priv_key.key/g" SecureTCPServerTask.c | |
sed -i -z "s/ca-cert.pem/root_ca_cert.crt/g" SecureTCPClientTask.c | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- env: | |
stepName: Build FreeRTOS+WolfSSL Demo | |
name: ${{ env.stepName }} | |
id: build-freertos-wolfssl-demo | |
working-directory: FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator | |
continue-on-error: true | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild FreeRTOS_Plus_WolfSSL.sln -t:rebuild -property:Configuration=Debug_with_Libslirp -property:Platform=Win32 -m | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
- env: | |
stepName: Run and monitor FreeRTOS+WolfSSL Demo | |
name: ${{ env.stepName }} | |
uses: FreeRTOS/CI-CD-GitHub-Actions/executable-monitor@main | |
with: | |
exe-path: FreeRTOS-Plus/Demo/FreeRTOS_Plus_WolfSSL_Windows_Simulator/Debug_with_Libslirp/FreeRTOS_Plus_WolfSSL_Windows_Simulator.exe | |
log-dir: demo_run_logs | |
timeout-seconds: 60 | |
success-line: | |
"Received by the secure server: Message number 9" | |
retry-attempts: 3 | |
- env: | |
stepName: Build FreeRTOS+TCP UDP CLI Demo | |
name: ${{ env.stepName }} | |
working-directory: FreeRTOS-Plus/Demo/FreeRTOS_Plus_TCP_UDP_Mode_CLI_Windows_Simulator | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild FreeRTOS_Plus_UDP_with_CLI.sln -t:rebuild -property:Configuration=Debug -m | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
winsim_plus_demos: | |
name: FreeRTOS+CLI Windows Simulator Demos | |
runs-on: windows-2019 | |
continue-on-error: true | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- env: | |
stepName: Fetch Submodules | |
name: ${{ env.stepName }} | |
shell: bash | |
run: | | |
# ${{ env.stepName }} | |
echo -e "::group::${{ env.stepName }}" | |
git submodule update --checkout --init --depth 1 \ | |
FreeRTOS/Source \ | |
FreeRTOS-Plus/Source/AWS/device-defender \ | |
FreeRTOS-Plus/Source/AWS/device-shadow \ | |
FreeRTOS-Plus/Source/AWS/fleet-provisioning \ | |
FreeRTOS-Plus/Source/AWS/jobs \ | |
FreeRTOS-Plus/Source/AWS/ota \ | |
FreeRTOS-Plus/Source/AWS/sigv4 \ | |
FreeRTOS-Plus/Source/FreeRTOS-Cellular-Interface \ | |
FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/bg96 \ | |
FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/hl7802 \ | |
FreeRTOS-Plus/Source/FreeRTOS-Cellular-Modules/sara-r4 \ | |
FreeRTOS-Plus/Source/Application-Protocols/coreHTTP \ | |
FreeRTOS-Plus/Source/Application-Protocols/coreMQTT \ | |
FreeRTOS-Plus/Source/Application-Protocols/coreMQTT-Agent \ | |
FreeRTOS-Plus/Source/Application-Protocols/coreSNTP \ | |
FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP \ | |
FreeRTOS-Plus/Source/FreeRTOS-Plus-Trace \ | |
FreeRTOS-Plus/Source/Utilities/backoff_algorithm \ | |
FreeRTOS-Plus/Source/coreJSON \ | |
FreeRTOS-Plus/Source/corePKCS11 \ | |
FreeRTOS-Plus/ThirdParty/mbedtls \ | |
FreeRTOS-Plus/ThirdParty/tinycbor \ | |
FreeRTOS-Plus/ThirdParty/wolfSSL | |
git -C FreeRTOS-Plus/Source/Application-Protocols/coreHTTP submodule update --checkout --init --depth 1 source/dependency/3rdparty/llhttp | |
git -C FreeRTOS-Plus/Source/corePKCS11 submodule update --checkout --init --depth 1 source/dependency/3rdparty/pkcs11 | |
echo "::endgroup::" | |
echo -e "${{ env.bashPass }} ${{ env.stepName }} ${{ env.bashEnd }} " | |
- name: Add msbuild to PATH | |
uses: microsoft/[email protected] | |
- env: | |
stepName: Build FreeRTOS+CLI+Trace Demo | |
name: ${{ env.stepName }} | |
working-directory: FreeRTOS-Plus/Demo/FreeRTOS_Plus_CLI_with_Trace_Windows_Simulator | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::Build FreeRTOS+CLI+Trace Demo" | |
msbuild FreeRTOS_Plus_CLI_with_Trace.sln -t:rebuild -property:Configuration=Debug -m | |
echo "::endgroup::" | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" | |
- env: | |
stepName: Build FreeRTOS+RelianceEdge+CLI Demo | |
name: ${{ env.stepName }} | |
working-directory: FreeRTOS-Plus/Demo/FreeRTOS_Plus_Reliance_Edge_and_CLI_Windows_Simulator | |
run: | | |
# ${{ env.stepName }} | |
echo "::group::${{ env.stepName }}" | |
msbuild FreeRTOS_Plus_Reliance_Edge_with_CLI.sln -t:rebuild -property:Configuration=Debug -m | |
echo "${{ env.pwshPass }} ${{ env.stepName }} ${{ env.pwshEnd }}" |