首页 > 解决方案 > extendedEmail 中的矩阵触发模式 - Jenkins 作业 DSL

问题描述

我在 Jenkins(版本 2.222.1)上有一个多配置项目我们使用JenkinsDSL(v1.77)从 groovy 脚本创建自由样式的作业。电子邮件通知与extendedEmail(v2.69)似乎无法在groovy脚本中指定通知的触发模式,但可以通过如下UI完成(ONLY_PARENT或ONLY_CONFIGURATIONS或BOTH)emailextUI 触发模式

正如我在这里看到的,下面是我们可以在 groovy for DSL 插件中为 extendedEmail 指定的配置

job('example') {
    publishers {
        extendedEmail {
            recipientList('me@halfempty.org')
            defaultSubject('Oops')
            defaultContent('Something broken')
            contentType('text/html')
            triggers {
                beforeBuild()
                stillUnstable {
                    subject('Subject')
                    content('Body')
                    sendTo {
                        developers()
                        requester()
                        culprits()
                    }
                }
            }
        }
    }
}

在多配置项目的情况下,我只在父作业失败时才需要发送通知,它什么也没说

我相信它存在于hipChatNotifier中,我们可以指定为matrixTriggerMode

hipchatnotifier

有没有办法通过extendedEmail发布者来做到这一点,就像我们可以在用户界面上做到的那样?

标签: jenkinsgroovyjenkins-pipelinejenkins-job-dslemail-ext

解决方案


似乎 Job DSL 插件尚不支持此功能。您可以使用自定义配置块来解决。例如

    publishers {
        extendedEmail {
...
        }
    }
configure { project -> project / 'publishers' / 'hudson.plugins.emailext.ExtendedEmailPublisher' << {
            matrixTriggerMode('ONLY_PARENT')
        }
    }

请注意<<将节点附加到发布者配置而不是覆盖它。


推荐阅读