Jenkins add/update 给所有工作:应该向默认收件人列表发送电子邮件提醒
Jenkins add/update to all jobs : should have email alerts to default recipients list
我们的 jenkins 已经有大约 100 个工作,我想为所有工作添加可编辑的电子邮件通知,以便所有工作都应该向默认收件人列表发送电子邮件提醒。正在寻找 Jenkins 脚本控制台的 Groovy 脚本以添加或修改电子邮件通知设置。
Jenkins.instance.items.each { item ->
println("JOB: " + item.name)
// code for setting email notification if not exist
if(item.XXXX == null) {
println("No email notification step ")
}
else {
// code to update the current email settings
println("Set new setting")
}
item.save()
println(" done")
}
或者其他一些自动化的方式也可以。
谢谢!
假设您正在使用 hudson.plugins.emailext.ExtendedEmailPublisher
并且所有作业都已经添加了该步骤,这应该可以涵盖迭代部分。
// Gets all jobs and folders recursively
items = Jenkins.instance.getAllItems();
items.each { item ->
def status = ''
def base_email = ''
def ext_email = []
if (item.class.name == "hudson.model.FreeStyleProject") {
item.publishersList.findAll {it instanceof hudson.plugins.emailext.ExtendedEmailPublisher}.each { publisher ->
status = publisher.disabled
base_email=publisher.recipientList?.replaceAll("\r|\n", " ")
publisher.configuredTriggers?.each { entry ->
if (entry.email.recipientList) {
ext_email << "${entry.class.name.replace("hudson.plugins.emailext.plugins.trigger.", "")}: ${entry.email.recipientList?.replaceAll("\r|\n", " ")}"
}
}
}
if ( base_email ) {
println item.fullName + "( " + status + " )"
println " +- " + base_email
ext_email.each {
println " - " + it
}
} else {
println "# " + item.fullName
}
}
}
return
如果您使用的是hudson.tasks.Mailer
,则只有一个字段:publisher.recipients
那你要么
publisher.recipientList="someone@somewhere.com"
item.save()
或根据需要等同。
注意:Extended Email 插件有一个禁用发送电子邮件的开关“禁用 Extended Email Publisher (publisher.disabled
),所以也报告一下。
如果你需要添加插件,那么它会是这样的:
item.publishersList.add(new hudson.plugins.emailext.ExtendedEmailPublisher(<parameters>)
(see javadoc)
我们的 jenkins 已经有大约 100 个工作,我想为所有工作添加可编辑的电子邮件通知,以便所有工作都应该向默认收件人列表发送电子邮件提醒。正在寻找 Jenkins 脚本控制台的 Groovy 脚本以添加或修改电子邮件通知设置。
Jenkins.instance.items.each { item ->
println("JOB: " + item.name)
// code for setting email notification if not exist
if(item.XXXX == null) {
println("No email notification step ")
}
else {
// code to update the current email settings
println("Set new setting")
}
item.save()
println(" done")
}
或者其他一些自动化的方式也可以。 谢谢!
假设您正在使用 hudson.plugins.emailext.ExtendedEmailPublisher
并且所有作业都已经添加了该步骤,这应该可以涵盖迭代部分。
// Gets all jobs and folders recursively
items = Jenkins.instance.getAllItems();
items.each { item ->
def status = ''
def base_email = ''
def ext_email = []
if (item.class.name == "hudson.model.FreeStyleProject") {
item.publishersList.findAll {it instanceof hudson.plugins.emailext.ExtendedEmailPublisher}.each { publisher ->
status = publisher.disabled
base_email=publisher.recipientList?.replaceAll("\r|\n", " ")
publisher.configuredTriggers?.each { entry ->
if (entry.email.recipientList) {
ext_email << "${entry.class.name.replace("hudson.plugins.emailext.plugins.trigger.", "")}: ${entry.email.recipientList?.replaceAll("\r|\n", " ")}"
}
}
}
if ( base_email ) {
println item.fullName + "( " + status + " )"
println " +- " + base_email
ext_email.each {
println " - " + it
}
} else {
println "# " + item.fullName
}
}
}
return
如果您使用的是hudson.tasks.Mailer
,则只有一个字段:publisher.recipients
那你要么
publisher.recipientList="someone@somewhere.com"
item.save()
或根据需要等同。
注意:Extended Email 插件有一个禁用发送电子邮件的开关“禁用 Extended Email Publisher (publisher.disabled
),所以也报告一下。
如果你需要添加插件,那么它会是这样的:
item.publishersList.add(new hudson.plugins.emailext.ExtendedEmailPublisher(<parameters>)
(see javadoc)