0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

DevOps實(shí)踐:在GitLab CI/CD中集成靜態(tài)分析Helix QAC的工作原理與優(yōu)勢

龍智 ? 來源:jf_15970448 ? 作者:jf_15970448 ? 2024-10-24 17:31 ? 次閱讀

基于云的GitLab CI/CD平臺(tái)使開發(fā)團(tuán)隊(duì)能夠簡化其CI/CD流程,并加速軟件開發(fā)生命周期(SDLC)。

將嚴(yán)格的、基于合規(guī)性的靜態(tài)分析(如Helix QAC所提供)作為新階段添加到現(xiàn)有的GitLab CI/CD流程中,將進(jìn)一步增強(qiáng)SDLC,并將您的DevOps工作流從持續(xù)集成推進(jìn)到持續(xù)合規(guī)。

GitLab用戶為何應(yīng)在CI/CD工作流中使用Helix QAC

GitLab是一個(gè)由AI驅(qū)動(dòng)的DevSecOps平臺(tái),為Wiki、問題跟蹤和CI/CD流程功能提供Git存儲(chǔ)庫管理器。它由GitLab公司開發(fā),并于2011年發(fā)布。

GitLab CI/CD(與CI/CD流程定義和工作流相關(guān)的組件)被全球軟件開發(fā)團(tuán)隊(duì)用于許多不同的軟件項(xiàng)目,并且越來越多地應(yīng)用于各種嵌入式行業(yè),包括航空航天、國防、汽車、醫(yī)療設(shè)備和工業(yè)自動(dòng)化。

GitLab CI/CD 深受開發(fā)人員歡迎,因?yàn)樗狭碎_發(fā)人員的工作流程,縮短了開發(fā)周期,降低了工程風(fēng)險(xiǎn),幫助確保應(yīng)用程序更加安全,并打通了孤島和階段之間的壁壘?,F(xiàn)在,許多開發(fā)團(tuán)隊(duì)也希望將Helix QAC之類的靜態(tài)分析工具添加到GitLab中,為其CI流程增加自動(dòng)化、深入的程序間分析,以確保標(biāo)準(zhǔn)合規(guī)。

Helix QAC如何與GitLab相輔相成

Helix QAC是一款靜態(tài)代碼分析工具,可嚴(yán)格準(zhǔn)確地遵守監(jiān)管嚴(yán)格和安全關(guān)鍵型行業(yè)的編碼標(biāo)準(zhǔn)。

對(duì)于使用GitLab CI/CD來簡化工作流并縮短DevOps周期的嵌入式開發(fā)團(tuán)隊(duì),可以從GitLab與Helix QAC的結(jié)合使用中獲益。Helix QAC可以在開發(fā)過程的早期識(shí)別錯(cuò)誤、代碼質(zhì)量問題、合規(guī)性故障和標(biāo)準(zhǔn)偏差,同時(shí)還能輕松地進(jìn)行更改,從而幫助團(tuán)隊(duì)實(shí)現(xiàn)開發(fā)左移。

與許多靜態(tài)分析工具不同,Helix QAC的深度和高精度分析引擎,很少或幾乎不會(huì)返回誤報(bào)和漏報(bào)結(jié)果,因此,開發(fā)人員無需浪費(fèi)時(shí)間去調(diào)查誤報(bào),而可以信賴這些分析結(jié)果,從一開始就確保代碼安全、可靠且易于維護(hù)。

最新版本的Helix QAC更新改進(jìn)了現(xiàn)有的Delta分析功能,通過CI-builds實(shí)現(xiàn)了與Perforce Validate平臺(tái)的完整CI/CD集成。其對(duì)CI構(gòu)建的支持,可以擴(kuò)展到在基于云的CI流程中運(yùn)行的分析作業(yè)、容器化構(gòu)建任務(wù),以及通過內(nèi)置Web API集成到不同的CI/CD平臺(tái)(如Gitlab)。

將GitLab與Helix QAC結(jié)合使用

將GitLab等CI平臺(tái)與Helix QAC結(jié)合使用,可為開發(fā)人員提供一個(gè)集中化和標(biāo)準(zhǔn)化的工作基礎(chǔ),通過腳本和命令行工具幫助實(shí)現(xiàn)CI自動(dòng)化。

有多種方法可以將Helix QAC靜態(tài)分析工具與GitLab(或類似環(huán)境)等CI系統(tǒng)相集成,因?yàn)镠elix QAC提供了一個(gè)命令行界面(CLI)和靈活的工具,以適應(yīng)大多數(shù)工作流程和各種配置。

