配置Bitbucket到 Jenkins的WebHook
2016-9-14
環境:
Bitbucket 版本4.9?(https://blog.bitbucket.org/)
Jenkins 版本2.7.2
目標:
1. 用BitBucket(關鍵詞:在線、代碼、託管、Mercurial、兼容Git、https://bitbucket.org/)管理源碼
2. 用Jenkins做一些 代碼提交後的工作,如代碼審查、編譯、部署等
3. 使用WebHook,代碼提交後, Bitbucket 自動發送一個web請求到Jenkins,激活後續動作
關鍵點:
1) 需要配置兩個Token,一個是用於身份的,一個用於項目的
2)Bitbucket網上的教程,都是針對老版的,現在配置選項在service部分
配置過程:
1)在BitBucket 上創建一個倉庫
可以參考http://www.open-open.com/lib/view/open1420034265890.html,
這是一個入門教程
1.1)在這裏,我創建的倉庫的名字是 teest,類型是Git,語言類型未選
1.2) 創建代碼,並上傳,
以下是一些用到的 git 命令
gitinit gitconfig user.name "Yongshi Xu" gitconfig user.email "!@#$%^&*@gmail.com" gitconfig -l gitclone [email protected]:YongshiXu/teest.git gitstatus gitadd . gitcommit -m 'webhook' git pushorigin master |
說明,略過了配置私鑰 等其他部分。
2) 創建Jenkins項目
這裏,我使用的是docker容器技術, 下載了jenkins的鏡像,啓動
docker pull jenkins docker run-d -p 80:8080 jenkins |
2.1) 創建一個新的Job,名字也是 teest, 類型是FreeStyle.
2.2) 接下來,需要根據實際情況,進行一些項目的個性化配置
3) 配置
3.1)獲取Jenkins 當前用戶的Token
菜單順序:Jenkins -> People -> Configure -> API Token
點擊後,可以看到文本框中,有一串比較長的字符串,拷貝。
3.2) 配置Jenkins 項目的 源碼部分
菜單項:Jenkins-> All -> (選擇 Item) ->Configure
有兩個主要步驟,分別是配置Repository URL, Credentials
-
Repository URL
示例:https://bitbucket.org/YongshiXu/teest.git,
如果填寫錯誤,輸入框的下方,會顯示一些紅色的提示。
-
Credentials
以下這張截圖, 顯示的是,簡單的 用戶名/密碼的配置方式
第三個輸入框:可以給每個驗證方式,分配一個ID,便於在多個驗證方式間選擇。
以下的截圖,展示SSH 公鑰/私鑰的認證方式
3.3 配置Build Triggers 的 Token
這個比較簡單,主要是下方的提示信息,容易造成誤解
輸入框中,就是填入一串“隨機”的字符串
3.4 配置Bitbucket 倉庫 的WebHook
菜單項:Settings -> INTEGRATIONS -> Services
並非Settings ->INTEGRATIONS -> Webhooks
截圖中,有4個輸入框,需要注意的是第1個,和第4個。
這個就是WebHook的URL:格式爲: http://username:[email protected]/ 在這個例子中,具體爲: http://admin:[email protected]/
這個選項,可以配置針對項目的某個文件夾操作,如填入src/ 那麼,只在項目目錄src下,有文件變化時候,才激活WebHook
具體在這裏,就是teest
這個串,就是Build trigger配置中填入的自定義串 |
4. 效果
爲了觀測效果,定義了 編譯 Build 下的 執行腳本,
然後,修改代碼提交,觀測效果。
4.1 定義執行腳本
截圖如下:
4.2 git push 後的效果
可以看到,左側菜單欄目下, “Build History”部分,會很快出現一個正在build的項目。
查看,所有輸出,菜單項:選擇具體的build 編號後,左側選擇 Console Output。
截圖如下:
參考:
1.http://felixleong.com/blog/2012/02/hooking-bitbucket-up-with-jenkins
2.https://blog.bitbucket.org/2015/06/24/the-new-bitbucket-webhooks/
3.https://confluence.atlassian.com/bitbucket/jenkins-service-management-251724180.html