从现在起大约一周,Bitbucket没有(?)向我的Jenkins服务器发送请求。
我把它设置成这样:Endpoint
http://username:apitoken@jenkinshost/
username
= Jenkins中的用户名apitoken
= apitoken连接到Jenkins中的用户名jenkinshost
=我运行Jenkins的主机Project name
是一个项目Token
:我可以在每个项目配置中设置的令牌。
我是根据这个网站做的:http://felixleong.com/blog/2012/02/hooking-bitbucket-up-with-jenkins
。
它确实有效,但现在已经不起作用了。Bitbucket是否改变了什么?我该如何解决这个问题?
7条答案
按热度按时间jslywgbw1#
为了在新提交后构建你的repo,使用Bitbucket Plugin。
只有一件事需要注意:当创建一个POST钩子时(注意它是POST钩子,不是Jenkins钩子),URL在结尾有一个“/”时才起作用。像:
别忘了在作业配置中勾选“当更改推送到Bitbucket时构建”。
dauxcl2d2#
我有一个类似的问题,直到我得到它的工作.下面是完整的集成列表:
1.生成公钥/私钥对:
ssh-keygen -t rsa
1.复制公钥(~/.ssh/id_rsa.pub)并粘贴到Bitbucket SSH密钥中,在用户的账户管理控制台中:
1.将私钥(~/.ssh/id_rsa)复制到具有私钥凭证的新用户(甚至现有用户),在这种情况下,username不会产生任何影响,因此username可以是任何内容:
1.运行此命令测试是否可以访问Bitbucket账户:
ssh -T git@bitbucket.org
1.可选:现在,您可以使用git to将repo复制到您的桌面,而无需passwjord
git clone git@bitbucket.org:username/repo_name.git
1.现在,您可以为Jenkins推送通知和自动构建启用Bitbucket钩子,您将在2个步骤中完成:
1.在您配置的作业/项目中添加身份验证令牌,它可以是任何内容:
1.在Bitbucket钩子中:选择jenkins hooks,并填写以下字段:
其中:
c8ib6hqw3#
我刚刚能够使用Bitbucket中的Hooks选项成功触发构建提交到Jenkins示例,步骤如下(类似于link):
1.生成自定义UUID或字符串序列,保存以备后用
1.(Paste UUID/string Here)for“Authentication Token”
1.保存
1.编辑Bitbucket存储库设置
1.挂钩-〉编辑:端点:http://jenkins.something.co:9009/模块名称:项目名称:项目名称令牌:(在此处粘贴UUID/string)
尽管使用了身份验证,但端点不需要在URL中插入基本的HTTP身份验证。我没有使用模块名称字段,项目名称是区分大小写输入的,在我的测试用例中包括一个空格。构建并不总是立即触发,但相对较快。您可能会考虑的另一件事是禁用“配置全局安全性”中的“防止跨站点请求伪造漏洞”选项进行测试,因为我当启用此选项时,我经历了现有集成的各种API困难。
c7rzv4ha4#
通过迭代,我了解到Token字段和端点中的令牌可以相同。所以我将它们设置为与用户令牌相同,并且它可以工作!还要检查用户是否具有创建作业的权限。
无论如何,你可以检查 * access.log *,看看Bitbucket是否尝试了。
另外还有一个Bitbucket Documentation的链接。也许有一天它会变得更有用。
ergxz8rk5#
我不熟悉这个插件,但我们非常成功地一起使用Bitbucket和Jenkins,但是我们轮询更改而不是从BitBucket推送更改(由于我们的构建服务器隐藏在公司防火墙后面)。如果您仍然对当前方法有问题,这种方法可能对您有用。
这篇关于Setting up SSH for Git & Mercurial on Linux的文档详细介绍了如何通过SSH在构建服务器和Bitbucket之间进行通信。完成后,安装了Git Plugin,转到构建配置并在源代码管理下选择“Git”,然后输入仓库的ssh URL作为仓库URL。最后,在构建触发器部分,选择轮询SCM并将轮询频率设置为您所需的任何频率。
7cwmlq896#
我遇到了这个问题,结果发现问题是我用CamelCase命名了我的仓库。Bitbucket自动将仓库的URL更改为小写,并在webhook中发送给Jenkins。Jenkins然后搜索具有匹配仓库的项目。如果你像我一样,在你的项目配置中的仓库URL中有CamelCase,你将能够 checkout 代码,但是Webhook请求上的模式匹配将失败。
只需将您的repo URL更改为全部小写而不是CamelCase,模式匹配应该可以找到您的项目。
fcy6dtqo7#
好的,我已经成功地建立了Jenkins和Bitbucket服务器之间的连接,但是我在进入ec2服务器上的目录时遇到了问题,我在那里克隆了我的bitbucket存储库〉
下面是我的脚本和Jenkins控制台输出
我无法cd到/home/ec2-user/Sona-Grafana/BitBucket-Repo/observability/soc-poc。它只允许我进入/var/lib/jenkins/test
Docker-compose文件,用于启动在EC2示例上运行的Jenkins服务器