例如,Helix QAC可以集成到DevOps工作流程中,作為合并請(qǐng)求自動(dòng)測試的一部分。這意味著,當(dāng)開發(fā)人員認(rèn)為其功能已完成并準(zhǔn)備合并時(shí),GitLab將運(yùn)行分析,并反饋是否發(fā)現(xiàn)問題,而無需任何額外輸入。這樣,開發(fā)人員就可以執(zhí)行質(zhì)量門,如果Helix QAC確實(shí)發(fā)現(xiàn)了功能分支引入的新問題,則強(qiáng)制進(jìn)行審查;反之,則確認(rèn)功能分支沒有向主分支引入任何新問題,從而簡化整個(gè)合并請(qǐng)求流程。

Helix QAC的CI和靈活分析功能可幫助團(tuán)隊(duì)管理結(jié)果,并識(shí)別相較于上一次完整分析的新更改所引入的潛在缺陷。此外,開發(fā)人員可以更快地就錯(cuò)誤或更改進(jìn)行溝通,而無需等待夜間構(gòu)建,另外還可以通過Validate平臺(tái)訪問整個(gè)組織的結(jié)果和其他數(shù)據(jù)。

這些Helix QAC功能可在GitLab流程中自動(dòng)執(zhí)行測試,為多個(gè)并發(fā)流程構(gòu)建質(zhì)量門,以確保代碼的質(zhì)量、安全性和編碼標(biāo)準(zhǔn)的合規(guī)性。

GitLab和Helix QAC集成的工作原理

演示示例展示了開發(fā)人員打開合并請(qǐng)求,啟動(dòng)包含Helix QAC分析的CI流程的過程,該分析配置為在被合并的分支和它要合并到的項(xiàng)目之間執(zhí)行Delta分析。在這種情況下,由于添加了新問題,GitLab提示流程失敗,并提供了一個(gè)鏈接,供開發(fā)人員或?qū)彶閱T在Validate中查看這些問題。

在開發(fā)項(xiàng)目時(shí),您的CI流程可以在關(guān)鍵步驟(如合并請(qǐng)求或主分支更新時(shí))自動(dòng)運(yùn)行系統(tǒng)化的Helix QAC靜態(tài)分析。

對(duì)主分支進(jìn)行定期的Helix QAC分析至關(guān)重要,它能夠確保其他分支與之比較的基線始終是最新的。主分支上的變更應(yīng)該始終通過合并請(qǐng)求獲得批準(zhǔn),因此在添加新問題時(shí),不應(yīng)該出現(xiàn)失敗狀態(tài)。

示例流程:

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中的配置完全相同,從而在開發(fā)周期的各個(gè)階段正確執(zhí)行項(xiàng)目的標(biāo)準(zhǔn)和要求。

qacli sync命令可確保分析所有項(xiàng)目文件,以防在兩次提交之間添加或刪除了某些文件。

qacli validate build命令按配置運(yùn)行分析,并將結(jié)果作為新的構(gòu)建文件上傳到Validate。

當(dāng)運(yùn)行合并請(qǐng)求的流程時(shí),添加新問題時(shí)的反饋至關(guān)重要,因此流程也有所不同:

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

該腳本與主分支的腳本非常相似,但不同之處在于現(xiàn)在使用了qacli validate cibuild命令。這個(gè)新命令會(huì)分析項(xiàng)目,更重要的是,與主分支相比,如果要添加新的問題,它會(huì)通過delta分析進(jìn)行檢查。然后,結(jié)果將作為特定的ci-build上傳到Validate,如果發(fā)現(xiàn)新問題,任務(wù)就會(huì)失敗。after_script用于自動(dòng)向合并請(qǐng)求添加注釋,并在Validate Web界面中提供帶有ci-build結(jié)果的鏈接。

ci-build是Helix QAC 2024.2版本的旗艦功能,它基于現(xiàn)有的delta分析進(jìn)行構(gòu)建,可通過以下方式簡化問題報(bào)告:

如果添加了新問題,可提供即時(shí)反饋,這種情況下,系統(tǒng)設(shè)為simply fail 即可。

可直接在Validate Web界面中查看問題,避免通過來回操作、在本地重新運(yùn)行分析來檢查任何新問題。

被標(biāo)記為偏差的問題(如ignore status)可以通過默認(rèn)的質(zhì)量門,從而使上述問題和流程能夠順利進(jìn)行。

在此演示中,ci-builds命令顯示,合并請(qǐng)求中提出的所有問題都需要修復(fù)或正確偏離,才能通過CI檢查。這樣就能確保主分支中的所有問題都已被接受、已知并記錄在案。

在Web消息瀏覽器中,您可以看到所有問題并確定到底發(fā)生了什么。就像Validate中的任何其他問題一樣,您可以為其分配負(fù)責(zé)人、指定狀態(tài)并輸入注釋。在這種情況下,您應(yīng)該設(shè)置一個(gè)狀態(tài)來修復(fù)它,或者要求提交合并請(qǐng)求的開發(fā)人員修復(fù)此代碼。

