❶ SonarQube+Gitlab從零搭建自動化持續代碼掃描質量平台
一、前言我們都知道代碼質量對於一個項目的重要性,如果開發人員迫於業務壓力,一味追求項目開發進度,往往會容易形成大量的「爛代碼」,那麼測試人員勢必會發現很多低級缺陷,甚至連冒煙測試都無法通過,這樣勢必會浪費很多時間,延誤測試進度。假如我們在前期就藉助一些代碼掃描工具,然後針對這些掃描出的問題再進一步分析,這樣輕易地可以發現一些真正代碼問題;
其他的廢話就不多說,今天我們就從gitlab伺服器搭建、Sonarqube安裝配置、gitlab與Sonarqube的整合集成三方面入手,從零搭建開始搭建一個自動化持續代碼掃描質量平台
二、gitlab伺服器搭建我們這里使用的是docker進行搭建,如果你還不知道怎麼安裝docker的可以問度娘或者參考:https://juejin.cn/post/6844903975947354125
1、安裝鏡像
dockerpullgitlab/gitlab-ce2、啟動容器
sudodockerrun-d--hostnamexxxx.xxxx.xx--namegitlab--restartalways--publish30001:22--publish30000:80--publish30002:443--volume$HOME/gitlab/data:/var/opt/gitlab--volume$HOME/gitlab/logs:/var/log/gitlab--volume$HOME/gitlab/config:/etc/gitlabgitlab/gitlab-ce啟動容器之後,我們執行dockerps(查看正在運行的容器列表)
發現我們的gitlab容器已啟動,然後我們訪問:http://localhost:30000/
發現仍然還是訪問不了~~
那是因為gitlab還未啟動,我們需要
3、進入容器
dockerexec-it636347c22ded/bin/bash4、初始化服務
gitlab-ctlreconfigure注意:如果網站訪問不了,可以重啟gitlab服務
gitlab-ctrlrestart5、訪問gitlab網頁
1、下載
註:版本:8.7.1
下載鏈接:https://www.sonarqube.org/downloads/(下載社區版就可以了)
2、解壓進入/bin,效果如下
3、啟動
根據自己的操作系統,進入相應的目錄,我這邊選擇的是macosx-universal-64,然後執行:./sonar.shconsole,效果如下:
可看到SonarQube已啟動成功
4、訪問SonarQube網址,http://localhost:9000/
我前面花了挺大篇幅來介紹gitlab與SonarQube的安裝搭建,為的就是替最後的集成做准備;當然這需要你對Gitlab-CI有一定的了解,如果你在這一塊領域還是個小白,可以網上找相關資料熟悉,或者看我另一篇文章:react項目Jest+Enzyme單元測試集成至gitlab的後半部分;
廢話不多說,我們現在就來介紹如何實現代碼提交、合並前進行自動化代碼掃描並實現PullRequest修飾,具體效果如圖:
如果代碼掃描沒通過,不僅無法進行合並並會通過微信/雲之家進行消息通知!
一、安裝SonarQube社區版分支插件sonarqube社區版不支持branch功能,每個project都只能展示一個分支。要支持多個分支共同展示功能需要安裝sonarqube-community-branch-plugin插件,當然我選擇這個插件還有另外一個重要原因,它可以支持pullRequest修飾的功能
插件版本:v1.7.0(根據不同SonarQube版本選擇對應插件版本)
1、下載對應版本jar包
2、復制jar包到SonarQube下的extensions/plugins/和lib/common/目錄下
3、重啟SonarQube
4、用管理員賬號登陸SonarQube配置,並配置ServerbaseURL
5、關於pullRequest修飾後面介紹
二、GitLab的配置1、重新注冊一個用戶名為SonarQube的用戶
2、登陸超級管理員賬號進行Approve,SonarQube賬號生效
3、登陸SonarQube賬號
4、創建GitLabOAuthapp(將GitLab用作OAuth提供程序的應用程序)
點擊保存,會自動跳轉到另一個頁面,裡面有ApplicationID和Secret信息,千萬記得記得這個要保存起來,SonarQube那裡會用到這兩個信息;
5、生成personalaccesstoken(用於修飾合並請求,留評論的賬號的AccessToken)
點擊創建,之後token生成,記得把這個token記下,SonarQube裡面gitlab的集成需要使用到
到這里,gitlab的配置算是over了~
三、SonarQube的配置❷ 群暉使用Docker安裝並配置GitLab伺服器
通過群暉內置的Docker安裝並配置GitLab伺服器,可以獲取較新版本的GitLab,實現更高效的資源利用。然而,由於GitLab的系統要求較高,官方推薦的最低配置為4GB內存,因此在低於此配置的機器上安裝可能會影響性能。本文主要指導如何在群暉環境下使用Docker安裝GitLab伺服器。
首先,在群暉系統中安裝Docker。若已安裝,只需確保Docker套件已更新至最新版本。在其他Linux發行版(如Ubuntu)上安裝Docker時,參照官方文檔進行操作。
使用Docker安裝GitLab的具體步驟如下:
搜索並下載官方gitlab-ce鏡像。在Docker界面中雙擊鏡像進行下載。
創建容器並配置。在高級選項中調整卷、埠等設置。創建三個卷文件夾:存儲數據的路徑為/docker/gitlab/data,日誌文件存放路徑為/docker/gitlab/logs,配置文件路徑為/docker/gitlab/config。同時,配置埠映射,如30022、30443和30000等。
確保群暉防火牆開放上述埠。同樣,對於Ubuntu等其他Linux系統,也需要開放相應的埠。
安裝完成後,通過埠訪問GitLab,如http://:30000。首次登錄需設置root用戶密碼,後續通過root賬戶登錄並配置參數。
如果設備未公開IP,可能需要藉助花生殼內網穿透服務來訪問GitLab伺服器。
為域名申請SSL證書。通過Let's Encrypt或阿里雲等網站獲取免費或收費的證書。將證書文件(包括cert或pem文件及key文件)上傳至/etc/gitlab/ssl目錄。
編輯gitlab.rb配置文件,修改SSL相關參數。在容器終端或通過ssh登錄後編輯文件。
在gitlab.rb中配置郵箱發送功能,以163郵箱為例進行設置。
修改gitlab.rb中的SSH埠配置,將默認埠22更改為30022,確保SSH訪問正常。
實現手動備份,導出Docker映像和容器。
創建備份腳本,用於自動執行備份操作。將腳本保存在群暉共享文件夾的根目錄下。
在群暉系統中創建計劃任務,通過運行自定義腳本來定期執行備份操作。
備份文件存儲於指定的本地和容器卷路徑。
根據需要,執行備份文件的還原操作。