我编写了一个Jenkins文件,用于Jenkins中的GitHub Organization对象。 Jenkinsfile的一部分是纠错,并且经常对项目进行更改。在管道的最后,Jenkins将更改提交到我们的git存储库。
现在我已经完成了所有这些工作,我已经意识到,在将更正推送到repo之后,刚刚运行并纠正错误的相同作业将再次运行,因为它是由webhooks触发的。它不会是一个无限循环,因为在第一次运行后没有错误可以纠正,但它会比它需要的时间再运行一次。
作业所做的更改最终触发作业的事实是有问题的,因为管道包含部署步骤。连续两次重新部署相同的代码感觉就像一个写得不好的管道的结果。也就是说,如果没有搜索关键字的最后一次提交消息,我就无法找到一种从工作中提交不会触发工作的好方法。是否有一种不太常见的解决方法?
编辑:我知道ci-skip插件,但我无法通过文档使其在声明性管道中工作。我希望有一种方法可以让我在构建开始时使用默认的scm checkout步骤。
编辑2:每次管道开始查看消息是否包含文本[ci skip]时,我最终只运行最后一次提交消息的grep。它很脏,但是如果把它放在管道的设置阶段就可以了。
答案 0 :(得分:-1)
在签出git仓库的配置中,您可以指定忽略某些提交消息(高级检出行为)而不是使用代码来执行此操作。但是,我不确定github组织工作是否可以做同样的事情。
如果更改仅限于某些目录,则另一个选项是忽略某些目录,否则这些目录通常不会更改。再次,不确定github组织是否支持这一点。
请勿使用webhook触发器,但这不是首选选项。