[JIRA] (JENKINS-55335) Support scripted and declarative pipelines in `ListRecipientProvider`

1 view
Skip to first unread message

earshinov@gmail.com (JIRA)

unread,
Dec 26, 2018, 2:45:01 PM12/26/18
to jenkinsc...@googlegroups.com
Evgeny Arshinov updated an issue
 
Jenkins / Improvement JENKINS-55335
Support scripted and declarative pipelines in `ListRecipientProvider`
Change By: Evgeny Arshinov
Summary: Support scripted and declarative pipelines in `ListRecipientProvider`
Add Comment Add Comment
 
This message was sent by Atlassian Jira (v7.11.2#711002-sha1:fdc329d)

earshinov@gmail.com (JIRA)

unread,
Dec 26, 2018, 2:46:02 PM12/26/18
to jenkinsc...@googlegroups.com
Evgeny Arshinov updated an issue
[https://github.com/jenkinsci/email-ext-plugin/blob/ac54d2684668d12eae40189a55a30e677a813b03/src/main/java/hudson/plugins/emailext/plugins/recipients/ListRecipientProvider.java#L60]
{code:java}
@Override public boolean isApplicable(Class<? extends Job> jobType) {
    return !jobType.getName().equals("org.jenkinsci.plugins.workflow.job.WorkflowJob");
}
{code}
 

I wonder what is the problem with supporting `WorkflowJob` here? I believe, it is the job class used in
both scripted and declarative pipelines. Pipeline script
{code:java}
node {
   emailext recipientProviders: [[$class: 'ListRecipientProvider']]
}
{code}
gives me the following error:
{code:java}
java.lang.IllegalArgumentException: The following recipient providers do not support org.jenkinsci.plugins.workflow.job.WorkflowJob hudson.plugins.emailext.plugins.recipients.ListRecipientProvider
at hudson.plugins.emailext.plugins.RecipientProvider.checkAllSupport(RecipientProvider.java:57)
at hudson.plugins.emailext.EmailExtStep$EmailExtStepExecution.run(EmailExtStep.java:186)
at hudson.plugins.emailext.EmailExtStep$EmailExtStepExecution.run(EmailExtStep.java:163)
at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)
at hudson.security.ACL.impersonate(ACL.java:273)
at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
{code}
 

I am trying to make email-ext in my scripted pipeline job send email notifications to the globally configured recipients list—the same that is used in the following freestyle job:

!freestyle job configuration.png|thumbnail!

earshinov@gmail.com (JIRA)

unread,
Dec 26, 2018, 2:48:01 PM12/26/18
to jenkinsc...@googlegroups.com
Evgeny Arshinov edited a comment on Improvement JENKINS-55335
 
Re: Support scripted and declarative pipelines in `ListRecipientProvider`
- Without `ListRecipientProvider` there is no way to send email notifications to a fixed recipients list that does not fall into any predefined recipientProviders category (see `recipientProvides` on https://jenkins.io/doc/pipeline/steps/email-ext/). This issue is a blocker for us, preventing the use of the plugin in our scripted pipeline jobs. -

_Update_: Nevermind, I have just discovered the `to` argument.

earshinov@gmail.com (JIRA)

unread,
Dec 26, 2018, 2:59:02 PM12/26/18
to jenkinsc...@googlegroups.com

I have discovered another undocumented feature.

It turned out that one can use `$DEFAULT_zzz` placeholders in pipelines, too.

Also I found out that one has to explicitly pass `subject: "$DEFAULT_SUBJECT" and to: "$DEFAULT_TO"`, although it would be nice if the plugin used these values by default.

Having discovered all that, we can now use email-ext in our project, despite its poor documentation. The question about `ListRecipientProvider` remains open, though.

earshinov@gmail.com (JIRA)

unread,
Dec 26, 2018, 3:01:02 PM12/26/18
to jenkinsc...@googlegroups.com
Evgeny Arshinov edited a comment on Improvement JENKINS-55335
I have discovered another undocumented feature.

It turned out that one can use `$DEFAULT_zzz` placeholders in pipelines, too. Normally, such things should be covered in the documentation.

Also I also found out that one has to explicitly pass `subject: "$DEFAULT_SUBJECT" and to: "$DEFAULT_TO"`, although it would be nice if the plugin used these values by default.


Having discovered all that, we can now use email-ext in our project, despite its poor documentation. The question about `ListRecipientProvider` remains open, though.

slide.o.mix@gmail.com (JIRA)

unread,
Mar 22, 2019, 8:20:02 AM3/22/19
to jenkinsc...@googlegroups.com
Alex Earl assigned an issue to Alex Earl
 
Change By: Alex Earl
Assignee: David van Laatum Alex Earl

slide.o.mix@gmail.com (JIRA)

unread,
Jul 16, 2019, 5:03:02 PM7/16/19
to jenkinsc...@googlegroups.com
Alex Earl closed an issue as Not A Defect
 

I don't think ListRecipientProvider makes sense in the case of workflow since you can just use `to` like you found. FYI, feel free to make updates to the wiki if you find things missing.

Change By: Alex Earl
Status: Open Closed
Resolution: Not A Defect
Reply all
Reply to author
Forward
0 new messages