GitLab觸發Jenkins自動構建


前言:

通過Jenkins與GitLab聯動,當gitlab倉庫中代碼發生變動(增、刪、改),自動觸發Jenkins自動構建發布,實現自動化運維。

思路:

  1. 安裝部署gitlab、安裝部署Jenkins
  2. jenkins安裝功能插件
  3. 安裝git工具
  4. Jenkins job配置構建觸發器
  5. gitlab倉庫配置webhooks

一、安裝部署Gitlab、Jenkins

1、GitLab的安裝流程如下:(點擊跳轉)
GitLab安裝部署教程
2、Jenkins的安裝流程如下:(點擊跳轉)
Jenkins安裝部署教程

二、Jenkins安裝插件

必備的插件是Git、GitLab、GitLab Hook;當然還可以加上Credentials Binding,來儲存我們的明文密碼,提高安全性。

插件安裝完畢后,添加相應功能

方式一、通過http方式鏈接

image

方式二、SSH密鑰類型

SSH免密登錄示意圖:
image
1、使用root用戶生成公鑰和私鑰

ssh-keygen -t rsa

在/root/.ssh/目錄保存了公鑰和使用
image
id_rsa:私鑰文件

​ id_rsa.pub:公鑰文件

2、把生成的公鑰放在Gitlab中

​ 以root賬戶登錄——》點擊頭像——》Settings——》SSH Keys

​ 復制剛才 id_rsa.pub文件的內容到這里,點擊“Add Key”
image
3、把生成的私鑰放在Jenkins中

打開全局憑證——》添加憑證
image
image

配置新項目,選擇好合適的git地址 和對應的憑證
image

三、安裝Git工具

為了讓jenkins支持從gitlab拉取源碼,需要在服務器上安裝Git工具

1、Linux安裝Git

yum install git -y 安裝
git --version 安裝后查看版本

2、進入jenkins設置

接着登錄jenkins界面,依次打開"系統管理" -> "Global Tool Configuration" 全局工具配置-> "Git" -> "Path to Git executable",

在此處填入"whereis git"查詢出的地址 + "/bin/git" (如上面"whereis git"的地址為"/usr/local/git",則應該填入 "/usr/local/git/bin/git") 並保存。
image
最后再在Jenkins新建項目中源碼管理Repository URL添加git地址,嘗試多刷幾次就可以了。
image

3、安裝指定版本的git或者最新版git

有時候我們安裝的git不是最新版本。可能會導致添加git倉庫失敗,例如以下情形:
image

原因分析:這是由於git客戶端版本過低造成的!或者未安裝git
Jenkins本機默認使用"yum install -y git" 安裝的git版本比較低,應該自行安裝更高版本的git。

我們可以從GitHub上下載最新的源碼編譯后安裝最新的git
這里可以參考這位作者的博客
git安裝
這里的描述及其部署都很詳細,所以我就不過多贅述了O(∩_∩)O哈哈~

四、Jenkins job配置構建觸發器

1、進入jenkins選中需要配置的項目,進行設置
image

image
Enabled GitLab triggers 允許gitlab觸發

push events 允許push 只要gitlab收到push操作 構建就執行 觸發事件

Opened Merge Request Events 合並請求 合並操作也可以觸發

只有兩種方式可以觸發 push上去觸發構建, 執行merge請求 把代碼合並進來了

2、點擊上圖中的高級,可以進行深度設置
image
允許哪個分支 , 當哪個分支收到push或者merge請求,默認為所有分支 收到觸發制的時候 就是執行job

可以單獨定義 只允許master分支 才構建

根據自己需求定義

token作用,訪問webhooks URL 需要攜帶token過來,才能觸發,有url也不行,有url和token才觸發

3、將這里配置生成的webhook URL配置到Gitlab中,就完成了。
image

五、gitlab倉庫配置webhooks

1、開啟webhook功能

使用root賬戶登錄到后台,點擊Admin Area——》Settings——》Network
image
·

2、勾選“Allow requests to the local network from web hooks and services”
·
image

3、在項目添加webhook

點擊項目——》Settings——》Integrations
此處的URL就是第四步中jenkins觸發器生成的,復制進去即可
image

4、點擊Test可以對我們配置的webhook進行測試驗證
image

5、注意:以下設置必須完成,否則會報錯!

Manager Jenkins ——》Configure System
image

6、如圖所示即為配置成功
image

六、效果演示

我們在 jenkins job 主頁面看到構建任務被觸發。

在gitlab 模擬一個push請求過來, jenkins自動觸發構建
image

觸發成功!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM