对于Jenkins管道,Bitbucket挂钩和Maven发布插件无限循环感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解jenkinsmaven插件,并且为您提供关于BitBucketJe
对于Jenkins管道,Bitbucket挂钩和Maven发布插件无限循环感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解jenkins maven插件,并且为您提供关于BitBucket Jenkins不会自动生成、Bitbucket Server Webhook到Jenkins:错误:Jenkins响应:没有使用存储库的git作业、BitBucket Webhook在发布给Jenkins时给出了Crumb问题、Bitbucket 触发内网 Jenkins Build的宝贵知识。
本文目录一览:- Jenkins管道,Bitbucket挂钩和Maven发布插件无限循环(jenkins maven插件)
- BitBucket Jenkins不会自动生成
- Bitbucket Server Webhook到Jenkins:错误:Jenkins响应:没有使用存储库的git作业
- BitBucket Webhook在发布给Jenkins时给出了Crumb问题
- Bitbucket 触发内网 Jenkins Build
Jenkins管道,Bitbucket挂钩和Maven发布插件无限循环(jenkins maven插件)
我还没有找到任何有关此的信息,所以我希望你们能在这一方面帮助我
我在bitbucket中托管了一个maven项目,该项目的BitBucket WebHook指向someurl / bitbucket-hook
/,此钩子触发由具有以下结构的管道定义的我的项目的构建:
node { stage ''Checkout'' git url: ''https:...'' def mvnHome = tool ''M3'' #Various stages here ... stage ''Release'' sh "${mvnHome}/bin/mvn -B clean install release:prepare release:perform release:clean"}
问题是maven版本插件将更改推送到BitBucket,这又触发了jenkins脚本,使构建无限循环,是否有办法防止这种情况发生?
我尝试在詹金斯(Jenkins)设置一个安静的时期,但没有成功
答案1
小编典典从我的角度来看,您应该具有用于构建和发布的特定作业,并且应该手动触发发布作业。无论如何,如果出于某种原因让他们参加工作,则可以检查上一次提交的消息:
node { git ''https...'' sh ''git log -1 > GIT_LOG'' git_log = readFile ''GIT_LOG'' if (git_log.contains(''[maven-release-plugin]'')) { currentBuild.result = ''ABORTED'' return } ... // continue with release or whatever}
BitBucket Jenkins不会自动生成
在我的詹金斯上,我配置了:
源代码管理
Git存储库:https :
//bitbucket.org/username/project.git
凭据:用户名/密码
建造者触发器
将更改推送到BitBucket时生成
在我的BitBucket Webhooks上:
http://Jenkins.URL:8080 / bitbucket-hook
我尝试将小的更改推送到.txt文件,但是Jenken不会自动生成。如果我手动单击“立即构建”,则显示成功。
可能是什么问题呢?
在bitbucket存储库中,该项目很简单。我只有一个文本文件要测试。我认为只要对文本文件进行任何更改,它都应该触发Jenkins构建。
编辑:
在Jenkins的系统日志中,它显示“轮询尚未运行”。但是在Bitbucket Webhook请求日志中,我可以看到所有请求。
答案1
小编典典如@Adrian所述,您仍然需要选择“轮询SCM”。这有点不直观,但是当BitBucket
Webhook向Jenkins发送请求时,Jenkins将轮询所有引用了所做更改的BitBucket存储库的作业的更改。您可以为轮询设置较长的时间间隔,例如@monthly,因为您不需要Jenkins的计划来触发轮询。进行更改后,web挂钩将立即处理该问题。
Bitbucket Server Webhook到Jenkins:错误:Jenkins响应:没有使用存储库的git作业
如何解决Bitbucket Server Webhook到Jenkins:错误:Jenkins响应:没有使用存储库的git作业?
是的,您必须在Jenkins Job配置的Build Triggers部分中检查Poll_SCM- 我可以确认这一点。我正在做与您相同的事情,这就是我如何使其起作用的方法-您可以在Atlassian网站上找到此类确认
解决方法
我已经在Bitbucket服务器中将Webhook安装到Jenkins for
Bitbucket插件。主要目标是在提交后将触发詹金斯构建。
安装后,我启用了插件:jenkins-url:https:// url / jenkins ssh:ssh @
git ..(在SCM插件jenkins作业中使用了相同的命令)。
詹金斯工作正常(git clone等正常工作),但插件不工作。当我在jenkins webhook插件上单击测试时,它显示了我:
Error: Jenkins response: No git jobs using repository: ssh://git@xx.git t and branches: master
网址正确。因此,它用于我的詹金斯工作(和分支主管)。我什至在jenkins作业中从错误中复制了URL作为URL,它仍然能够克隆存储库。我会忘记什么?
编辑:
我发现一些信息,您应该在工作中启用SCM轮询(即使每年进行一次轮询)。仅此插件有效吗?这是正常行为吗?(这似乎解决了我的问题)
BitBucket Webhook在发布给Jenkins时给出了Crumb问题
假设您以预推送脚本的形式触发作业,如果它抛出了面包屑错误,则需要在Jenkins中创建个性化的API令牌,并且需要将其嵌入到从Bitbucket到Jenkins的API调用中。
请参考本文以生成令牌-https://support.cloudbees.com/hc/en-us/articles/115003090592-How-to-re-generate-my-Jenkins-user-token
Bitbucket 触发内网 Jenkins Build
在 Jenkins 上添加一个用来自动构建的用户: autobuilder 如果需要,你可以调整 autobuilder 的用户权限 系统管理 -》Configure Global Security -》 授权策略 -》项目矩阵授权策略
在项目中我们需要开启 "触发远程构建", 并输入一个 "身份验证令牌",该值你可以从 https://randomkeygen.com/ 轻松的生成一个合格的身份验证令牌。 我们可以在红色方框处获得触发远程构建的 URL, 替换 TOKEN_NAME 的值为: http://192.168.0.218:8888/job/test-bitbucket/build?token=8PwPjSxOd1huEQZYpDr0qQJrCndcfxgu
我们还需要为这个 URL 添加认证信息,使用 autobuilder 用户登录 jenkins 服务器中,点击右上角 "autobuilder" -》"设置" -》“Show API Token” 获得该用户的认证信息。 获得上面的信息后后就可以拼出完整的 URL : http://autobuilder:f245bb703a1b39594d1f4f48784ddd27@192.168.0.218:8888/job/test-bitbucket/build?token=8PwPjSxOd1huEQZYpDr0qQJrCndcfxgu
可以通过使用 curl 命令来测试
curl http://autobuilder:f245bb703a1b39594d1f4f48784ddd27@192.168.0.218:8888/job/test-bitbucket/build?token=8PwPjSxOd1huEQZYpDr0qQJrCndcfxgu
公司使用的 bitbucket 是在外网上的,内部的 Jenkins 无法被 bitbucket 访问,公司内部的公网 IP,我们把公司的 IP 的 8888 端口通过路由器进行 NAT 映射到 192.168.0.218 的 8888 端口上 然后在外网的机器上使用 curl 来进行测试
curl http://autobuilder:f245bb703a1b39594d1f4f48784ddd27@替换你的公网IP:8888/job/test-bitbucket/build?token=8PwPjSxOd1huEQZYpDr0qQJrCndcfxgu
测试成功后,开始对 bitbucket 进行配置,首先添加插件,点击 "管理" -》"寻找新插件",搜索 "hook" , 安装 "HTTP-Request Hook for Bitbucket Server"
进入项目中,点击 "Settings" -》“Hooks” -》启用 "HTTP Request Post-Receive Hook", 填入信息 #### 注意:Username 填入 autobuilder,Password 填入 用户的认证信息
当你向该 Bitbucket 项目的代码库中提交代码,Bitbucket 在收到代码推送后会使用我们在 Hooks 中设置的 URL 发送 http 请求,内网中的 Jenkins 服务器收到请求后触发一个新的 Build。
关于Jenkins管道,Bitbucket挂钩和Maven发布插件无限循环和jenkins maven插件的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于BitBucket Jenkins不会自动生成、Bitbucket Server Webhook到Jenkins:错误:Jenkins响应:没有使用存储库的git作业、BitBucket Webhook在发布给Jenkins时给出了Crumb问题、Bitbucket 触发内网 Jenkins Build等相关知识的信息别忘了在本站进行查找喔。
本文标签: