常见问题解答

持续集成/持续交付 (CI/CD) 为使用 MATLAB 和 Simulink 的团队提供了一种可靠、可重现且可审核的方式,以自动化构建、测试和验证工作流。

MATLAB 和 Simulink 如何融入 CI/CD 工作流

CI 通过在每次发生变更时运行模型检查、仿真、测试套件(包括 MATLAB Test 和 Simulink Test)以及代码生成,帮助团队更早地发现问题。 这会减少集成过程中的意外问题,并打造一致且可重复的开发过程,测试结果、覆盖率和分析输出使团队能够有信心地发布工作成果。

可以。基于模型的设计工作流直接映射到标准 CI/CD 阶段,因为仿真、测试(包括 SIL 和 PIL)、检查和代码生成都可以通过编程方式运行,并像其他管道步骤一样进行编排。

可以。MATLAB 和 Simulink 可在任何 CI/CD 平台上运行,如 Azure DevOps、GitHub Actions、GitLab CI/CD、Jenkins 等。我们为大多数主流 CI/CD 平台提供插件,以帮助您快速上手。


如何开始使用 CI/CD

要在 CI/CD 中使用 MATLAB 和 Simulink,您需要:

  • 源代码管理系统
  • CI/CD 系统
  • MATLAB 容器镜像(或虚拟机)
  • MATLAB 许可证
  • 管道配置

有关详细信息,请参阅我们的开发运营一体化集成指南

容器有助于统一运行时环境,减少各构建代理之间的环境漂移,并通过从同一镜像定义启动作业来提高可重现性。使用我们的 MATLAB Dockerfile 参考架构为您的 CI/CD 系统创建一个 MATLAB 和 Simulink 容器。在某些 CI 平台上,您可以将虚拟机或持久运行器用作容器的替代方案,尤其是在非 Linux 环境中。不过,对于 CI/CD,容器通常是高效且有效的选择。

典型的管道遵循熟悉的阶段:拉取、构建、测试、分析和发布。工作流通常包括模型顾问检查、基于仿真的测试(包括适用的 SIL/PIL)、代码生成、静态分析和覆盖率收集,每个阶段都会生成 CI 系统收集和显示的工件。

我们提供了几个示例管道配置以帮助您快速入门:

MATLAB 和 Simulink 是核心要求。

其他产品取决于您要在管道中自动化的内容,例如:

希望加速采用并生成 CI/CD 管道的团队也可以使用 CI/CD Automation for Simulink Check Support Package

从您已在做的工作开始,例如模型检查、仿真、测试或构建,并通过脚本使这些步骤可重复。一旦工作流在本地稳定,即可配置 CI 系统自动运行相同的命令,并在此基础上逐步扩展。

不需要。交互式开发仍留在桌面工具中。CI 改变了构建、测试和验证步骤的打包方式,以便它们能够以非交互方式并在各环境间一致地执行。


在 CI/CD 中获得 MATLAB 和 Simulink 许可

在 CI/CD 系统中获得 MATLAB 许可的最佳方式是使用 MATLAB 批处理令牌。注意:获取批处理令牌可能需要额外的 MATLAB 许可证。


自定义您的构建、测试和验证工作流

实际上,您可以在 MATLAB 和 Simulink 中编写脚本的任何内容都可以在 CI 中运行,例如仿真、测试执行、代码生成和可追溯性报告。MATLAB 构建工具和 CI/CD Automation for Simulink Check Support Package 可以帮助您创建可自定义且可扩展的 CI 管道。

可以。许多客户在 CI 管道中自动化代码生成和验证以简化其高级工作流。要在 CI 中使用代码生成产品,您可能需要客户端访问许可证 (CAL)。


支持治理、可追溯性和审核

可以。CI 自动化验证工作流并生成可重复的输出,如测试结果、报告、覆盖率和分析检查结果。 这些实践通常用于需要可追溯、可审核的验证证据的工程工作流,包括符合 DO-178C、IEC 61508 或 ISO 26262 等标准的工作。

包括模型顾问检查和 Polyspace 静态分析在内的各项检查,都可以作为脚本化的 CI 步骤运行,并输出结构化结果,供跨团队审核。

CI 保留每次运行的持久记录,包括与特定变更相关联的输入、配置和验证结果。


规划规模和基础架构

管道通过将工作拆分为若干独立阶段并将它们分发到多个运行器上进行扩展,从而将快速检查与耗时较长的仿真或构建分开执行,从而保持周期时间可预测。

可以。独立的仿真、测试和构建可以作为单独的 CI 作业运行,具体取决于可用的计算资源和许可资源。


常见的 CI/CD 陷阱

CI 管道被卡住的一些常见原因是:

  • 工作流、函数或 UI 需要用户交互
  • 等待不可用的硬件或文件系统访问
  • 管道让 CI 资源不堪重负

许多团队的结果常常卡在 CI/CD 日志中,或生成的工件只能从 CI/CD 系统内部访问。要在 CI/CD 系统外部查看您的结果,请确保您的管道发布您的结果或将它们上传到工件管理系统。

一些常见原因是:

  • 使用错误的许可证类型
  • 无效的许可证配置
  • 您的 CI 系统无法访问您的许可证服务器

其中许多问题可以通过 MATLAB 批处理令牌以及参考我们关于使用批处理令牌的说明来避免。


何时与 MathWorks 接洽

团队通常在以下情况下联系 MathWorks:

  • 将仿真密集型工作流扩展到 CI/CD 中
  • 将基于模型的设计集成到现有开发运营一体化管道中
  • 为受监管计划建立可追溯的验证工作流
  • 从手动测试转向自动化、可重复的管道
  • 在单个管道中统一模型、测试和生成的代码

如果这些挑战与您当前的工作流匹配,一次有针对性的讨论可以帮助确定起点并避免常见的采用陷阱。