基于云的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瀏覽量
3891 -
devops
+關注
關注
0文章
114瀏覽量
12025
發布評論請先 登錄
相關推薦
評論