Jenkins 項目構建之 常用的構建觸發器 與gitlab 配置webhook


Jenkins 項目構建之 常用的構建觸發器 與gitlab 配置webhook

一:Jenkins 項目構建常用的構建觸發器


1.1 觸發遠程構建

Trigger builds remotely .

通過URL加上相關指令,實現構建。優點在於我們可以使用命令或者代碼去執行,去觸發構建.


進入項目的配置頁面

image-20220214204500640


在構建觸發器部分(Build Triggers)選擇觸發遠程構建(Trigger builds remotely (e.g., from scripts))

輸入自定義的token ,然后復制給出的URL

image-20220214204834889


修改index.jsp 文件,並提交到gitlab(選做,只是為了看結果)

image-20220214205951125


使用Jenkins的地址+復制的URL+自定義token,觸發遠程構建

image-20220214210321010


在項目頁面,可以看到自動構建了一個新工程

image-20220214210644706


訪問tomcat的8080端口,可以看到我們修改的首頁內容

image-20220214210529410



1.2 其他工程構建后觸發

Build after other projects are build

某些環境的構建,相互之間彼此依賴,所以,有些環境必須先安裝。對於大型項目而言,會有多個工程需要構建,此時,就可以編排工程的構建順序,我們可以安排環境工程先構建。


創建一個pre_project的前置工程

image-20220214211239612

image-20220214211318864


配置項目web_demo_pipeline, 在前置項目pre_project構建后,自動觸發構建

image-20220214211442490

image-20220214211552918


修改index.jsp文件,構建前置項目

image-20220214211756375


image-20220214212516067

image-20220214212200282

image-20220214212322983


前置工程pre_project構建成功后,會自動觸發web_demo_pipeline 的構建

image-20220214212419686

image-20220214212744594

image-20220214212444949



1.3 定時構建

Build periodically

定時字符串從左往右分別為: 分 時 日 月 周


一些定時表達式的例子:

  • 每30分鍾構建一次:H代表形參 H/30 * * * * 10:02 10:32
  • 每2個小時構建一次: H H/2 * * *
  • 每天的8點,12點,22點,一天構建3次: (多個時間點中間用逗號隔開) 0 8,12,22 * * *
  • 每天中午12點定時構建一次 H 12 * * *
  • 每天下午18點定時構建一次 H 18 * * *
  • 在每個小時的前半個小時內的每10分鍾 H(0-29)/10 * * * *
  • 每兩小時一次,每個工作日上午9點到下午5點(也許是上午10:38,下午12:38,下午2:38,下午
  • 4:38) H H(9-16)/2 * * 1-5

修改項目配置,選擇定時構建

image-20220214213101317

image-20220214213624257



1.4輪詢SCM

Poll SCM

輪詢SCM,是指定時掃描本地代碼倉庫的代碼是否有變更,如果代碼有變更就觸發項目構建。

Jenkins會定時掃描本地整個項目的代碼,增大系統的開銷


修改項目的配置,選擇輪詢SCM

image-20220214214143531


修改代碼,提交gitlab

image-20220214213841446


掃描到代碼倉庫變化,自動構建

image-20220214214541765

image-20220214214608057



二: gitlab 配置webhook 鈎子服務


2.1 gitlab 開啟 webhook 功能

使用root 賬戶登錄gitlab后台, 點擊扳手img模樣的Admin Area --->Settings --->Network--->Outbound requests

進入后,再勾選"Allow requests to the local network from web hooks and services"

image-20220214222312808

image-20220214222342135

image-20220214222507654

image-20220214222650237



2.2 jenkins 下載插件,配置構建觸發器

Jenkins在下載插件頁面,搜索 gitlab,下載 GitLab 和 Generic Webhook Trigger Plugin 插件

image-20220214222841016


Jenkins 配置項目的構建觸發器為Build when a change is pushed to GitLab. 並復制后面的URL

image-20220214223326991


2.3 gitlab 在項目中添加webhook

Projects-->Explore projects--->選擇項目--->Settings--->Integrations

image-20220214223949282

image-20220214224013797

image-20220214224402782



2.4 進行測試

當前添加webhook頁面--->點擊Test--->Push evects

image-20220214224640202


2.5 webhook報錯解決

如果報錯 Hook executed successfully but returned HTTP 403 . 則 webhook服務成功,但是因為權限不夠,沒有Jenkins的訪問權限

image-20220214224900258


在Jenkins頁面,Manage Jenkins --> Confifure System--->

image-20220214231821797

去除 Enable authentication for '/project' end-point 的勾選,不用認證,再將下方的Gitlab connections 刪除

image-20220214231913466

image-20220214231928168

再回到之前的測試頁面,再次進行測試

image-20220214232333077



2.6 進行webhook 構建

更改開發環境代碼,提交

image-20220214232447247


Jenkins自動構建並發布

image-20220214232957251

image-20220214233006213


免責聲明!

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



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