0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DevOps实践:在GitLab CI/CD中集成静态分析Helix QAC的工作原理与优势

龙智 来源:jf_15970448 作者:jf_15970448 2024-10-24 17:31 次阅读

基于云的GitLab CI/CD平台使开发团队能够简化其CI/CD流程,并加速软件开发生命周期(SDLC)。

将严格的、基于合规性的静态分析(如Helix QAC所提供)作为新阶段添加到现有的GitLab CI/CD流程中,将进一步增强SDLC,并将您的DevOps工作流从持续集成推进到持续合规。

GitLab用户为何应在CI/CD工作流中使用Helix QAC

GitLab是一个由AI驱动的DevSecOps平台,为Wiki、问题跟踪和CI/CD流程功能提供Git存储库管理器。它由GitLab公司开发,并于2011年发布。

GitLab CI/CD(与CI/CD流程定义和工作流相关的组件)被全球软件开发团队用于许多不同的软件项目,并且越来越多地应用于各种嵌入式行业,包括航空航天、国防、汽车、医疗设备和工业自动化

GitLab CI/CD 深受开发人员欢迎,因为它整合了开发人员的工作流程,缩短了开发周期,降低了工程风险,帮助确保应用程序更加安全,并打通了孤岛和阶段之间的壁垒。现在,许多开发团队也希望将Helix QAC之类的静态分析工具添加到GitLab中,为其CI流程增加自动化、深入的程序间分析,以确保标准合规。

Helix QAC如何与GitLab相辅相成

Helix QAC是一款静态代码分析工具,可严格准确地遵守监管严格和安全关键型行业的编码标准。

对于使用GitLab CI/CD来简化工作流并缩短DevOps周期的嵌入式开发团队,可以从GitLab与Helix QAC的结合使用中获益。Helix QAC可以在开发过程的早期识别错误、代码质量问题、合规性故障和标准偏差,同时还能轻松地进行更改,从而帮助团队实现开发左移。

与许多静态分析工具不同,Helix QAC的深度和高精度分析引擎,很少或几乎不会返回误报和漏报结果,因此,开发人员无需浪费时间去调查误报,而可以信赖这些分析结果,从一开始就确保代码安全、可靠且易于维护。

最新版本的Helix QAC更新改进了现有的Delta分析功能,通过CI-builds实现了与Perforce Validate平台的完整CI/CD集成。其对CI构建的支持,可以扩展到在基于云的CI流程中运行的分析作业、容器化构建任务,以及通过内置Web API集成到不同的CI/CD平台(如Gitlab)。

将GitLab与Helix QAC结合使用

将GitLab等CI平台与Helix QAC结合使用,可为开发人员提供一个集中化和标准化的工作基础,通过脚本和命令行工具帮助实现CI自动化。

有多种方法可以将Helix QAC静态分析工具与GitLab(或类似环境)等CI系统相集成,因为Helix QAC提供了一个命令行界面(CLI)和灵活的工具,以适应大多数工作流程和各种配置。

例如,Helix QAC可以集成到DevOps工作流程中,作为合并请求自动测试的一部分。这意味着,当开发人员认为其功能已完成并准备合并时,GitLab将运行分析,并反馈是否发现问题,而无需任何额外输入。这样,开发人员就可以执行质量门,如果Helix QAC确实发现了功能分支引入的新问题,则强制进行审查;反之,则确认功能分支没有向主分支引入任何新问题,从而简化整个合并请求流程。

Helix QAC的CI和灵活分析功能可帮助团队管理结果,并识别相较于上一次完整分析的新更改所引入的潜在缺陷。此外,开发人员可以更快地就错误或更改进行沟通,而无需等待夜间构建,另外还可以通过Validate平台访问整个组织的结果和其他数据。

这些Helix QAC功能可在GitLab流程中自动执行测试,为多个并发流程构建质量门,以确保代码的质量、安全性和编码标准的合规性。

GitLab和Helix QAC集成的工作原理

演示示例展示了开发人员打开合并请求,启动包含Helix QAC分析的CI流程的过程,该分析配置为在被合并的分支和它要合并到的项目之间执行Delta分析。在这种情况下,由于添加了新问题,GitLab提示流程失败,并提供了一个链接,供开发人员或审查员在Validate中查看这些问题。

在开发项目时,您的CI流程可以在关键步骤(如合并请求或主分支更新时)自动运行系统化的Helix QAC静态分析。

对主分支进行定期的Helix QAC分析至关重要,它能够确保其他分支与之比较的基线始终是最新的。主分支上的变更应该始终通过合并请求获得批准,因此在添加新问题时,不应该出现失败状态。

示例流程:

