我们正在使用 Parameterized Builds plugin 和矩阵组合参数。所以现在,当我们构建此作业时,我们选择要构建的组合,并为每个选定的组合创建一个“子作业”。

这些作业中的每一个都运行其构建步骤和构建后操作。但是,我也注意到后期构建操作也针对“父作业”运行。

例如,我们将作业配置为在成功后向 Slack 发布消息。现在,如果我使用参数构建作业并选择一个配置来构建,我将收到两个 Slack 通知。一份用于主要工作,一份用于选定的配置。

示例 Slack 输出,请注意一个选择了配置,一个没有:

| My Jenkins Project » My Job » my config - #51 Success after 1 min 54 sec (Open)
| My Jenkins Project » My Job - #51 Success after 1 min 55 sec (Open)

所以我的问题是,如何防止构建后操作在主要作业上运行?

编辑:自从创建这个问题后,我在 Slack 插件上发现了 this GitHub issue,它准确地描述了我所看到的内容。所以看起来这个功能应该取决于插件,新版本导致这个特定插件的回归。

也许这个问题更适合:确定它是在全局作业中运行还是作为多配置项目的一部分在配置作业中运行是插件的责任吗?

最佳答案

是否应该仅针对子作业或父作业在 Slack 上发布消息也应该是插件提供的配置的一部分。这是来自您的 github 链接的示例。 hipchat 插件是正确的:
Jenkins:不要为子作业运行构建后操作-LMLPHP

Slack 插件中的类似选项可以解决您的问题,似乎有一个 PR here 可以解决它。您可以恢复到旧版本 (

关于Jenkins:不要为子作业运行构建后操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48528551/

10-14 12:00
查看更多