jenkins:不想触发Git标签(无工作区)

我有用户需要触发Github(企业)推动jenkins作业。 所以我只能访问Webhooks和Git服务钩子。 即使唯一的提交是一个标签,这些钩子也会被推送。

一些用户自动标记他们的构build,如果他们成功,这个自动标记会导致一个新的webhook触发,并触发他们的构build。

通常我们通过使用git插件“排除用户”部分并在该列表上设置用于执行标记的服务帐户列表来避免这种情况。

然而,随着我们新的短暂构build农场的出现,我们不再维护工作空间(我们将节点按需要旋转为Docker容器)。 所以这个方法不再有效(参见: https : //issues.jenkins-ci.org/browse/JENKINS-29282 )。

我的临时解决方法是,我运行一个shell脚本作为第一个构build步骤,现在执行一些git-log比较,如果服务帐户是唯一的提交者,则中止构build。

我正在寻找一种方法来使用git钩子来触发构build,如果它只是一个标记事件,甚至不会启动构build。

这似乎是一个困难的问题,但我觉得这个问题是相当普遍的。 许多人必须在构build成功运行后自动标记Git,并避免重build。

我知道这个问题已经越来越老了,但是我最近也遇到了一个类似的问题,Bitbucket的webhook给Jenkins,会发送标签推送更改的通知。 我尝试configuration挂钩不发送这些,但它从来没有工作。

经过多次的试验和错误之后,我唯一能做的就是将Jenkins Git Plugin的“Branch Specifier(空白)”字段设置为“除了标签之外的所有内容”,使用像这样的正则expression式:^(?!.*(refs\/tags\/)).*

我承认,这个解决scheme有一个主要的缺点,就是这样一个configuration的作业不能build立标签…在我的情况下,这个configuration的作业集不需要build立标签,所以这是一个好的解决scheme,但我会更喜欢删除通知。

希望这可以帮助。