第五篇 Jekins集成Gitlab代碼質(zhì)量掃描

GitLab + Jenkins集成用戶提交并推送代碼至GitLab時,說明代碼已經(jīng)更新,期待和此GitLab關(guān)聯(lián)的Jenkins能夠開始持續(xù)集成和構(gòu)建以及部署等流水線的執(zhí)行,這時就可以使用GitLab的Webhook進行設(shè)定。
操作步驟如下
一、創(chuàng)建Gitlab私人令牌
點擊?
右側(cè)個人頭像
,下拉中點擊?Setting(設(shè)置)
,并在?設(shè)置界面
?中點擊?私人令牌

輸入?
令牌名稱
?并勾選?api
?范圍,點擊?創(chuàng)建個人令牌

點擊創(chuàng)建后,提示個人令牌,一定要先保存好,一刷新頁面就沒了。
這里可以撤銷,刪除token,如果該token已經(jīng)關(guān)聯(lián)到Jenkins,要刪除該token,要連帶刪除Jenkins里的GitLab API token,否則Jenkins里的GitLab API token失效不能用。
二、安裝Gitlab插件
在?
Jekins首頁
,點擊左側(cè)?Manage Jenkins
,點擊?Manage Plugins(插件管理)

在?
Available plugins(可選插件)
?中?篩選Gitee
,點擊安裝,成功之后?重啟Jenkins服務(wù)

三、添加Gitlab API令牌憑據(jù)
在?
Jekins首頁
,點擊左側(cè)?Manage Jenkins
,點擊?Manage Credentials(憑據(jù)管理)

在?
全局
?下拉中點擊?Add credentials(添加憑據(jù))

選擇?
Gitlab API 令牌
?類型,輸入?Gitlab私人令牌
,點擊?Create

添加成功

四、添加Gitlab賬號憑據(jù)
在?
Jekins首頁
,點擊左側(cè)?Manage Jenkins
,點擊?Manage Credentials(憑據(jù)管理)

在?
全局
?下拉中點擊?Add credentials(添加憑據(jù))

選擇?
Username with password
?類型,輸入?Gitlab賬號和密碼
,點擊?Create

添加成功

五、配置Gitlab鏈接信息
在?
Jekins首頁
,點擊左側(cè)?Manage Jenkins
,點擊?Configure System(系統(tǒng)管理)

輸入?
Gitlab 鏈接
信息,選擇?私人令牌
,點擊?測試鏈接
,成功之后,先點擊?應(yīng)用
,最后點擊?保存

六、配置全局工具
6.1、配置工具入口
在?
Jekins首頁
,點擊左側(cè)?Manage Jenkins
,點擊?Global Tool Configuration(全局工具管理)

6.2、配置JDK

6.3、配置Git執(zhí)行路徑

6.4、配置SonarQube Scanner

6.5、配置Maven

6.6、配置NodeJS

對應(yīng)操作系統(tǒng)中也需要安裝Git,下圖是Windows操作系統(tǒng)安裝信息

七、創(chuàng)建自由風(fēng)格任務(wù)
7.1、創(chuàng)建任務(wù)
在?
Jekins首頁
,點擊左側(cè)?新建Item(新建任務(wù))

創(chuàng)建一個自由風(fēng)格的項目

7.2、填寫基礎(chǔ)信息
在?
General
?中輸入描述

在 General 中輸入自定義的工作空間

自定義的工作空間為:
E:\work\Jenkins\workspace\com-luckyun2.0\com-luckyun-base
拉取代碼效果圖

7.3、配置Gitlab代碼拉取信息
在?
源碼管理
?中輸入Gitlab信息

7.4、配置自動觸發(fā)構(gòu)建信息
不需要自動構(gòu)建時,可以省略此項配置
7.4.1、GitLab Webhook特性
在GitLab的工程項目中,使用Webhook可以使得使用者在推送代碼或創(chuàng)建Issue的時候可以觸發(fā)一個事前配置好的URL,而推送代碼還是創(chuàng)建Issue,抑或是合并請求,使用者可以自行在GitLab中進行定制,GitLab會向設(shè)定的Webhook的URL發(fā)送一個POST請求。整體來說,Webhook指的是用戶定義的HTTP回調(diào),GitLab的Webhook在使用上通常具有如下特性:
由某些事件所觸發(fā),比如提交代碼或者推送代碼
一般會觸發(fā)用戶定義的URL,事件觸發(fā)后,由GitLab發(fā)送HTTP請求
Webhook可以從外部更新或者部署
在GitLab CE版本中可以對每個項目進行設(shè)定,在EE版本中可以對每個項目或者每個組Group進行設(shè)定
設(shè)定方式:項目的 Settings ? Webhooks
7.4.2、Jekins中配置構(gòu)建觸發(fā)器
在?
構(gòu)建觸發(fā)器
?中選擇推送到Gitlab時構(gòu)建
,并選擇觸發(fā)事件

在
高級
中生成秘密令牌

7.4.3、Gitlab中配置webhook
點擊?
Settings
,點擊?Integrations
,輸入Jekins 構(gòu)建時的URL和密碼令牌

點擊
添加webhook

這里的URL就是Jekins中配置觸發(fā)器時的獲取
token的配置同理
7.4.4、Gitlab驗證結(jié)果
使用Webhook所提供的
Test
按鈕,進行結(jié)果的正確性驗證

驗證之后結(jié)果信息如下所示

至此,當開發(fā)人員通過Gitlab 推送、標簽推送或合并請求時,會自動觸發(fā)Jenkins構(gòu)建任務(wù)。
7.5、配置代碼分析信息
在?
Build Steps
?中 增加?Execute SonarQube Scanner
?構(gòu)建步驟
,輸入?sonar分析屬性
?信息

Analysis properties配置信息
Java
Js
7.6、保存
最后,先點擊?
應(yīng)用
,再點擊?保存

八、執(zhí)行任務(wù)
8.1、從列表頁啟動
在?
Jekins首頁
,在對應(yīng)任務(wù)列表中選擇對應(yīng)任務(wù)執(zhí)行

8.2、從詳情頁啟動
在?
Jekins首頁
,在對應(yīng)任務(wù)列表中 點擊任務(wù)進入任務(wù)詳情界面,點擊?Build Now
?執(zhí)行任務(wù)

九、SonarQube掃描結(jié)果
由任務(wù)詳情頁,進入?
SonarQube
平臺

項目列表

項目總覽
