嵌入式开发:将 CI/CD 流程用于嵌入式系统

更新时间: 2022-02-19 07:10:00来源: 粤嵌教育浏览量:11048

  持续集成/持续部署(CI/CD) 是一个为最终用户自动构建、测试、分析和部署软件的过程。CI/CD 可以为嵌入式开发团队提供多种价值,例如:


  提高软件质量

  减少调试时间

  降低项目成本

  提高按时完成任务的能力

  简化软件部署过程

  在这篇文章中,我们将探讨嵌入式系统的 CI/CD。



  CI/CD 简介


  团队可以使用许多不同的工具和配置来设置 CI/CD 流程以用于嵌入式软件开发。一般的作品虽然保持相对相似。


  首先,团队有一个包含产品源代码的 git 存储库。开发人员将存储库源代码分支以在其开发机器上本地开发功能或修复错误。在本地环境中,开发人员可以使用像 Docker 这样的工具来构建容器化的构建环境以及测试和调试工具。功能准备就绪后,开发人员会将他们的更改提交到存储库中的分支。


  接下来,提交代码将使用嵌入式开发团队选择的 CI/CD 工具链启动一个预定义的流程。例如,用于 CI/CD 流程的常用工具包括 Jenkins 和 GitLab。CI/CD 流程将配置为运行一系列自动化步骤(称为管道),以确保软件满足预先配置的参数。


  此时,管道中的第一步通常是构建应用程序映像。构建应用程序映像需要拥有成功构建所需的所有工具。这就是 Docker 的用武之地! CI/CD 工具可以使用已经设置了构建工具链的 Docker 镜像来验证代码是否可以成功构建。为此,CI/CD 工具通常需要设置一个运行程序,该运行程序可以调度命令来构建和运行 Docker 映像。对于小型团队,运行器可能存在于单个开发人员的笔记本电脑上,但强烈建议将运行器安装在本地或云中的服务器上。当有人需要提交代码时,这消除了开发人员笔记本电脑的依赖。



  当 runner 完成流水线阶段时,它会将结果报告给 CI/CD 工具。如果管道中有多个阶段,CI/CD 工具可能会分派更多命令。完成后,CI/CD 工具将报告运行管道的结果。如果一切顺利,则状态将设置为通过。如果某事没有成功完成,它将被设置为失败。如果管道失败,开发人员可以进入并查看管道中的哪个作业没有成功完成。然后他们负责修复它。


  CI / CD 管道


  CI/CD 管道只是执行的作业的集合;但是,这些作业指定了在发布软件之前需要验证的软件应用程序构建过程的重要方面。例如,开始时,嵌入式开发团队可能会创建一个简单的管道来构建映像、lint 的源代码、执行单元测试,然后部署应用程序。管道将类似于图 2。在第一次部署期间,我甚至建议不要将自己与部署工作相关联。只需进行构建和测试设置就可以为团队提供很多价值。(并非所有团队都需要自动部署)。



  一旦基础工作正常,团队就可以在他们的管道上构建以添加额外的工作来增加新的功能。例如,更高级的管道可能开始如图 3 所示。



  CI/CD 为嵌入式软件团队提供了很多价值。起初,这个过程可能看起来很复杂,特别是因为嵌入式系统通常需要定制硬件。但是,一旦设置了流程,它可以帮助及早发现问题,从长远来看可以节省时间和金钱。这个过程可以帮助嵌入式开发人员对他们编写的代码负责,尤其是他们编写的质量水平。如果你刚刚进入 CI/CD,请从简单开始,然后启动并运行构建阶段。之后,逐步增加功能,直到你拥有完整且自动化的 CI/CD 流程。

免费预约试听课