主要内容

违反修复指标阈值在持续集成系统的工作流程

这个例子展示了如何使用指标与开源工具仪表板GitLab™和詹金斯™测试和完善你的工作流模型在持续集成系统。持续集成是合并所有开发人员工作的实践项目文件的副本,一个共同的主线。此工作流节省时间和提高质量的维护版本控制和自动化和标准化测试。

这个例子是指一个项目包含运送项目matlab: sldemo_slproject_airframe这些文件必须提供:

  • MATLAB脚本指定度量阈值和自定义指标指示板。

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

下面的例子使用了詹金斯持续集成服务器MATLAB运行单元测试来确定是否有违反度量阈值。詹金斯档案为你测试结果在本地下载和调查。GitLab是一个在线Git存储库管理器,您可以配置詹金斯。这个图表显示了模型检查、GitLab和詹金斯一万博1manbetx起工作在一个持续集成的工作流。

持续集成的工作流GitLab和詹金斯

项目设置

除了文件matlab: sldemo_slproject_airframe项目,你必须提供这些额外的文件:

  • MATLAB的单元测试项目收集度量数据,检查模型文件不包含度量阈值违反。在MATLAB单元测试的更多信息,见基于脚本的单元测试

  • MATLAB脚本指定度量阈值和自定义指标指示板。为更多的信息关于如何定制仪表盘指标,明白了定制指标仪表板布局和功能

  • 一个setup.m文件激活配置XML文件定义度量阈值,设置自定义度量的家庭,和自定义指标仪表板布局。对于这个示例,setup.m脚本包含这个代码:

    函数设置%刷新模型顾问定制Advisor.Manager.refresh_customizations ();%与阈值设置指标配置configFile = fullfile (pwd,“配置”,“MyConfiguration.xml”);slmetric.config.setActiveConfiguration (configFile);uiconf = fullfile (pwd,“配置”,“MyDashboardConfiguration.xml”);slmetric.dashboard.setActiveConfiguration (uiconf);结束
    项目选项卡上,单击启动Shudown。为启动文件字段中,指定setup.m文件。

  • 一个sl_customization.m文件激活模型顾问顾问检查配置文件定制模型。创建您自己的模型的更多信息顾问配置,明白了配置合规指标

  • 一个运行在詹金斯构建脚本执行。对于这个示例,这段代码run.m文件:

    %脚本执行期间詹金斯构建函数运行(IN_CI)如果(IN_CI) jenkins_workspace = getenv(“工作区”);cd (jenkins_workspace);结束%打开sl项目slproj = simulinkproject (万博1manbetxpwd);%执行测试runUnitTest ();slproj.close ();如果IN_CI出口端

  • 一个cleanup.m文件重置活动指标配置默认配置。对于这个示例,这段代码cleanup.m文件的脚本:

    函数清理rmpath (fullfile (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/v2/Git-Branching-Branching-Workflows

  3. 设置>存储库,通过实施保护的主要分支合并请求当开发人员想要将更改合并到主分支。

  4. 设置,在集成页面中,添加一个webhook詹金斯项目的URL。这对詹金斯webhook触发一个构建工作服务器。

詹金斯的设置

安装GitLab和开发插件。MATLAB单元测试使用水龙头插件来流的结果. tap文件。使通信测试的地位从MATLAB詹金斯工作,詹金斯导入. tap文件。

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

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

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

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

  4. 建立触发器选项卡上,选择构建推向GitLab改变时

  5. 构建选项卡,MATLAB调用执行运行脚本。的运行脚本打开项目和运行所有单元测试。为项目在本例中,代码是:

    matlab -nodisplay - r……“cd /var/lib/jenkins/workspace/ 18 b指标CI演示;(真正的)”

  6. Post-build行动选项卡,点击配置插件发布结果詹金斯。在测试结果字段中,指定/ * . tap报告。为文件归档,指定报告/ * * / * *工作

    水龙头插件显示了扩展MATLAB单元测试的细节工作的结果。詹金斯归档基础设施保存派生詹金斯构建时生成的工件。

持续集成的工作流

设置您的项目后,詹金斯,GitLab,遵循持续集成的工作流。

阶段1:功能开发

  1. 创建一个本地的克隆GitLab库。看到从Git存储库检索文件

  2. 在仿真万博1manbetx软件中,导航到本地GitLab存储库。

  3. 创建一个特性分支和获取和签出文件。看到与Git分支和合并文件与Git拉、推、获取文件

  4. 项目文件进行任何必要的更改。

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

  6. MATLAB运行单元测试。有关更多信息,请参见runtests

  7. 添加和分支提交修改后的模型特征。看到与Git分支和合并文件与Git拉、推、获取文件

  8. 推动改变GitLab库。看到与Git分支和合并文件与Git拉、推、获取文件

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

  10. 如果功能没有完全实现,马克合并请求作为工作过程中通过添加字母在制品:初的请求。如果合并请求并不标志着在制品:创建后,它会立即触发一个构建。

  11. 点击提交合并请求

第二阶段:通过使用持续集成资质

  1. 如果信件在制品:不合并之初要求,推动命令触发詹金斯构建。詹金斯设置部分的这个例子中,您配置詹金斯时执行一个构建GitLab推动变化。把字母,点击解决在制品状态

  2. 导航到詹金斯项目。建立历史上,你可以看到构建状态。

  3. 单击建立。

  4. 点击利用测试结果

  5. 对于这个示例,MetricThresholdGateway.m单元测试不通过三个指标,因为这些指标没有达到阈值。调查这些数据,你必须在本地下载数据。

    测试结果为MetricThresholdGateway

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

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

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

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

    指标指示板显示建模指南依从性,模型大小和模型体系结构

  4. 解决测试失败,进行必要的更新模型。在GitLab推动的变化特性。

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

另请参阅

|

相关的话题

外部网站