我已成功在bitbucket中为Jenkins自由式项目设置了一个webhook触发器,用于测试目的。
不幸的是我的Jenkins项目使用的是Pipeline格式,我无法让Bitbucket触发那种项目;问题似乎是没有Jenkins项目注册从Bitbucket webhook来自的回购中提取,Jenkins回复:
Error: Jenkins response: No git jobs using repository: ssh://git@myhost:7999/xxx/testing-jenkins.git and branches: master No Git consumers using SCM API plugin for: ssh://git@myhost:7999/xxx/testing-jenkins.git
管道项目的设置方式是在给定的存储库(Jenkinsfile
)中找到ssh://git@myhost:7999/xxx/testing-jenkins.git
,方法是使用SCM中的"管道脚本"选项。
因此实际上是一种" git的消费者"对于管道,但Jenkins似乎没有考虑到这一点,可能是因为这不是真正的项目源,而是管道源。
是否有任何Bitbucket和Jenkins Pipeline项目集成的例子?我一直找不到。
答案 0 :(得分:15)
如果您正在寻找完整的Bitbucket和Jenkins Pipeline,我强烈建议您使用Bitbucket Branch Source Plugin。该插件将发现所有分支和Pull请求,并构建所有在repo根目录中拥有JenkinsFile的人。
您还可以使用创建项目作为Bitbucket团队,他将扫描您组织的所有回购:
请参阅CloudBees的官方doc
答案 1 :(得分:8)
我正在努力解决同样的问题。以下是我遵循的要点。
在Jenkins管道工作中,
在BitBucket存储库中,
转到设置>服务
从下拉列表中选择“Jenkins”并添加“添加服务”。
选中'Csrf Enabled'
终点:http://username:apitoken@yourjenkinsurl.com/
你可以在Jenkins home找到用户名和apitoken>人 选择用户并单击configure。在“API令牌”下点击“显示API令牌”按钮,您会看到用户名和apitoken
模块名称:这是可选的。它可以是要观看的任何特定文件或文件夹。
项目名称:Jenkins中的项目名称。
如果作业属于某种文件夹结构,比如说我有'MyTestFolder / MyTestPipelineJob',那么要提到的项目名称是'MyTestFolder / job / MyTestPipelineJob'
令牌:在Jenkins工作中创建的“身份验证令牌”。
你准备好了!!
我提到http://felixleong.com/blog/2012/02/hooking-bitbucket-up-with-jenkins/和我的一些直觉。 :)
答案 2 :(得分:3)
我有同样的问题。我的解决方法只是创建一个自由式项目,可以由WebHook触发,并由该项目完成触发管道。
与此同时,您可以查看Jenkins错误修复: https://issues.jenkins-ci.org/browse/JENKINS-38447
答案 3 :(得分:1)
花费数小时计算出如何在2017年实现这一目标。
在这3个步骤之后,我最终在新提交到bitbucket
之后运行管道作业答案 4 :(得分:1)
我有同样的问题......
原因是使用*/master
作为分支说明符。我需要拼写出来:origin/master
(没有通配符)。
现在效果很好。
答案 5 :(得分:0)
我终于能够在Multi Branch Pipeline中使用Jenkinsfile进行这项工作:
在Bitbucket中,我使用Jenkins-URL,克隆URL创建了一个Webhook,然后在Webhook中放置了以下URL(确切的URL在Jenkins项目中):
http://<jenkins>/git/notifyCommit?url=http://<user>@<bitbucket>/scm/<project>/<repo>.git
当我测试触发器时,结果如下:
No git jobs using repository: http://<user>@<bitbucket>/scm/<project>/<repo>.git and branches:
Scheduled indexing of <repo>
因此它没有触发任何作业,但是触发了多分支扫描,因此我更改后的分支已构建。
答案 6 :(得分:0)
一种简单的解决方案是在Jenkins中使用Generic Webhook Trigger Plugin。
您需要
JENKINS_URL/generic-webhook-trigger/invoke?token=whatever_you_picked
该插件在调用时将为您提供清晰的反馈,从而简化故障排除过程。
由您决定从webhook中选择所需的任何值以克隆正确的存储库,或者在调用存储库时想要执行的操作。