To reduce duplication, the workflows CodeQL Analysis, Static Analysis, and Format Checker are placed in cFS to be reused in the subrepositories.
CodeQL Analysis and Static Analysis require inputs, therefore, they are called in an additional workflow in cFS to be utilized. Format checker does not need to be reused in cFS because it does not require inputs.
Provided is a diagram of the architecture of the reusable workflows.
This action builds, tests, and runs the cFS bundle using deprecated code. The flag OMIT_DEPRECATED is set to false. For more information on the OMIT_DEPRECATED flag, see global_build_options.cmake.
Build, Test, and Run runs for every push and every pull request on all branches of cFS in Github Actions.
This action builds, tests, and runs the cFS bundle omitting deprecated code.
Build, Test, and Run [OMIT_DEPRECATED=true] runs for every push and every pull request on all branches of cFS in Github Actions. For more information on the OMIT_DEPRECATED flag, see global_build_options.cmake.
This action builds and tests the cFS bundle omitting deprecated code in both RTEMS 4.11 and RTEMS 5.
Build and Test in RTEMS 4.11 and 5 runs for every push and every pull request on all branches of cFS in Github Actions.
This action runs GitHub's static analysis engine, CodeQL, against our repository's source code to find security vulnerabilities. It then automatically uploads the results to GitHub so they can be displayed in the repository's code scanning alerts found under the security tab. CodeQL runs an extensible set of queries, which have been developed by the community and the GitHub Security Lab to find common vulnerabilities in your code.
CodeQL runs for every push and pull-request on all branches of cFS in GitHub Actions.
For the CodeQL GitHub Actions setup, visit https://github.com/github/codeql-action.
Our CodeQL action uses a configuration file to use specific queries, which can be found at .github/codeql.
This action runs a static analysis tool for C/C++ code known as cppcheck. Cppcheck is designed to be able to analyze C/C++ code even if it has non-standard syntax, which is common in embedded projects.
The cFS Cppcheck GitHub Actions workflow and results are available to the public. To view the results, select a workflow and download the artifacts.
Cppcheck runs for every push on the main branch and every pull request on all branches of cFS in Github Actions.
For more information about Cppcheck, visit http://cppcheck.sourceforge.net/.
This action tests our code using GCC's coverage testing tool gcov.
Local Unit Test runs for every push and every pull request on all branches of cFS in Github Actions.
This action creates doxygen documents for cFE, cFS users guide, and osal guide.
Documentation and Guides runs for every push and every pull request on all branches of cFS in Github Actions. The workflow pushes the PDFs for every push on the main branch. The PDFs can be found at https://github.com/nasa/cfs/tree/gh-pages.
This action creates a changelog file which documents all the issues in cFS.
The Changelog action runs manually.
This action uses clang-format-10 to check for format errors.