This repository contains common GitHub Actions for use in CI/CD on FreeRTOS, and AWS, Library Repositories.
This currently includes:
FreeRTOS Repositories: FreeRTOS, FreeRTOS-Kernel, FreeRTOS-Plus-TCP, and FreeRTOS-Cellular-Interface,
FreeRTOS-Library Repositories: backoffAlgorithm, coreHTTP, coreJSON, coreMQTT corePKCS11, and coreSNTP,
AWS-Library Repositories: Device-Defender, Device-Shadow, Fleet-Provisioning, Jobs, Ota, and Sigv4
Currently, this repository contains actions for the following code quality checks that are run on FreeRTOS libraries.
-
Complexity - Uses GNU Complexity to verify that the complexity score of library functions is less than 16.
-
Clang-Formatting - Validates all code files of a repository comply to the formatting standard defined in clang-format.
-
Uncrustify Formatting - Validates all files of a repository comply to the formatting standard defined in uncrustify.cfg.
-
Doxygen - Validates that the doxygen manual of the repository can be built without warnings.
-
Spellings - Checks spelling, using CSpell, across all files of a repository. Each FreeRTOS library repository should have a .github/.cSpellWords.txt file.
-
Coverage Cop - Enforces that the unit tests of a FreeRTOS library meet the minimum thresholds branch and line coverages. The lcov coverage output from running unit tests should be available before using this action.
-
Memory Statistics - Generates table of memory estimates for library files used in FreeRTOS library documentation. The memory estimates are generated by building the library with the ARM GCC toolchain.
-
Link Verifier - Verifies links present in source and Markdown files. Links verified include HTTP.
-
Manifest.yml Verifier - Verifies that information of
manifest.yml
file matches the state of a repository for the presence of submodules and their commit IDs.
URLs, and - for Markdown files - relative file path links and section anchors.