如果合并請(qǐng)求通過,或者開發(fā)人員修復(fù)了代碼,您看到的問題就會(huì)越來越少,或者剩下的問題可以忽略不計(jì)。

更進(jìn)一步來說,雖然此演示示例展示的是一個(gè)基本流程,但它還可以擴(kuò)展更多的功能。例如,Validate有一個(gè)應(yīng)用程序接口(API),可用于以各種方式增強(qiáng)集成,如:

讓合并請(qǐng)求中出現(xiàn)的注釋包含更多信息,說明引入了多少問題,嚴(yán)重程度如何。

發(fā)現(xiàn)新問題時(shí),自動(dòng)應(yīng)用已知的系統(tǒng)偏差和抑制。

使用自定義質(zhì)量門來識(shí)別任務(wù)是否成功,而不是依賴默認(rèn)的ci-build返回代碼。

Helix QAC中CI構(gòu)建功能的靈活性使開發(fā)人員能夠根據(jù)需求自定義流程。

開始使用GitLab和Helix QAC

Helix QAC是一款理想的靜態(tài)分析工具,可幫助基于GitLab CI/CD運(yùn)行的CI/CD流程嚴(yán)格執(zhí)行編碼標(biāo)準(zhǔn),確保功能安全合規(guī)性。Helix QAC CI/CD集成可自動(dòng)執(zhí)行分析,并確保開發(fā)團(tuán)隊(duì)擁有安全可靠的代碼、一致的樣式和更易于維護(hù)的代碼庫。

立即開始使用Gitlab和Helix QAC,優(yōu)化您的DevOps合規(guī)流程。

