修正了一个持续集成的系统工作流指标阈值违规

这个例子说明了如何使用度量仪表板,用开源工具GitLab™和詹金斯™测试和完善模型在持续集成系统的工作流程。持续集成是合并的项目文件的所有开发工作拷贝来共享主线的做法。该工作流程节省了时间,通过保持版本控制和自动化和标准化的测试提高质量。

这个例子是指包含运项目一期工程MATLAB:sldemo_slproject_airframe而这些额外的文件,这是相关的这个例子:

  • MATLAB脚本,指定指标阈值和定制度量仪表板,。

  • 收集度量数据,并检查是否有度量阈值违反一个MATLAB单元测试。

该示例使用詹金斯持续集成服务器来运行MATLAB单元测试,以确定是否有度量阈值违规。詹金斯档案测试结果供你下载并在本地进行调查。GitLab是一个在线的Git仓库管理器,您可以配置与詹金斯的工作。此图显示的Simulink如何检查,GitLa万博1manbetxb和詹金斯一起工作在持续集成的工作流。

项目设置

该项目包含所有模型,数据和配置文件,包括其本示例需要以下文件:

  • 收集的项目,并检查该模型文件不包含任何指标阈值违反度量数据用MATLAB单元测试。有关MATLAB单元测试的详细信息,请参阅基于脚本的单元测试(MATLAB)。

  • 一种setup.m文件激活定义指标阈值的配置XML文件,设置自定义指标组合,并自定义指标仪表板布局。对于此示例,该代码是setup.m脚本:

    功能设置%刷新模型顾问定制Advisor.Manager.refresh_customizations();%设置度量标准配置与阈值CONFIGFILE =完整文件(PWD, '配置', 'MyConfiguration.xml');slmetric.config.setActiveConfiguration(CONFIGFILE);uiconf =完整文件(PWD, '配置', 'MyDashboardConfiguration.xml');slmetric.dashboard.setActiveConfiguration(uiconf);结束
    项目选项卡,单击启动Shudown。为了启动文件字段中,指定setup.m文件。

    有关如何自定义指标仪表板的更多信息,请参阅自定义指标仪表盘布局和功能

  • 一个sl_customization.m激活模型顾问配置文件文件自定义模型顾问检查。

  • 一种脚本,一詹金斯生成过程中执行。对于此示例,该代码是在run.m文件:

    詹金斯构建函数运行(IN_CI)期间执行%脚本如果(IN_CI)jenkins_workspace = GETENV( 'WORKSPACE');CD(jenkins_workspace);端%打开SL项目slproj = simulinkproject(PW万博1manbetxD);%执行测试runUnitTest();slproj.close();如果IN_CI出口端终点

  • 一种cleanup.m文件重置活动指标配置到默认配置。对于此示例,该代码是在cleanup.m文件脚本:

    功能清理rmpath(完整文件(PWD, '数据'));Advisor.Manager.refresh_customizations();%复位活性度量配置为默认slmetric.config.setActiveConfiguration(“”);slmetric.dashboard.setActiveConfiguration( '');结束
    项目选项卡,单击启动Shudown。为了关闭文件字段中,指定cleanup.m文件。

  • 一种的.gitignore文件派生文物验证未住进GitLab。此代码是在的.gitignore文件:

    工作/ **报告/ ** * .asv * .autosave

GitLab设置

为源控制项目中的GitLab项目。欲了解更多信息,请参阅https://docs.gitlab.com/ee/README.html

  1. 安装Git的客户端。

  2. 建立一个分支流程。随着GitLab,从主分支,创建用于实现改变模型文件的临时分支。集成工程师可以使用詹金斯测试结果决定是否给一个临时分支合并到主分支。欲了解更多信息,请参阅

    https://git-scm.com/book/en/v1/Git-Branching-Branching-Workflows

  3. 设置>知识库通过强制使用的合并请求时,开发人员希望他们的更改合并到主分支保护主分支。

  4. 设置,在集成页面,一个网络挂接添加到您的詹金斯项目的URL。这种网络挂接触发詹金斯服务器上的构建工作。

