logo头像

Edward.K Thinking

輕鬆使用Azure上的SonarQube整合VSTS


SonarQube這一套程式碼分析軟體,想必沒有人不知道,目前算是世界知名程式碼分析之一,本身這套軟體可以被下載安裝在自家的Server內,或是使用它們雲端服務-SonarCloud,進行對程式碼的分析。不過,要架設私人的SonarQube並不容易,必須安裝SQL ServerWeb Server兩個。但是,SonarQube在掃程式碼時候,又會把程式碼複製一份到SonarQube伺服器上,因此,若是使用SonarCloud,難免會擔心程式碼被移留在第三方。取個折衷方案就是在Azure上建立自己的SonarQube伺服器,並搭配VSTS做到持續整合時候也確保程式碼品質。

安裝Azure SonarQube


為什麼要說輕鬆使用呢,因為在Azure上已經幫你準備好SonarQube的資源安裝檔了。只要在搜尋SonarQube,就可以找到


資源名稱是SonarQube Certified by Bitnami,這個套件安裝後預設是使用免費版的SonarQube,如果,想要升級安裝好的SonarQube,就必須到它的官網進行付費動作,才可以升級它,並得到相對應的功能


選好後,就按下建立,建立方式跟自己建立Azure VM一樣的相關設定


之後,只需要設定相關參數就可以自動建立好SonarQube伺服器,這樣是不是很簡單。在這裡建立的VM會是Linux版本搭配MySQL。等安裝完畢後,就可以登入SonarQube


看到這畫面就表示安裝OK,但是問題來了,登入需要帳號密碼,一開始安裝完畢後去哪邊找到帳號密碼呢?這時候就要到Azure Port上找到剛剛建立的SonarQube的VM。到VM中找到[開機診斷],然後選擇[序列記錄檔],如下圖,就可以找到預設的帳號與密碼


不過建議第一次登入後,還是要修改admin密碼才好

VSTS安裝SonarQube套件


既然有了SonarQube伺服器,再來就是安裝相關套件,要找到SonarQube for VSTS套件,只要到Marketplace輸入SonarQube就可以


安裝完畢後,就可以在VSTS的Task找到這三個套件


以.NET為例,透過這樣流程設定就可以把Code送到SonarQube進行Scan,同時,結果也會被顯示在最後Build完的結果上


其中,比較需要注意的是在於Prepare Analysis Configuration的設定,有幾個點需要注意

  • SonarQube Server Endpoint : 這部分是設定SonarQube的URL位置,且需要在SonarQube內產生一組連線的Token
  • Project Key:必須先在SonarQube建立要掃描的專案名稱的Tag,這邊就是填入在SonarQube專案名稱的名字
  • Project Name:在SonarQube內的專案名字

如果還不熟其他設定,用預設值也是可以的。跑完之後就可以看到SonarQube是否對於這次Build的程式碼是否OK


如果,想要讓程式分析變嚴格,就必須在SonarQube那邊設定好條件就可以。透過雲端服務,要在持續整合中也建立好自動化的程式碼分析就變簡單很多,也不需要花費太多時間去架設

上一篇