qac integration analysis: stage: test only: -master script: -make clean -rm -rf pqra pqraproject.xml -$HELIX_QACLI_PATH validate config -c -P . -U $VALIDATE_URL -b $VALIDATE_PROJECT -$HELIX_QACLI_PATH sync -P . -t INJECT -g --make -$HELIX_QACLI_PATH validate build -P .

qacli validate config命令可确保分析配置与Validate中的配置完全相同,从而在开发周期的各个阶段正确执行项目的标准和要求。

qacli sync命令可确保分析所有项目文件,以防在两次提交之间添加或删除了某些文件。

qacli validate build命令按配置运行分析,并将结果作为新的构建文件上传到Validate。

当运行合并请求的流程时,添加新问题时的反馈至关重要,因此流程也有所不同:

qac_MR stage: test only: -merge_requests script: -make clean -rm -rf pqra pqraproject.xml -$HELIX_QACLI_PATH validate config -c -P . -U $VALIDATE_URL -b $VALIDATE_PROJECT -$HELIX_QACLI_PATH sync -P . -t INJECT -g -- make -$HELIX_QACLI_PATH validate cibuild -P . -b $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME-$CI_JOB_ID | tee file.txt after_script: - > if[$CI_JOB_STATUS == 'success']; then echo "no issued found !" else grep http://file.txt> out.txt glab mr note $CI_MERGE_REQUEST_IID --unique --message $(cat out.txt) fi

该脚本与主分支的脚本非常相似,但不同之处在于现在使用了qacli validate cibuild命令。这个新命令会分析项目,更重要的是,与主分支相比,如果要添加新的问题,它会通过delta分析进行检查。然后,结果将作为特定的ci-build上传到Validate,如果发现新问题,任务就会失败。after_script用于自动向合并请求添加注释,并在Validate Web界面中提供带有ci-build结果的链接。

ci-build是Helix QAC 2024.2版本的旗舰功能,它基于现有的delta分析进行构建,可通过以下方式简化问题报告:

如果添加了新问题,可提供即时反馈,这种情况下,系统设为simply fail 即可。

可直接在Validate Web界面中查看问题,避免通过来回操作、在本地重新运行分析来检查任何新问题。

被标记为偏差的问题(如ignore status)可以通过默认的质量门,从而使上述问题和流程能够顺利进行。

在此演示中,ci-builds命令显示,合并请求中提出的所有问题都需要修复或正确偏离,才能通过CI检查。这样就能确保主分支中的所有问题都已被接受、已知并记录在案。

在Web消息浏览器中,您可以看到所有问题并确定到底发生了什么。就像Validate中的任何其他问题一样,您可以为其分配负责人、指定状态并输入注释。在这种情况下,您应该设置一个状态来修复它,或者要求提交合并请求的开发人员修复此代码。

如果合并请求通过,或者开发人员修复了代码,您看到的问题就会越来越少,或者剩下的问题可以忽略不计。

更进一步来说,虽然此演示示例展示的是一个基本流程,但它还可以扩展更多的功能。例如,Validate有一个应用程序接口(API),可用于以各种方式增强集成,如:

让合并请求中出现的注释包含更多信息,说明引入了多少问题,严重程度如何。

发现新问题时,自动应用已知的系统偏差和抑制。

使用自定义质量门来识别任务是否成功,而不是依赖默认的ci-build返回代码。

Helix QAC中CI构建功能的灵活性使开发人员能够根据需求自定义流程。

开始使用GitLab和Helix QAC

Helix QAC是一款理想的静态分析工具,可帮助基于GitLab CI/CD运行的CI/CD流程严格执行编码标准,确保功能安全合规性。Helix QAC CI/CD集成可自动执行分析,并确保开发团队拥有安全可靠的代码、一致的样式和更易于维护的代码库。

立即开始使用Gitlab和Helix QAC,优化您的DevOps合规流程。

获取更多产品支持,请咨询Perforce中国授权合作伙伴——龙智:

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 静态分析
    +关注

    关注

    1

    文章

    40

    浏览量

    3885
  • devops
    +关注

    关注

    0

    文章

    113

    浏览量

    12014