獲取更多產(chǎn)品支持,請(qǐng)咨詢Perforce中國授權(quán)合作伙伴——龍智:

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 靜態(tài)分析
    +關(guān)注

    關(guān)注

    1

    文章

    39

    瀏覽量

    3869
  • devops
    +關(guān)注

    關(guān)注

    0

    文章

    109

    瀏覽量

    11987
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Helix QAC軟件靜態(tài)測試工具介紹

    Helix QAC軟件靜態(tài)測試工具
    發(fā)表于 12-29 07:41

    Helix QAC軟件靜態(tài)測試工具的功能

    Helix QAC軟件靜態(tài)測試工具
    發(fā)表于 12-30 06:09

    代碼靜態(tài)測試Helix QAC 2021.3解讀

    本文介紹Helix QAC 2021.3新版本詳細(xì)解讀,包括定制化開發(fā)轉(zhuǎn)變?yōu)榭晒_的定制模塊等。
    的頭像 發(fā)表于 08-02 10:21 ?1040次閱讀
    代碼<b class='flag-5'>靜態(tài)</b>測試<b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b> 2021.3解讀

    開發(fā)人員使用Helix QAC實(shí)現(xiàn)靜態(tài)代碼測試合規(guī)性的五大原因

    30多年來,Helix QAC(以前稱為PRQA)一直是值得信賴的靜態(tài)分析工具,可滿足嚴(yán)格監(jiān)管和安全至上行業(yè)的嚴(yán)格合規(guī)要求。在這里,我們分享了開發(fā)人員選擇
    的頭像 發(fā)表于 11-14 09:59 ?1024次閱讀
    開發(fā)人員使用<b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b>實(shí)現(xiàn)<b class='flag-5'>靜態(tài)</b>代碼測試合規(guī)性的五大原因

    靜態(tài)代碼測試工具Helix QAC 2023.1更新快訊:主打編碼標(biāo)準(zhǔn)覆蓋率

    的合規(guī)模塊。 在這一版本中Helix QAC和Validate平臺(tái)的集成也有重大改進(jìn),Validate平臺(tái)提供了軟件對(duì)跨工程以及Perforce靜態(tài)
    的頭像 發(fā)表于 04-13 16:44 ?1121次閱讀
    <b class='flag-5'>靜態(tài)</b>代碼測試工具<b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b> 2023.1更新快訊:主打編碼標(biāo)準(zhǔn)覆蓋率

    面對(duì)CI/CD分析的代碼靜態(tài)測試工具Klocwork 2023.1版本更新快訊

    Klocwork 2023.1為CI/CD分析pipeline引入靈活的管理選項(xiàng) 。使用差異分析加速靜態(tài)
    的頭像 發(fā)表于 04-17 12:03 ?1386次閱讀
    面對(duì)<b class='flag-5'>CI</b>/<b class='flag-5'>CD</b><b class='flag-5'>分析</b>的代碼<b class='flag-5'>靜態(tài)</b>測試工具Klocwork 2023.1版本更新快訊

    DevOps的最佳CI/CD工具

    CI/CD是一種 DevOps 方法,它結(jié)合了持續(xù)集成和持續(xù)交付的概念,允許企業(yè)通過軟件開發(fā)生命周期
    的頭像 發(fā)表于 07-11 11:06 ?661次閱讀

    靜態(tài)代碼分析工具Helix QAC 2023.3:將100%覆蓋MISRA C++:2023?規(guī)則

    Helix QAC 2023.3預(yù)計(jì)將于2023年第四季度發(fā)布的新MISRA C++?指南,將100%覆蓋MISRA C++:2023?規(guī)則。 此外,此版本擴(kuò)展了對(duì)C++20語言支持,并改進(jìn)了Perforce Validate平臺(tái)和He
    的頭像 發(fā)表于 11-08 18:37 ?494次閱讀
    <b class='flag-5'>靜態(tài)</b>代碼<b class='flag-5'>分析</b>工具<b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b> 2023.3:將100%覆蓋MISRA C++:2023?規(guī)則

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

    什么是CI/CD?通俗來說就是啟動(dòng)一個(gè)服務(wù),能夠監(jiān)聽代碼變化,然后自動(dòng)執(zhí)行打包,發(fā)布等流程;
    的頭像 發(fā)表于 12-08 09:50 ?6218次閱讀
    什么是<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—軟件靜態(tài)測試工具

    Helix QAC是Perforce公司(原PRQA公司)產(chǎn)品,主要用于C/C++代碼的自動(dòng)化靜態(tài)分析工作,可以提供編碼規(guī)則以及信息安全相關(guān)
    的頭像 發(fā)表于 01-10 17:35 ?617次閱讀
    <b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b>—軟件<b class='flag-5'>靜態(tài)</b>測試工具

    代碼靜態(tài)測試工具Helix QAC 2023.4新發(fā)布

    Helix QAC 2023.4 為新的 MISRA C++:2023 指南推出了 100% MISRA C++:2023? 規(guī)則覆蓋率。此版本還包括擴(kuò)展的 C++20 語言支持、數(shù)據(jù)流分析的性能改進(jìn)以及整個(gè)產(chǎn)品中的許多產(chǎn)品體驗(yàn)
    的頭像 發(fā)表于 01-13 12:25 ?426次閱讀
    代碼<b class='flag-5'>靜態(tài)</b>測試工具<b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b> 2023.4新發(fā)布

    如何在DevOps環(huán)境中實(shí)施測試用例管理

    由于DevOps 工作流程使用CI/CD 方法進(jìn)行軟件開發(fā),因此您的測試管理工具還應(yīng)該能夠與GitLab 和Jenkins 等
    的頭像 發(fā)表于 01-29 09:30 ?1421次閱讀
    如何在<b class='flag-5'>DevOps</b>環(huán)境中實(shí)施測試用例管理

    DevOps中的質(zhì)量門工作原理,以及靜態(tài)代碼分析Klocwork和Perforce Helix QAC質(zhì)量門中的實(shí)踐應(yīng)用

    如何使用靜態(tài)代碼分析工具(如Klocwork 和 Helix QAC)實(shí)現(xiàn)質(zhì)量門。 什么是質(zhì)量門? 質(zhì)量門是IT或開發(fā)項(xiàng)目中實(shí)施的檢查點(diǎn),
    的頭像 發(fā)表于 07-29 15:12 ?298次閱讀

    代碼靜態(tài)測試工具Helix QAC 2024.2新發(fā)

    Helix QAC 2024.2 帶來了新的特性和功能,為開發(fā)過程增加了靈活的選項(xiàng)。用戶使用新的 CI 分析通過 Validate 獲得完整的 CI
    的頭像 發(fā)表于 08-05 17:40 ?287次閱讀
    代碼<b class='flag-5'>靜態(tài)</b>測試工具<b class='flag-5'>Helix</b> <b class='flag-5'>QAC</b> 2024.2新發(fā)

    Perforce靜態(tài)分析工具2024.2新增功能:Helix QAC全新CI/CD集成支持、Klocwork分析引擎改進(jìn)和安全增強(qiáng)

    實(shí)現(xiàn)持續(xù)合規(guī)性現(xiàn)代軟件開發(fā)實(shí)踐要求開發(fā)團(tuán)隊(duì)具備適應(yīng)性,確保代碼質(zhì)量和可靠性的同時(shí),優(yōu)先考慮靈活性和協(xié)作性。軟件開發(fā)流程中實(shí)施持續(xù)集成CI
    的頭像 發(fā)表于 10-08 16:22 ?207次閱讀
    Perforce<b class='flag-5'>靜態(tài)</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>引擎改進(jìn)和安全增強(qiáng)