我遇到以下问题:
我的CI管道正在使用Git插件(3.9.1)在Jenkins(2.157)上运行。
已配置为对托管的Bitbucket服务器(5.9.1)进行的任何更改都会触发构建。 提交通知通过Bitbucket HTTP-Request Hook
发送到目前为止,除非删除功能“分支”,否则此方法仍然有效。
删除分支会触发Git提交ID为“ 0000000000000000000000000000000000000000000000”的构建
如果我不处理,构建将会失败(难怪)。
尽管如此,通知流程仍然有效,并且对存储库的下一次提交再次触发了作业。
我现在不喜欢的事实是,我的历史记录中的构建失败,这并不是真正的错误。 因此,我尝试过滤提交ID为“ 0000000000000000000000000000000000000000000000”的提交通知,将其标记为“分支删除”,并将状态设置为
currentBuild.result = 'SUCCESS'
到目前为止,一切都很好。现在的问题是,CI作业不再被触发。
工作区仍具有上一次提交的内容,我不知道为什么不再收到“提交通知”。
此后自动触发版本会重新启用通知过程。
任何人都可以帮忙或者至少解释一下这里出了什么问题吗? Bitbucket HTTP请求挂钩插件无法“忽略”分支删除(我在2017年为此创建了Issue,但未实现)
更新
经过一番摸索,我发现只有以下一种可以停用通知流程:
currentBuild.result = 'SUCCESS'
currentBuild.result = 'UNSTABLE'
将“状态”设置为以下其中一项时,通知过程仍然有效:
currentBuild.result = 'ABORTED'
currentBuild.result = 'FAILED'
更新2
另一种可能的解决方案是使用Jenkins多分支管道-它们不对分支删除做出反应(除非删除已删除分支的工作区)