收藏 人收藏

    评论

    相关推荐

    Helix QAC软件静态测试工具介绍

    Helix QAC软件静态测试工具
    发表于 12-29 07:41

    Helix QAC软件静态测试工具的功能

    Helix QAC软件静态测试工具
    发表于 12-30 06:09

    代码静态测试Helix QAC 2021.3解读

    本文介绍Helix QAC 2021.3新版本详细解读,包括定制化开发转变为可公开的定制模块等。
    的头像 发表于 08-02 10:21 1086次阅读
    代码<b class='flag-5'>静态</b>测试<b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b> 2021.3解读

    开发人员使用Helix QAC实现静态代码测试合规性的五大原因

    30多年来,Helix QAC(以前称为PRQA)一直是值得信赖的静态分析工具,可满足严格监管和安全至上行业的严格合规要求。在这里,我们分享了开发人员选择
    的头像 发表于 11-14 09:59 1123次阅读
    开发人员使用<b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b>实现<b class='flag-5'>静态</b>代码测试合规性的五大原因

    静态代码测试工具Helix QAC 2023.1更新快讯:主打编码标准覆盖率

    的合规模块。 在这一版本中Helix QAC和Validate平台的集成也有重大改进,Validate平台提供了软件对跨工程以及Perforce静态
    的头像 发表于 04-13 16:44 1184次阅读
    <b class='flag-5'>静态</b>代码测试工具<b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b> 2023.1更新快讯:主打编码标准覆盖率

    DevOps的最佳CI/CD工具

    CI/CD是一种 DevOps 方法,它结合了持续集成和持续交付的概念,允许企业通过软件开发生命周期
    的头像 发表于 07-11 11:06 698次阅读

    静态代码分析工具Helix QAC 2023.3:将100%覆盖MISRA C++:2023®规则

    Helix QAC 2023.3预计将于2023年第四季度发布的新MISRA C++®指南,将100%覆盖MISRA C++:2023®规则。 此外,此版本扩展了对C++20语言支持,并改进了Perforce Validate平台和He
    的头像 发表于 11-08 18:37 516次阅读
    <b class='flag-5'>静态</b>代码<b class='flag-5'>分析</b>工具<b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b> 2023.3:将100%覆盖MISRA C++:2023®规则

    什么是CI/CD?基本的gitlab CI/CD流程详解

    什么是CI/CD?通俗来说就是启动一个服务,能够监听代码变化,然后自动执行打包,发布等流程;
    的头像 发表于 12-08 09:50 6658次阅读
    什么是<b class='flag-5'>CI</b>/<b class='flag-5'>CD</b>?基本的<b class='flag-5'>gitlab</b> <b class='flag-5'>CI</b>/<b class='flag-5'>CD</b>流程详解

    Helix QAC—软件静态测试工具

    Helix QAC是Perforce公司(原PRQA公司)产品,主要用于C/C++代码的自动化静态分析工作,可以提供编码规则以及信息安全相关
    的头像 发表于 01-10 17:35 656次阅读
    <b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b>—软件<b class='flag-5'>静态</b>测试工具

    代码静态测试工具Helix QAC 2023.4新发布

    Helix QAC 2023.4 为新的 MISRA C++:2023 指南推出了 100% MISRA C++:2023® 规则覆盖率。此版本还包括扩展的 C++20 语言支持、数据流分析的性能改进以及整个产品中的许多产品体验
    的头像 发表于 01-13 12:25 495次阅读
    代码<b class='flag-5'>静态</b>测试工具<b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b> 2023.4新发布

    如何在DevOps环境中实施测试用例管理

    由于DevOps 工作流程使用CI/CD 方法进行软件开发,因此您的测试管理工具还应该能够与GitLab 和Jenkins 等
    的头像 发表于 01-29 09:30 1503次阅读
    如何在<b class='flag-5'>DevOps</b>环境中实施测试用例管理

    DevOps中的质量门工作原理,以及静态代码分析Klocwork和Perforce Helix QAC质量门中的实践应用

    如何使用静态代码分析工具(如Klocwork 和 Helix QAC)实现质量门。 什么是质量门? 质量门是IT或开发项目中实施的检查点,
    的头像 发表于 07-29 15:12 391次阅读

    代码静态测试工具Helix QAC 2024.2新发

    Helix QAC 2024.2 带来了新的特性和功能,为开发过程增加了灵活的选项。用户使用新的 CI 分析通过 Validate 获得完整的 CI
    的头像 发表于 08-05 17:40 348次阅读
    代码<b class='flag-5'>静态</b>测试工具<b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b> 2024.2新发

    Perforce静态分析工具2024.2新增功能:Helix QAC全新CI/CD集成支持、Klocwork分析引擎改进和安全增强

    实现持续合规性现代软件开发实践要求开发团队具备适应性,确保代码质量和可靠性的同时,优先考虑灵活性和协作性。软件开发流程中实施持续集成CI
    的头像 发表于 10-08 16:22 275次阅读
    Perforce<b class='flag-5'>静态</b><b class='flag-5'>分析</b>工具2024.2新增功能:<b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b>全新<b class='flag-5'>CI</b>/<b class='flag-5'>CD</b><b class='flag-5'>集成</b>支持、Klocwork<b class='flag-5'>分析</b>引擎改进和安全增强

    devops使用最广泛的集成工具盘点

    devops使用最广泛的集成工具包括GitLab(全栈DevOps平台)、Jenkins(CI/CD
    的头像 发表于 11-26 13:48 155次阅读