FreeRTOS/CI-CD-Github-Actions
GitHub: FreeRTOS/CI-CD-Github-Actions
为 FreeRTOS 及 AWS 嵌入式库仓库提供的一组通用 GitHub Actions,用于在 CI/CD 中执行代码复杂度分析、格式化检查、覆盖率验证和内存统计等代码质量保障任务。
Stars: 25 | Forks: 33
### [CI-CD-Github-Actions](https://github.com/FreeRTOS/CI-CD-Github-Actions)
本仓库包含用于 CI/CD 的通用 GitHub Actions,
适用于 [FreeRTOS](https://github.com/FreeRTOS/FreeRTOS-LTS/tree/main/FreeRTOS) 和
[AWS](https://github.com/FreeRTOS/FreeRTOS-LTS/tree/main/aws) 库
仓库。
目前包含:
FreeRTOS 仓库:
[FreeRTOS](https://github.com/FreeRTOS/FreeRTOS)、
[FreeRTOS-Kernel](https://github.com/FreeRTOS/FreeRTOS-Kernel)、
[FreeRTOS-Plus-TCP](https://github.com/FreeRTOS/FreeRTOS-Plus-TCP)
和 [FreeRTOS-Cellular-Interface](https://github.com/FreeRTOS/FreeRTOS-Cellular-Interface),
FreeRTOS 库仓库:
[backoffAlgorithm](https://github.com/FreeRTOS/backoffAlgorithm)、
[coreHTTP](https://github.com/FreeRTOS/coreHTTP)、
[coreJSON](https://github.com/FreeRTOS/coreJSON)、
[coreMQTT](https://github.com/FreeRTOS/coreMQTT)
[corePKCS11](https://github.com/FreeRTOS/corePKCS11)、
和 [coreSNTP](https://github.com/FreeRTOS/coreSNTP),
AWS 库仓库:
[Device-Defender](https://github.com/aws/device-defender-for-aws-iot-embedded-sdk)、
[Device-Shadow](https://github.com/aws/device-shadow-for-aws-iot-embedded-sdk)、
[Fleet-Provisioning](https://github.com/aws/fleet-provisioning-for-aws-iot-embedded-sdk)、
[Jobs](https://github.com/aws/jobs-for-aws-iot-embedded-sdk)、
[Ota](https://github.com/aws/ota-for-aws-iot-embedded-sdk)
和 [Sigv4](https://github.com/aws/sigv4-for-aws-iot-embedded-sdk)
目前,本仓库包含用于以下代码质量检查的 actions,
这些检查在 FreeRTOS 库上运行。
* **复杂度** - 使用
[GNU Complexity](https://www.gnu.org/software/complexity/manual/complexity.html)
验证库函数的复杂度得分是否低于 16。
* **[Clang-Formatting](https://clang.llvm.org/docs/ClangFormat.html)** -
验证仓库的所有代码文件是否符合
[clang-format](clang-formatting/.clang-format) 中定义的格式化标准。
* **[Uncrustify](https://github.com/uncrustify/uncrustify) 格式化** -
验证仓库的所有文件是否符合
[uncrustify.cfg](formatting/uncrustify.cfg) 中定义的格式化标准。
* **Doxygen** - 验证仓库的 doxygen 手册能否
无警告地构建。
* **拼写检查** - 使用 [CSpell](https://cspell.org/) 检查仓库
所有文件中的拼写。每个 FreeRTOS 库仓库
都应包含一个 **.github/.cSpellWords.txt** 文件。
* **覆盖率检查** - 强制要求 FreeRTOS 库的单元测试达到
最低的分支和代码行覆盖率阈值。在使用此 action 之前,
应先获取运行单元测试生成的 **lcov** 覆盖率输出。
* **内存统计** - 为 FreeRTOS 库文档中使用的库文件生成
内存估算表格。这些内存估算是通过使用 ARM GCC 工具链
构建库来生成的。
* **链接验证器** - 验证源文件和 Markdown 文件中存在的链接。
验证的链接包括 HTTP。
* **Manifest.yml 验证器** - 验证 `manifest.yml` 文件中的信息
是否与仓库关于 submodule
及其 commit ID 的状态一致。
URL,以及 - 对于 Markdown 文件 - 相对文件路径链接和章节锚点。
标签:FreeRTOS, GitHub Actions, 代码质量检查, 客户端加密, 物联网, 自动笔记