Zadig - SonarQube,爲開發過程安全保駕
高質量的代碼、快速拉起的環境基礎設施、充分的業務質量保證... 每一點都能爲產品成功交付加分。在開發源頭對代碼質量投入,不管是識別代碼風險防微杜漸,還是建立團隊研發規範,都是一件收益遠大於成本的事情。
社區小夥伴對此的呼聲也越來越高,在六一兒童節發佈的 v1.12.0 版本中,Zadig 支持集成掃描工具啦,爲代碼質量提供掃描服務,爲開發過程安全保駕。
本文以最爲常用的 SonarQube 掃描工具和開源 Zadig 代碼倉爲例爲大家進行介紹。
項目背景
-
源碼:koderover/zadig [1]
-
目標:對日常高頻變更的 pkg [2] 目錄下代碼進行掃描,及時嗅探代碼裏的「壞味道」
如何使用
只需要 3 步,便可在 Zadig 中獲得代碼掃描的能力,具體操作如下。
系統管理員:集成 SonarQube
- 登錄 SonarQube -> 點擊右上角賬號頭像 ->
My Account
- 切換到
Security
頁面,在Generate Token
中填寫 Token 名稱後點擊右側的Generate Token
按鈕即可。
- 在 Zadig 中依次訪問 系統設置 -> 集成管理 -> Sonar 集成,填寫 SonarQube 服務器地址以及 Token 信息後保存。
工程師:配置代碼掃描
進入項目,新建代碼掃描。
配置細節如下:
名稱
:zadig-scan
掃描工具:
SonarQube
掃描環境:
sonar:latest
sonar 地址:
上一步中集成的 SonarQube 服務器地址
代碼信息:
Zadig 代碼庫
參數配置:
參考 SonarQube 文檔 [3],本例中配置內容如下
# Sonar 參數
sonar.projectKey=zadig-pkg
sonar.projectName=zadig-pkg
sonar.sources=./pkg
sonar.go.file.suffixes=.go
其他代碼掃描工具可參考 自定義構建鏡像 [4],先將掃描工具集成進去,掃描工具選擇其他,掃描環境中指定自定義的鏡像,輸入自定義掃描腳本即可實現。
工程師:執行並分析結果
點擊 執行 按鈕觸發代碼掃描運行。
待代碼掃描任務執行完畢,點擊 查看 鏈接。
系統會自動跳轉到 SonarQube 系統中。工程師可查看掃描結果並據此對代碼中的問題進行修復,做到有的放矢,從源頭提高代碼質量,降低交付風險。
Webhook 一觸即發
除了在 Zadig 上手動執行掃描任務檢查代碼質量,還可以基於相關代碼變更事件配置觸發器,利用 Webhook 的能力自動執行代碼掃描。
- 配置代碼掃描,添加觸發器。
- 當滿足觸發條件的事件發生時(比如 pull request),代碼掃描會被自動執行,減少人工介入成本。
掃描結果及時反饋
代碼庫變更自動觸發代碼掃描後,掃描結果將會反饋到代碼倉庫中,目前支持 GitLab 代碼源,其他代碼源也進一步支持中。及時的代碼質量反饋可以爲團隊做代碼審查、代碼合併等提供數據參考,讓質量溶於每一行代碼。
此外,代碼掃描結果自動通知到 IM 的功能也在計劃中,無需切換系統即可便捷地獲得代碼質量反饋結果,打通工程師日常開發工作的最後一公里。
參考鏈接:
[1] https://github.com/koderover/zadig
[2] https://github.com/koderover/zadig/tree/main/pkg
[3] https://docs.sonarqube.org/latest/analysis/analysis-parameters/
[4] https://docs.koderover.com/zadig/v1.12.0/settings/custom-image/
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/od7wmTIrCXATxRDzXOlnJg