Hi,

In the #perform, method of your Builder, create an instance of your Action
and add it to the Build object.

In your case, I don't think you need to implement a TransientActionFactory.

Vincent

2015-02-10 17:55 GMT+01:00 Kirill <[email protected]>:

> Hi folks,
>
> I created a plugin that contains a custom Builder. It is included in job
> XX on my Jenkins.
>
> What I need is to add a link to the left-hand side of any build of any job
> in Jenkins, if it contains this build step. Say, if I create a job YY, this
> link has to appear on the left hand side when I go to the build details
> page (along with regular links like "Status", "Changes", etc.), as well as
> in job XX.
>
> I used TransientActionFactory in the past, but I used it for a particular
> Build class. Not sure how to use it to work for any Build that has my
> Builder.
>
> I made a naive attempt to do it like this, hoping that Jenkins will
> understand what I want (Builder is not Actionable, alas):
>
> @Extension
> public class MyLinkActionFactory extends TransientActionFactory<MyBuilder>
> {
>
>     @Override
>     public Class<MyBuilder> type() {
>         return MyBuilder.class;
>     }
>
>     @Nonnull
>     @Override
>     public Collection<? extends Action> createFor(@Nonnull MyBuilder
> builder) {
>             return Collections.singleton(new MyLinkAction("http://fullUrl
> "));
>     }
>
> }
>
> public class MyLinkAction implements Action {
>     private final String url;
>
>     public MyLinkAction(String url) {
>         this.url = url;
>     }
>
>     @Override
>     public String getIconFileName() {
>         return "/plugin/mystuff/images/24x24/ve.png";
>     }
>
>     @Override
>     public String getDisplayName() {
>         return "See the results";
>     }
>
>     @Override
>     public String getUrlName() {
>         return url;
>     }
> }
>
> No surprize - it didn't work.
> The only way out that I see is to use MyLinkActionFactory with any
> top-level item, but that will probably seriously slow down the Jenkins -
> and then somehow check whether it uses my Builder or not.:(
>
> Any other more elegant solutions, people?
>
> Regards,
> Kirill.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-dev/c5da95d8-55bc-4464-92c3-ea34c270bb8a%40googlegroups.com
> <https://groups.google.com/d/msgid/jenkinsci-dev/c5da95d8-55bc-4464-92c3-ea34c270bb8a%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/CAH-zGCgT4bcjfuvn2ivNK2kw748t7C7ESkuUzYqa-3GeQ-1YLg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to