持续集成(CI)是一种常见的基础上集成代码转变为共享存储库的做法。它通过自动化和标准化活动,如建筑规范,测试和包装提高了团队的吞吐量和软件质量。例如,每次开发商推到远程存储库的新提交的变化,持续集成平台可以自动运行一系列测试,以确保更改不会导致远程仓库的目标分支的任何冲突。
持续集成的好处包括:
在发现软件问题并介绍后,他们很快会有固定。
添加更多的功能,同时降低了代码调试所需要的资源。
通过连续的基础上进行整合最大限度地减少集成和部署费用。
清楚地传达软件的状态以及对软件所做的更改。
一个典型的软件开发流程中使用持续集成涉及几个步骤:
克隆远程仓库和创建一个特性分支
编辑文件并提交更改到本地仓库
推到远程存储库提交更改(触发任务,如编译MEX文件,包装工具箱,和CI平台上测试的自动化流水线)
分析CI平台生成的报告并修复管道中的错误
合并所述远程特性分支到主分支通过上拉请求(触发任务的其他自动管道CI平台上)
分析CI平台生成的报告并解决合并失败
此图显示了使用詹金斯™CI服务器和开放源代码的源代码管理工具,如Git的™和GitHub的开发周期的一个例子®。有关如何接口MATLAB的信息®与詹金斯,看运行MATLAB测试詹金斯服务器上。
开发一个特性并将您的更改提交到本地存储库:
克隆GitHub的仓库,并创建一个新的特性分支。
根据需要对现有文件进行更改或添加新文件。
运行MATLAB和Simuli万博1manbetxnk®测试资格的变化,并将其提交到本地仓库。
运行任务(包括测试),当你把你的更改到远程仓库,或当你犯了一个拉请求的自动化流水线:
触发任务对詹金斯的自动化流水线推到GitHub上提交的修改或者通过拉请求发送到远程特性分支合并到主分支。
詹金斯运行自动管路,包括MATLAB和Simulink测试,并且如在项目配置中指定生成的伪影。万博1manbetx
如果你不能成功地推送你的变更或请求拉,请遵循以下步骤:
检查自动管道结果和所生成的测试工件。让你的代码相应的更改。
通过推你改变的GitHub或者通过拉请求触发对詹金斯一个新的管道。
集成工程师可以使用Jenkins测试工件来决定何时将特性分支合并到主分支。
您可以使用MATLAB测试框架来创建一个测试套件和测试运行,并定制测试运行的持续集成的工作流与在插件类matlab.unittest.plugins
包。例如,XMLPlugin
类创建一个插件,该插件生成junit样式的XML输出TAPPlugin
类创建一个插件,该插件生成一个Test Anything协议(TAP)流。
MATLAB使用MATLAB的Jenkins插件与Jenkins集成。插件使您能够轻松地运行MATLAB和Simulink测试并生成工件,例如junit风格的测试结果、TAP测万博1manbetx试结果以及Cobertura代码或模型覆盖率报告。有关更多信息,请参见詹金斯插件MATLAB。
不同的工具箱支持持续集成工作流。万博1manbetx这个表格列出了模型和代码的通用持续集成用例。
工具箱 | 使用案例 | 更多信息 |
---|---|---|
万博1manbetx |
|
关于项目的源代码控制(万博1manbetxSimulink的) 使用Git的项目(万博1manbetxSimulink的) 共享Simu万博1manbetxlink缓存文件以更快地模拟(万博1manbetxSimulink的) |
万博1manbetx仿真软件测试™ | 在CI平台上运行测试文件,并使用万博1manbetxSimulink的覆盖™ |
持续集成(万博1manbetxSimulink的测试) |
万博1manbetxSimulink的检查™ | 使用詹金斯检测模型指标阈值违规 |
修正了一个持续集成的系统工作流指标阈值违规(万博1manbetx仿真软件检查) |
万博1manbetxSimulink的要求™ | 总结在CI平台上运行的测试的需求验证结果 | 包括验证状态从外部来源结果(万博1manbetxSimulink中的要求) |
Polyspace®错误查找™服务器™,Polyspace代码验证服务器 |
|
运行错误查找分析服务器上在持续集成(Polyspace Bug的搜索服务器) 在持续集成期间在服务器上运行代码验证分析(Polyspace代码证明者服务器) |