Main Content

使用持续集成模式开发和集成软件

持续集成 (CI) 的做法是频繁地将代码更改集成到共享存储库中。它通过自动化和标准化活动(如编译代码、测试和打包)来提高团队吞吐量和软件质量。例如,每次开发人员将新提交的更改推送到远程存储库时,持续集成平台都可以自动运行一套测试,以确保这些更改不会在远程存储库的目标分支中引起任何冲突。

持续集成的好处包括:

  • 在软件引入问题后尽快发现和解决这些问题。

  • 添加更多功能,同时减少调试代码所需的资源。

  • 通过持续执行集成,最大限度地降低集成和部署开销。

  • 清楚地传达软件的状态和对它所做的更改。

持续集成工作流

使用持续集成的典型软件开发工作流包括下列几个步骤:

  1. 克隆远程存储库并创建功能分支

  2. 编辑文件并将更改提交到本地存储库

  3. 将提交的更改推送到远程存储库(这会触发一个自动化任务管道,如编译 MEX 文件、运行测试和在 CI 平台上进行工具箱打包)

  4. 分析 CI 平台生成的报告并修复管道中的错误

  5. 通过取回请求将远程功能分支合并到主分支中(这将触发 CI 平台上的另一个自动化任务管道)

  6. 分析 CI 平台生成的报告并解决合并失败问题

下图显示使用 Jenkins® CI 服务器和开源源代码管理工具(如 Git™ 和 GitHub®)的开发周期示例。有关如何将 MATLAB® 与 Jenkins 对接的信息,请参阅在 Jenkins 服务器上运行 MATLAB 测试

An example of the development cycle using continuous integration

阶段 1:在本地存储库中开发和验证功能

开发一项功能并将您的更改提交到本地存储库:

  1. 克隆 GitHub 存储库并创建一个新的功能分支。

  2. 根据需要对现有文件进行更改或添加新文件。

  3. 运行 MATLAB 和 Simulink® 测试来验证更改并将其提交到本地存储库。

阶段 2:在持续集成平台上运行自动化管道

当您将更改推送到远程存储库或发出取回请求时,运行自动化任务管道(包括测试):

  1. 通过将提交的更改推送到 GitHub 或通过发起取回请求来将远程功能分支合并到主分支中,触发 Jenkins 上的自动化任务管道。

  2. Jenkins 运行该自动化管道,包括 MATLAB 和 Simulink 测试,并生成工程配置中指定的工件。

阶段 3:调查和解决失败问题

如果您无法成功推送更改或发起取回请求,请按照以下步骤操作:

  1. 检查自动化管道结果和生成的工件。对代码进行适当的更改。

  2. 通过将您的更改推送到 GitHub 或发起取回请求,在 Jenkins 上触发新管道。

集成工程师可以使用 Jenkins 工件来决定何时将功能分支合并到主分支中。

与 MathWorks 产品的持续集成

您可以在各种持续集成平台上执行与 MATLAB 的持续集成。您可以运行并测试您的 MATLAB 代码和 Simulink 模型,生成工件,并将结果发布到平台。有关详细信息,请参阅在 CI 平台上与 MATLAB 的持续集成

除了 MATLAB,各种不同工具箱都支持持续集成工作流。下表列出了模型和代码的常见持续集成用例。

工具箱用例更多信息
Simulink

  • 编译和测试模型和工程

  • 用于仿真和代码生成的缓存文件

About Source Control with Projects (Simulink)

Using a Project with Git (Simulink)

共享 Simulink 缓存文件以加快仿真速度 (Simulink)

Attach Model Comparison Report to GitHub Pull Requests (Simulink)

Simulink Test™

使用 Simulink Coverage™ 在 CI 平台上运行测试文件并收集 CI 兼容的覆盖率

持续集成 (Simulink Test)

Simulink Check™

  • 向您的团队部署自动化流程,以帮助他们识别、自动化和完成开发和验证活动

  • 使用 Jenkins 检测模型中的度量阈值违规

Run Tasks Locally and in CI (Simulink Check)

Fix Metric Threshold Violations in a Continuous Integration Systems Workflow (Simulink Check)

Requirements Toolbox™总结在 CI 平台上运行的测试的需求验证结果

Include Results from External Sources in Verification Status (Requirements Toolbox)

Polyspace® Bug Finder™ Server™, Polyspace Code Prover™ Server

  • 作为持续集成(例如与 Jenkins 的集成)的一部分,对 C/C++ 代码运行 Polyspace 分析

  • 将分析结果(错误、运行时错误或编码标准违规)上传到 Polyspace Access Web 界面进行审核

  • 发送电子邮件通知以提供 Polyspace Bug Finder 或 Polyspace Code Prover 结果

持续集成期间在服务器端设置 Bug Finder 分析 (Polyspace Bug Finder)

持续集成期间在服务器端设置 Code Prover 分析 (Polyspace Code Prover)

另请参阅

函数

命名空间

相关主题

外部网站