我已经为 3 个 jenkins 作业设置了 Gitlab Jenkins 与 3 个 webhook 的集成,并在构建后操作中设置了“将构建状态发布到 Gitlab”。面临的问题如下所述。
设置:
Jenkins 版本 V2.152,Gitlab 版本 11.7.0-ee,3 个 Webhooks 用于 3 个 jenkins 作业
詹金斯自由泳项目
Jenkins Git:分支说明符是 origin/${gitlabSourceBranch}
Jenkins 触发器:选择“将更改推送到 GitLab 时构建”,其中包含推送事件、打开的合并请求事件、在推送到源分支和评论时重建打开的合并请求
问题:
管道永远处于挂起状态:如果没有 jenkins 作业正在运行并且更新了一个分支,则创建一个提交的管道来跟踪所有 3 个 jenkins 作业。但是,如果任何 jenkins 作业正在运行并且分支已更新,则会为相同的提交 ID 创建三个单独的管道,一个用于一个 jenkins 作业。在这种情况下,一旦任何树 jenkins 项目开始运行,只有最新的管道将其状态更改为正在运行,现在开始跟踪所有 3 个 jenkins 作业,而其他 2 个管道永远处于挂起状态,它们永远不会运行也不会被取消. 我还选择了自动取消冗余、待处理的管道功能,但它正在工作。
预期的:
在 Gitlab 中,它应该始终为每个作业创建一个单独的管道并跟踪它们,或者应该为每个提交创建一个管道并跟踪所有作业。
如何避免挂起的管道永远不会改变其状态?或者如何使自动取消冗余、待处理的管道功能运行?