詹金斯设置

安装GitLab和Tap插件。MATLAB的单元测试使用TAPPlugin串流结果提供给.tap文件。为了能够从MATLAB到詹金斯任务测试状态通信,詹金斯进口.tap文件。

创建詹金斯项目。指定这些配置:

  1. 在你的詹金斯项目,单击配置

  2. 一般选项卡,指定项目名称。

  3. 源代码管理选项卡上,库网址字段中,指定GitLab库的URL。

  4. 构建触发器选项卡,选中当改变推到GitLab建设

  5. 建立标签,执行MATLAB调用运行的脚本。运行脚本打开项目,并运行所有的单元测试。对于本例中的项目,代码为:

    MATLAB -nodisplay -r ... “CD的/ var / lib中/詹金斯/工作区/ '18b的指标CI演示';运行(真)”

  6. 在里面后期生成操作选项卡,配置TAP插件发布TAP结果詹金斯。在里面试验结果字段中,指定报告/ *。自来水。对于文件归档,指定报告/ **,工作/ **

    该TAP从工作的延伸结果MATLAB单元测试插件显示的细节。詹金斯归档基础架构节省推导出是一个詹金斯构建过程中产生的假象。

持续集成的工作流

设置项目,詹金斯和GitLab后,按照持续集成的工作流程。

第1阶段:功能开发

  1. 创建GitLab库的本地克隆。看到从Git仓库克隆(MATLAB)。

  2. 在Si万博1manbetxmulink中,浏览到本地GitLab库。

  3. 创建一个特性分支并获取入住和退房手续的文件。看到使用Git分支和合并文件(万博1manbetxSimulink中)和拉,推,并使用Gi​​t获取文件(万博1manbetxSIMULINK)。

  4. 请对项目文件进行必要的更改。

  5. 模拟模型和验证的仿真数据检查输出。

  6. 运行MATLAB单元测试。欲了解更多信息,请参阅runtests

  7. 添加并提交改款车型的特性分支。看到使用Git分支和合并文件(万博1manbetxSimulink中)和拉,推,并使用Gi​​t获取文件(万博1manbetxSIMULINK)。

  8. 按更改GitLab库。看到使用Git分支和合并文件(万博1manbetxSimulink中)和拉,推,并使用Gi​​t获取文件(万博1manbetxSIMULINK)。

  9. 在GitLab,创建一个合并请求。选择特性分支作为源分支和目标分支为主。请点击比较分行并继续

  10. 如果该功能没有得到充分执行,标志着合并请求通过添加字母WIP进展中的工作:在请求的开始。如果合并请求没有标记WIP:,它会立即触发创建后一个版本。

  11. 请点击提交合并请求

第2阶段:资格利用持续集成

  1. 如果字母WIP:不是在合并请求,推送命令触发一个詹金斯构建的开端。在本实施例的安装程序詹金斯部分,则配置詹金斯进行构建时被推变更GitLab。要删除字母,点击解决WIP状态

  2. 导航到詹金斯项目。在Build历史,你可以看到生成的状态。

  3. 单击生成。

  4. 请点击点击测试结果

  5. 在这个例子中,MetricThresholdGateway.m单元测试没有通过三个指标,因为这些指标没有达到阈值。为了研究这些数据,您必须在本地下载数据。

第3阶段:调查质量问题本地

  1. 下载存档结果到本地Git仓库工作区。

  2. 解压下载的文件。复制报告/工作/夹到本地存储库中的相应文件夹中。

  3. 要探索的结果,打开项目和指标仪表板。

  4. 要解决的故障,进行必要的更新的车型。变更推到GitLab的特性分支。

  5. 集成工程师可以使用詹金斯测试结果来决定何时是可以接受的执行临时党支部的合并到主分支。

也可以看看

|

相关话题