溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Jenkins CI如何自動構(gòu)建與C-STAT代碼分析的集成

發(fā)布時間:2021-12-22 16:38:51 來源:億速云 閱讀:176 作者:小新 欄目:云計算

這篇文章主要為大家展示了“Jenkins CI如何自動構(gòu)建與C-STAT代碼分析的集成”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Jenkins CI如何自動構(gòu)建與C-STAT代碼分析的集成”這篇文章吧。

先決條件:

a. IAR 嵌入式工作臺 IDE b. C-STAT 許可證 c. Jenkins 安裝

IAR 嵌入式工作臺工具為我們提供了命令行執(zhí)行選項,以實現(xiàn) IAR 項目的靜態(tài)代碼分析?,F(xiàn)在,我們將了解其工作原理。

IAR 命令行應(yīng)用程序 

IAR 系統(tǒng)為我們提供了一個名為 IarBuild.exe 的應(yīng)用程序,該應(yīng)用程序用于在命令行中執(zhí)行分析。您可以在安裝路徑中找到 IarBuild.exe 應(yīng)用程序,如下所示。

C:\Program Files (x86) \IAR Systems\Embedded Workbench 8.1\common\bin\

運行代碼分析:

首先切換到命令路徑中的上述路徑,然后執(zhí)行以下命令來分析整個項目。

IarBuild.exe D:\sample\project\setup\sample.ewp -cstat_analyze Debug
  • D:\sample\project\setup\sample.ewp 是您的 IAR 項目文件路徑

  • -cstat_analyze 是要執(zhí)行分析的命令

  • 設(shè)置項目模式為 Debug

通過執(zhí)行上述命令,它將對整個項目執(zhí)行靜態(tài)代碼分析,并且結(jié)果將存儲在 cproject.db 文件中,位于路徑 ...project\setup\Debug\Obj\ 下。

注意下次運行代碼分析時,如果自上次分析以來對源代碼文件進(jìn)行了任何更改,則必須首先清除數(shù)據(jù)庫,以避免由于數(shù)據(jù)庫文件中的新舊數(shù)據(jù)混合而引起的問題。

清晰的分析結(jié)果

要使用命令行清除數(shù)據(jù)庫文件,請執(zhí)行以下命令,

IarBuild.exe D:\sample\project\setup\sample.ewp -cstat_clean Debug

生成報告

要生成報告,我們可以使用 IAR 提供的 IREPORT 工具,您可以在同一安裝目錄中找到該工具。IREPORT 工具用于生成 C-STAT 執(zhí)行的先前代碼分析的 HTML 報告。

該報告以數(shù)字和表格形式展示統(tǒng)計數(shù)據(jù)??梢陨蓛煞N不同類型的報告:

  • 具有相關(guān)信息的大綱,例如有關(guān)在項目范圍內(nèi)啟用的檢查、消息總數(shù)、已取消的檢查(如果有)、每個檢查的消息等信息。

  • 完整的報告,其中包含諸如輪廓之類的常量信息,以及在報告結(jié)束時有關(guān)所有已抑制和未抑制消息的其他信息。表格可以折疊和展開,列可以排序

要生成完整的 HTML 報告,我們可以執(zhí)行以下命令,

ireport.exe --db D:\sample\project\setup\Debug\Obj\cstat.db --project D:\sample\project \setup\sample.ewp --full --output D:\sample\result.html

上面的命令包含四個參數(shù):

--db 指定報告所基于的數(shù)據(jù)庫文件的路徑。 --project 指定項目文件。 --full 生成完整報告,其中包含有關(guān)禁止檢查和非禁止檢查的信息。 --output 指定輸出結(jié)果文件的名稱。

將 C-STAT 與 Jenkins CI 構(gòu)建集成: 

沒有直接的插件或方法可用于將此 CSTAT 集成到任何 CI 工具。但是我們可以通過以下方法實現(xiàn)自定義集成。

現(xiàn)在我們知道了用于分析、清理、生成報告文件的命令。使用這些命令,我們可以輕松地編寫批處理腳本文件 (.bat) 文件,然后在 Jenkins 中調(diào)用此批處理文件,作為預(yù)構(gòu)建命令執(zhí)行步驟。

設(shè)置閾值網(wǎng)關(guān)

我們將遇到需要通過設(shè)置“低”、“中”、和“高”問題的閾值在 CI 構(gòu)建中定義網(wǎng)關(guān)的場景。如果該值大于設(shè)定值,則可以使構(gòu)建失敗。

默認(rèn)情況下,C-STAT 不向我們提供設(shè)置此值的選項。但是我們可以使用以下自定義腳本來實現(xiàn)此目的。

我們可以獲得包含低、中、高問題計數(shù)分析結(jié)果的 HTML 報告。這些值以格式 data: [0-9, 0-9 ,0-9] 在 HTML 結(jié)果文件中展現(xiàn)。

請參閱下面的腳本,了解我是如何在一個變量中獲取這些值,然后用 sea t 閾值進(jìn)行驗證。

Jenkins CI如何自動構(gòu)建與C-STAT代碼分析的集成

Jenkins 構(gòu)建結(jié)果

下面是 Jenkins CI 構(gòu)建日志,供您參考。您可以看到由于標(biāo)識為“中優(yōu)先級”的 19 個問題而導(dǎo)致構(gòu)建失敗。

Jenkins CI如何自動構(gòu)建與C-STAT代碼分析的集成

以上是“Jenkins CI如何自動構(gòu)建與C-STAT代碼分析的集成”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI