2

我希望我的代码审查工作忽略来自其他 Jenkins 工作的更改,例如我的发布工作。这些提交可以由提交用户(首选)或提交评论字符串(也可以接受)来识别。

基本上,我与询问 Ignore Jenkins 作业的用户是否存在相同的问题,如果提交消息以给定的字符串开头,除了我没有使用带有轮询的 Git 插件。相反,我使用的是Gerrit Trigger 插件,它会在每个新的更改集上触发。

我相信下面的截图包含了 GT 插件的相关配置。

我在网上搜索过,但我找不到如何做到这一点。我为 Git 插件找到了这种配置,但我不能使用它,因为我们使用的是 Gerrit,所以我们需要预提交变更集触发而不是轮询。

触发

4

3 回答 3

3

Gerrit Trigger 提供了一组变量,您可以在其中找到提交者的姓名、提交消息等。我使用的解决方案是测试这些变量的值,如果测试通过,则结束构建作业。但如果您使用 Jenkins V2.3 或更高版本,可能会出现问题。某些变量不能通过 shell 中的 $ 访问。您可以参考 Jenkins V2.3 发行说明来解决此问题。您可以按问号向右Gerrit event查看变量列表。

于 2016-06-14T10:07:37.363 回答
2

一种建议的方法是使用“ci skip”插件

我将我的发布作业设置为在他们的提交消息中包含 [ci skip]。

使用它时,我发现它实际上仍然会触发构建。但是,在检查我们的提交之后,构建退出为“未构建”。这意味着构建仍然会混淆我的构建历史,并且它仍然会消耗资源来获取和 rev-parse 等,所以它对我来说不是一个更可取的解决方案。

虽然这解决了我的直接问题,但我很乐意接受其他答案,因为我对此并不完全满意。

于 2016-06-14T09:38:33.187 回答
2

实际上,您可以在 Gerrit 主题配置中使用正则表达式模式跳过作业执行。

例如,您可能不允许触发作业以更改哪个主题具有 WIP 字词。这可以使用以下 regex ^((?!WIP).)*$

这是一个在我们的管道中如何实现触发的示例

Gerrit触发器配置:

在此处输入图像描述

希望它会有所帮助。

于 2018-06-15T08:08:20.557 回答