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:latestsonar 地址:
上一步中整合的 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 的功能也在計劃中,無需切換系統即可便捷地獲得程式碼質量反饋結果,打通工程師日常開發工作的最後一公里。
- 基於 Zadig 的 GitOps 實踐
- 極速 Zadig 構建效率是這樣煉成的
- 主機基礎設施如何使用 Zadig 做持續交付
- Zadig 環境負載均衡:0 人工干預,極速部署
- 打通了!Jira Zadig 實現需求與研發過程追蹤
- 雲原生 DevOps 現狀調研問卷徵集:KodeRover 聯合 OSCHINA 推出
- Zadig v1.13.0 相信開放的力量,工作流連通一切價值
- 飛書影片會議端到端整合測試工程實踐經驗總結 - Zadig 應用案例
- 在解決了 2961 個使用者反饋後,我做出了這樣的改變...
- 基於 Ingress Controller 在叢集外訪問 Zadig 自測環境(最佳實踐)
- iMile 利用 Zadig 多雲環境周部署千次,跨雲跨地域持續交付全球業務
- 穩!上千微服務接入 Zadig 的最佳姿勢(Helm Chart 篇)
- 穩!上千微服務接入 Zadig 的最佳姿勢(K8s YAML 篇)
- Zadig 洞態 IAST:讓安全溶於持續交付
- TT 語音落地 Zadig:開源共創 Helm 接入場景,環境治理搞得定!
- 00後雲工程師用 Zadig 為企業研發開源節流
- Zadig 構建究竟有何強大?一起來實踐
- 妙盈科技全面實施 Zadig 擁抱雲原生
- Zadig SonarQube,為開發過程安全保駕
- Zadig v1.12.0 推出 VS Code 外掛,全面支援 GitOps ,好工具就要到最後一公里