配置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项目
官网:https://jenkins.io/
这里,我使用的是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