配置 SonarQube
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 建置叢集的名稱。 | 必要 |
dev-region | 文字 | 管理叢集的 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 工具整合支援下列配置參數,您可以與 Toolchain HTTP API 及 SDK 搭配使用。
您必須在要求內文中以 sonarqube
值指定 tool_type_id
內容。
參數 | 用法 | 類型 | Terraform 引數 | 說明 |
---|---|---|---|---|
blind_connection | 可選,可更新,Default: false |
布林 | blind_connection | 設為 true 以指示 Continuous Delivery 忽略此整合的配置驗證。 此外,如果 SonarQube 伺服器無法在公用網際網路上定址,則設為 true 。 |
dashboard_url | 必要,可更新 | 字串 | server_url | 此工具整合的 SonarQube 伺服器儀表板的 URL。 在圖形使用者介面中,當您按一下 SonarQube 工具整合卡時,瀏覽器會移至這個儀表板。 |
名稱 | 必要,可更新 | 字串 | 名稱 | 此工具整合的名稱。 |
user_login | 選用,可更新 | 字串 | user_login | 用於向 SonarQube 伺服器進行鑑別的使用者 ID。 |
user_password | 選用,可更新 | 密碼 | user_password | 用來向 SonarQube 伺服器進行鑑別的密碼或記號。 您可以對此參數使用工具鏈密鑰參照。 如需密鑰參照的相關資訊,請參閱 在 Continuous Delivery。 |