GVKun编程网logo

Jenkins管道,Bitbucket挂钩和Maven发布插件无限循环(jenkins maven插件)

16

对于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插件)

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不会自动生成

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作业

如何解决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问题

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

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等相关知识的信息别忘了在本站进行查找喔。

本文标签: