Logging update #339
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: Test actions | |
on: | |
push: | |
branches: ["**"] | |
pull_request: | |
branches: [main] | |
workflow_dispatch: | |
jobs: | |
test-format-check: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/checkout@v2 | |
with: | |
repository: FreeRTOS/coreMQTT | |
ref: main | |
path: coreMQTT | |
- name: Test formatting check action | |
uses: ./formatting | |
with: | |
path: coreMQTT | |
exclude-files: lexicon.txt | |
exclude-dirs: build,docs | |
test-executable-monitor: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Compile executable monitor test | |
id: compile-executable-monitor-test | |
shell: bash | |
run: | | |
# Compile executable monitor test | |
echo "::group::Compile executable monitor test" | |
sudo apt install build-essential | |
if [ "$?" = "0" ]; then | |
echo -e "\033[32;3mInstalled build-essential\033[0m" | |
else | |
echo "::endgroup::" | |
echo -e "\033[32;31mInstall build-essential failed...\033[0m" | |
exit 1 | |
fi | |
gcc executable-monitor/test.c -o executable-monitor/test.out | |
echo "::endgroup::" | |
if [ "$?" = "0" ]; then | |
readlink -f executable-monitor/test.out | |
echo -e "\033[32;3mCompiled executable-monitor/test.c\033[0m" | |
else | |
echo -e "\033[32;31mCompilation of executable-monitor/test.c failed...\033[0m" | |
exit 1 | |
fi | |
- name: Test Executable Monitor Action | |
id: test-executable-monitor-action | |
uses: ./executable-monitor | |
with: | |
exe-path: executable-monitor/test.out | |
log-dir: demo_run_logs | |
timeout-seconds: 20 | |
success-line: "Sleeping for 6 seconds" | |
success-exit-code: 0 | |
retry-attempts: 2 | |
- name: Test Executable Monitor API - No success metric | |
continue-on-error: true | |
id: test-executable-monitor-API-no-success-metric | |
uses: ./executable-monitor | |
with: | |
exe-path: executable-monitor/test.out | |
log-dir: demo_run_logs | |
timeout-seconds: 20 | |
retry-attempts: 2 | |
- name: Check Last Step | |
if: success() || failure() && steps.test-executable-monitor-API-no-success-metric.outcome == 'failure' | |
run: | | |
# Check Last Step Failed | |
if [ "${{ steps.test-executable-monitor-API-no-success-metric.outcome}}" = "failure" ]; then | |
echo -e "\033[32;3mCheck Last Step had outcome '${{ steps.test-executable-monitor-API-no-success-metric.outcome}}' as intended\033[0m" | |
else | |
echo -e "\033[32;31mCheck Last Step had unexpected '${{ steps.test-executable-monitor-API-no-success-metric.outcome}}' exit condition\033[0m" | |
exit 1 | |
fi | |
- name: Test Executable Monitor Action No Exit Code | |
id: test-executable-monitor-action-no-exit-code | |
uses: ./executable-monitor | |
with: | |
exe-path: executable-monitor/test.out | |
log-dir: demo_run_logs | |
timeout-seconds: 20 | |
success-line: "Sleeping for 6 seconds" | |
retry-attempts: 2 | |
- name: Test Executable Monitor Action No Success Line | |
id: test-executable-monitor-action-no-success-line | |
uses: ./executable-monitor | |
with: | |
exe-path: executable-monitor/test.out | |
log-dir: demo_run_logs | |
timeout-seconds: 75 | |
success-exit-code: 0 | |
retry-attempts: 2 | |
- name: Test Executable Monitor Action No Retry Attempts Success Line | |
id: test-executable-monitor-action-no-retry-attempts-success-line | |
uses: ./executable-monitor | |
with: | |
exe-path: executable-monitor/test.out | |
log-dir: demo_run_logs | |
success-line: "Sleeping for 6 seconds" | |
timeout-seconds: 20 | |
- name: Test Executable Monitor Action No Retry Attempts Exit Code | |
id: test-executable-monitor-action-no-retry-attempts-exit-code | |
uses: ./executable-monitor | |
with: | |
exe-path: executable-monitor/test.out | |
log-dir: demo_run_logs | |
success-exit-code: 0 | |
timeout-seconds: 75 | |
test-complexity-check: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/checkout@v2 | |
with: | |
repository: FreeRTOS/coreMQTT | |
ref: main | |
path: coreMQTT | |
- name: Test complexity check action | |
uses: ./complexity | |
with: | |
path: coreMQTT | |
# For coreMQTT the code complexity threshold is 10. | |
horrid_threshold: 10 | |
test-doxygen-zip-check: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: '3.11.0' | |
- uses: actions/checkout@v2 | |
with: | |
repository: aws/aws-iot-device-sdk-embedded-C | |
submodules: recursive | |
ref: main | |
path: aws-iot-device-sdk-embedded-C | |
- name: Test doxygen build action | |
uses: ./doxygen | |
with: | |
path: ./aws-iot-device-sdk-embedded-C | |
libs_parent_dir_path: libraries/standard,libraries/aws | |
generate_zip: true | |
test-doxygen-non-zip-check: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/checkout@v2 | |
with: | |
repository: FreeRTOS/coreMQTT | |
ref: main | |
path: coreMQTT | |
- name: Test doxygen build action | |
uses: ./doxygen | |
with: | |
path: coreMQTT | |
test-spell-check: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/checkout@v2 | |
with: | |
repository: FreeRTOS/coreMQTT | |
ref: main | |
path: coreMQTT | |
- name: Test spell check action | |
uses: ./spellings | |
with: | |
path: coreMQTT | |
test-coverage-cop: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/checkout@v2 | |
with: | |
repository: FreeRTOS/coreMQTT | |
ref: main | |
path: coreMQTT | |
- name: Build | |
run: | | |
sudo apt-get install -y lcov | |
cmake -S ./coreMQTT/test -B build/ \ | |
-G "Unix Makefiles" \ | |
-DCMAKE_BUILD_TYPE=Debug \ | |
-DBUILD_CLONE_SUBMODULES=ON \ | |
-DCMAKE_C_FLAGS='--coverage -Wall -Wextra -Werror -DNDEBUG -DLIBRARY_LOG_LEVEL=LOG_DEBUG' | |
make -C build/ all | |
- name: Test | |
run: | | |
cd build/ | |
ctest -E system --output-on-failure | |
cd .. | |
- name: Run Coverage | |
run: | | |
make -C build/ coverage | |
declare -a EXCLUDE=("\*test/\*" "\*CMakeCCompilerId\*" "\*mocks\*") | |
echo ${EXCLUDE[@]} | xargs lcov --rc lcov_branch_coverage=1 -r build/coverage.info -o build/coverage.info | |
lcov --rc lcov_branch_coverage=1 --list build/coverage.info | |
- name: Test coverage cop action | |
uses: ./coverage-cop | |
with: | |
path: ./build/coverage.info | |
branch-coverage-min: 70 | |
line-coverage-min: 100 | |
test-memory-statistics: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Test memory statistics action | |
uses: ./memory_statistics | |
with: | |
path: memory_statistics/test | |
config: ./memory_statistics_config.json | |
output: ./size_table_new.html | |
check_against: ./size_table_expected.html | |
test-link-verifier: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup python environment | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.11.0' | |
- name: Test link verifier action | |
uses: ./link-verifier | |
with: | |
path: ./ | |
exclude-dirs: complexity,formatting | |
include-file-types: .c,.html | |
test-manifest-verifier: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Setup python environment | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.x' | |
- name: Checkout the FreeRTOS/FreeRTOS repository for testing action on. | |
uses: actions/checkout@v2 | |
with: | |
repository: FreeRTOS/FreeRTOS | |
ref: '202107.00' | |
path: FreeRTOS | |
submodules: recursive | |
- name: Test manifest verifier | |
uses: ./manifest-verifier | |
with: | |
path: ./FreeRTOS | |
exclude-submodules: FreeRTOS-Plus/Test/CMock,FreeRTOS/Test/CMock/CMock,FreeRTOS/Test/litani | |
fail-on-incorrect-version: true | |