配置 SonarQube
DevOps Insights 將於 2026 年 8 月 31 日結束服務並停止提供。Continuous Delivery 將於 2027 年 2 月 12 日在以下地區停止提供:au-syd、ca-mon、ca-tor、us-east。 Code Risk Analyzer 也將於該日於所有地區停止提供服務。 若某個區域未實際使用這些功能,該區域中的功能可能會提前停用,並停止接受新的實例。 了解更多
SonarQube 提供原始碼整體性能及品質的概觀,並強調顯示在新程式碼中找到的問題。 程式碼分析器可偵測 20 種以上程式碼語言的難處理錯誤(例如空值指標解除參照、邏輯錯誤及資源洩漏)。
配置 SonarQube,以持續分析及測量原始碼的品質:
-
從 IBM Cloud 控制台點擊選單圖示(
)> 平台自動化 > 工具鏈。 在「工具鏈」頁面中,點擊該工具鏈以開啟其「概覽」頁面。
a. 按一下新增工具。
b. 在「工具整合」區段中,按一下 SonarQube。
-
鍵入此 SonarQube 工具整合實例的名稱。
-
鍵入當您從工具鏈按一下 SonarQube 卡片時所要開啟的 SonarQube 實例 URL。
-
選用項目:鍵入您用來連接至 SonarQube 伺服器的使用者名稱。
只有在您使用密碼來連接至 SonarQube 伺服器時,才需要指定使用者名稱。 如果您使用鑑別記號進行連接,請讓此欄位保留為空欄位。
-
鍵入您用來連接至 SonarQube 伺服器的密碼或鑑別記號。
-
如果在公用網際網路上找不到伺服器,請選取 進階。IBM Cloud 無法驗證您提供的連線詳細資料,且需要此伺服器的 API 存取權的特定功能已停用。 Delivery Pipeline 只能透過使用具有此伺服器網路存取權的專用工作者節點來運作。
-
按一下建立整合。
-
在「工具鏈概觀」頁面上的 協力廠商工具 卡片上,按一下 SonarQube,以檢視您所連接 SonarQube 實例的儀表板。
將 Sonarqube 新增至持續整合管線
預設 SonarQube 實例
如果您沒有自己的 SonarQube 實例,則管線會在管線執行期間建立 SonarQube 實例。 在靜態掃描階段順利執行之後,您可以存取此實例。
現有 SonarQube 實例
若要將您自己的 SonarQube 實例新增至現有管線,請 將工具整合新增 至工具鏈,然後將 Sonarqube 工具整合參數新增至管線。
必要參數
若要執行 SonarQube 掃描,管線需要下列連續整合參數:
| 名稱 | 類型 | 說明 | 必要或選用 |
|---|---|---|---|
| 叢集名稱 | 文字 | Docker 建置叢集的名稱。 | 必要 |
| 開發區域 | 文字 | 管理叢集的 IBM Cloud 地區。 | 必要 |
| 選用聲納 | 文字 | 啟用 sonarQube 掃描的選項。 | 必要 |
| sonarqube | 工具整合 | Sonarqube 工具整合。 | 選用 |
如需管線參數的相關資訊,請參閱 管線參數。
若您在管道中新增多個 SonarQube 工具整合,可透過變更 SonarQube 管道參數的值來切換它們,該參數屬於工具整合參數。
更新品質閘道
如果您使用管線所建立的 SonarQube 實例,則可以更新預設品質閘道。
-
前往由管道
static-scan任務中的 URL 管道日誌所建立的 SonarQube 儀表板。
SonarQube儀表板 -
按一下 品質閘道 > 建立。
-
使用下列其中一個選項來設定「品質閘道」:
- 按一下 設為預設值,將新建的品質閘道設為預設值。
- 從儀表板中,選取專案,然後按一下 專案設定 > 品質閘道,以使用專案新建立的品質閘道。
-
指定您要與專案相關聯的品質閘道。 此品質閘道會評估新的掃描,而品質閘道的結果會建立證明。
要了解有關SonarQube,請參閱 SonarQube文件。
使用您自己的配置檔
您可以在不使用自己的 SonarQube 實例的情況下修改預設配置。 在您要在其中建立配置檔的儲存庫中建立 sonar-project.properties 檔案。 如果我們的 Script 偵測到儲存庫中的現有 configuration sonar-project.properties 檔案,則會使用該檔案而非預設檔案。 如需配置檔中可能分析參數的相關資訊,請參閱這裡的 分析參數。
請確保您在設定檔中加入正確的 URL 登入憑證與主機。
使用另一個靜態掃描實作
您可以修改 .pipeline-config.yaml 檔,將您自己的自訂 Script 新增至 static-scan 階段,以使用您自己的靜態掃描實作。
使用 API 來配置 SonarQube
工具 SonarQube 整合支援下列配置參數,您可在 建立、讀取及 更新工具整合時,透過工具鏈 HTTP API 與 SDK 使用這些參數。
您必須在要求內文中以 sonarqube 值指定 tool_type_id 內容。
| 參數 | 用法 | 類型 | Terraform 引數 | 說明 |
|---|---|---|---|---|
| 盲接 | 可選、可更新、Default: false |
布林 | 盲接 | 設為 true 以指示 Continuous Delivery 忽略此整合的配置驗證。 此外,如果 SonarQube 伺服器無法在公用網際網路上定址,則設為 true。 |
| dashboard_url | 必要,可更新 | 字串 | 伺服器網址 | 此工具整合 SonarQubeURL 的伺服器儀表板。 在圖形化使用者介面中,當您點擊工具 SonarQube 整合卡片時,瀏覽器會跳轉至此儀表板。 |
| 名稱 | 必要,可更新 | 字串 | 名稱 | 此工具整合的名稱。 |
| 使用者登入 | 選用,可更新 | 字串 | 使用者登入 | 用於向 SonarQube 伺服器進行鑑別的使用者 ID。 |
| 使用者密碼 | 選用,可更新 | 密碼 | 使用者密碼 | 用來向 SonarQube 伺服器進行鑑別的密碼或記號。 您可以對此參數使用工具鏈密鑰參照。 如需密鑰參照的相關資訊,請參閱 在 Continuous Delivery。 |