一尘不染

旧版代码开始了这项工作。没有可用的原因信息

jenkins

在jenkins上总是有一个由“ promote build plugin”触发的额外构建,我不知道为什么…

这是整个管道:

  1. 开发人员将“ feature_branch”提交给github
  2. jenkins触发“ feature_branch”构建以运行所有单元测试

在构建作业上:

  • 如果分支通过了测试,则应转到“代码审查”(我在这里使用promote_build_plugin,在代码视图后手动升级),
  • 我使用“在其他项目上触发/调用”作为触发“部署工作”的操作,仅当它通过代码审查时才能触发。

在deploy-job上:
我可以看到触发了一个新构建,并且feature_branch被合并了,但是总有另一个构建发生,“没有任何更改;旧版代码开始了这项工作。没有可用的原因信息”

我在整个下午用Google搜索了一下,试图解决这个问题,有什么帮助吗?


阅读 188

收藏
2020-07-25

共1个答案

一尘不染

您可能有一个提交后挂钩,该挂钩通过URL或jenkins-cli触发了同一作业

在OP评论后进行编辑:

但是我开始对部署工作感到疑惑,我没有配置“在将更改推送到Github时构建”,而是使用“在另一个项目升级时构建”,所以我认为即使github钩子也被触发了,它不会结束额外的构建?

好吧,这是您的问题^^。“ 触发器/调用构建 ”机制与“ 在升级另一个项目时 构建 ”完全分开。

  • 前者允许从构建步骤或升级(与该 特定 升级绑定)触发新构建。
  • 后者将触发对已配置作业的 任何 升级。它与“ 构建其他项目 ”的构建后配置相反。

此外,构建触发器不进行 AND 运算 ,而是进行 OR运算 。构建何时发生该 那个 那个触发器。从配置中删除“
升级另一个项目时构建 ”,以消除多余的构建。

现在,如果要防止SCM提交挂钩触发生成,则需要确保作业上没有配置SCM轮询。另外,不同的SCM插件也有自己的选项(我知道SVN
SCM插件允许“忽略提交后的钩子”;不知道git SCM插件)

2020-07-25