Jenkins基礎篇 系列之-—09 認識鈎子


一、認識鈎子

鈎子(Hook),是系統消息處理機制的一個平台,應用程序可以在上面設置子程序以監視指定窗口的某種消息,而且所監視的窗口可以是其他進程所創建的。當消息到達后,在目標窗口處理函數之前處理它。鈎子機制允許應用程序截獲處理消息或特定事件。

二、GitLab 中的webhook

Git上一般都有專門的webhook配置頁面

實例:利用GitLab webhook來實現觸發Jenkins自動操作

1. jenkins 中安裝插件

  • Gitlab Hook Plugin
  • GitLab Plugin

2. jenkins job 配置

配置源碼管理后,配置對應的構建觸發器,選擇【Build when a change is pushed to GitLab】

 

3. 設置GitLab的webhook

3.1 選擇對應的項目,點擊Settings-->Integrations,

3.2 在打開的Integrations配置頁面中錄入步驟2中URL,Secret Token,其他保持默認設置,點擊Add webhook

3.3 點擊Test,可以測試配置是否成功

三、SVN中的hook

svn的hook機制,跟其他很多類似的工具一樣,hook機制的本身就是在某個具體的時機所觸發的內容,類似於事件驅動的回調

svn在每個代碼倉庫下有一個hooks目錄用於放hook腳本, 目前默認包含了如下9種hook的模板

[root@idcflow2175 hooks]# pwd
/home/svn/csvn/data/repositories/tr2/hooks
[root@idcflow2175 hooks]# ll
-rw-r--r-- 1 svn svn 1977 Jul 1 2013 post-commit.tmpl
-rw-r--r-- 1 svn svn 1638 Jul 1 2013 post-lock.tmpl
-rw-r--r-- 1 svn svn 2289 Jul 1 2013 post-revprop-change.tmpl
-rw-r--r-- 1 svn svn 1567 Jul 1 2013 post-unlock.tmpl
-rw-r--r-- 1 svn svn 3447 Jul 1 2013 pre-commit.tmpl
-rw-r--r-- 1 svn svn 2455 Jul 1 2013 pre-lock.tmpl
-rw-r--r-- 1 svn svn 2786 Jul 1 2013 pre-revprop-change.tmpl
-rw-r--r-- 1 svn svn 2143 Jul 1 2013 pre-unlock.tmpl
-rw-r--r-- 1 svn svn 2780 Jul 1 2013 start-commit.tmpl

參考如下:鈎子腳本就是shell腳本

#!/bin/bash
source /etc/profile
java -jar /root/jenkins-cli.jar -s http://47.104.77.127:8080/jenkins/ -auth test:123qwe build test

注意事項

1. 腳本后綴:以tmpl結尾不起作用。

在Unix/Linux系統下,需刪除tmpl的后綴,而windows則需要將.tmpl改成.bat。修改之后立即起效,無需重新啟動svn服務。

2.使用 chmod 命令設置為可執行權限

3. 由於安全原因,Subversion版本庫在一個空環境中執行鈎子腳本—即沒有任何環境變量,甚至沒有$PATH或%PATH%。由於這個原因,許多管理員會感到很困惑,它們的鈎子腳本手工運行時正常,可在Subversion中卻不能運行。要注意,必須在你的鈎子中設置好環境變量或為你的程序指定好絕對路徑

 參考資料


免責聲明!

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



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