1. 程式人生 > >webhook+jenkins實現分支監控(郵件+呼叫外部http請求)

webhook+jenkins實現分支監控(郵件+呼叫外部http請求)

需求:對於特殊分支上的push操作需要有監控提醒,現在程式碼倉庫用的是gitlab。

假設:大家看這篇文章的時候對於gitlab已經有一些

實現:

1. 去gitlab上設定一個webhook的連結,關聯到對應的jenkins專案。

    

連結填寫後,點選add webhooks。新增成功後下面列表會有連結,但這裡不一定就可以關聯成功。

點選下面的test,gitlab會去請求jenkins連結,如果成功返回200;如果返回403,一般是jenkins的許可權問題。


這裡取消勾選,wehbook test一般就可以了。如果還是不行,可以再自己搜素一下,答案很多。不要懶==

到此,gitlab需要做的工作就已經完成了。

2.jenkins相關操作:

  1.外掛外掛外掛!!

     首先你得有一個管理員賬號!

     git hook; http request(如果不打算呼叫第三方介面可以不裝);Editable Email Notification(用於自定義郵件模板)

     剛開始安裝git hook外掛的時候,莫名報錯,一直fail。後來重啟後,再安裝就可以了。不知道為啥, 但重啟大法就是生效了。

  2. jenkins配置

     

  第一個框填寫gitlab專案的地址;第二個框填你自己想監控的分支。

  3.配置通知格式

     http請求(http request外掛安裝好)

      

  幾點注意事項:

   1.目前utf-8的編碼只能通過custom headers來指定

   2.我之前遇到過一個很頭疼的問題,Body裡只要傳了中文,解析出來就是問號,我編碼設定的也正常。搞了很久==,後來升級了下外掛版本就可以了,一般新下載的都沒有問題,有問題的可能是之前有下載過沒有更新的。

   3. body裡如果想傳一些全域性變數,比如JOB_NAME是可以的,但是像commit_author,change並不能拿到,這點也讓我很頭疼,目前還沒有解決。如果有小夥伴知道解法,歡迎賜教!

4. 配置郵件傳送

    不得不說,Editable Email Notification 這個外掛還是很強大的。你幾乎 can do anything you want.

    可以在content token reference這裡查詢提供的變數。

     

       郵件內容是html格式的,網上模板很多,自己找吧,啊,不想寫了,就先這些。有問題歡迎討論。