Child pages
  • Simple Parameterized Builds Report plugin
Skip to end of metadata
Go to start of metadata

This Jenkins plugin makes it easy to visualize the various builds for a parameterized project that were run using the same set of parameters.

Plugin Information

View Simple Parameterized Builds Report on the plugin site for more information.

Allows one to visualize the parameterized builds as:

Usage

Once installed, a new link "Parameterized Builds Report" should show up in the sidebar for all parameterized jobs. Following that link will display a table where (at max, latest 10) builds for a given parameter set are displayed, grouped together based on the parameters used to invoke the builds.

Users can also configure the parameters displayed in the list. Passwords are never displayed in the report, but more passwords can be filtered by setting either the inclusions or exclusions list. Configure a job to enable "Customize Simple ParameterizedBuild Report" option and set a comma separated list of parameters for inclusion or exclusion.

Only the builds that match the parameter set used in the latest build are considered for inclusion in the table.

Open issues

T Key Summary Assignee Reporter P Status Resolution Created Updated Due
Loading...
Refresh

Release Notes

1.5 (5/8/2016)

  • Fixed: JENKINS-34525 Work around Groovy bug in Jenkins 2 (jglick)
  • Added: Support for Matrix Jobs (JeremyMarshall)

1.4 (10/5/2014)

  • Fixed: JENKINS-24928 - Spelling mistake
  • Fixed: JENKINS-24927 - No table background colors

1.3 (7/20/2014)

  • Fixed: Fix possible NPE reported in JENKINS-23841

1.2 (6/28/2014)

  • Added: Configuration options for report
  • Fixed: JENKINS-23604 - NPE when all builds are not parameterized

1.1 (08/17/2013)

  • Fixed: JENKINS-19085 - Mask password properties
  • Fixed: JENKINS-18565 - Only show build parameters and not all the user defined build variables
  • Fixed: Only display completed builds in the table

1.0 (01/01/2013)

  • Initial release

15 Comments

  1. I'd like to be able to configure what shows up in the report.  For instance, here is what I see today:

    BUILD_USER_LAST_NAME: Smith
    Requester: Bob
    BUILD_USER_FIRST_NAME: Robert
    BUILD_USER: Robert Smith
    SVN_BRANCH: misc_updates_to_stuff
    BUILD_USER_ID: robert_smith

    Requester is a manual field that our users input because when they are in the queue, we don't know who initiated the build.  By having them input the value, we can see who has a build in the queue.

    For the other user params, they are showing up from the plugin: http://wiki.jenkins-ci.org/display/JENKINS/Build+User+Vars+Plugin

    It's rather annoying to see the user's name show up that many times. :)

    1. should be fixed now in v1.1

      1. Thanks!  How do I select which parameters I want to see?

  2. This plugin will no longer be useful to us if we are unable to configure what parameters we want to track.  For instance, one parameter we use to comment on what's going into the build.  That will be unique for every build.  In some cases, the plugin crashes, I assume because the user's comment was too long or had some special characters.  Anyway, please add the flexibility to choose what parameters we want to track.  Thanks!

    1. This ability is now available with the plugin. Thanks!

  3. I'm seeing an exception when I try to view a report (click Parameterized Builds Report). Happens 100% of the time.

    java.lang.RuntimeException: org.apache.commons.jelly.JellyTagException: jar:file:/tmp/jetty-0.0.0.0-8080-jenkins.war--any-/webapp/WEB-INF/lib/jenkins-core-1.537.jar\!/lib/layout/layout.jelly:221:26: <d:invokeBody> org.apache.commons.jelly.JellyTagException: jar:file:/tmp/jetty-0.0.0.0-8080-jenkins.war--any-/webapp/WEB-INF/lib/jenkins-core-1.537.jar\!/lib/layout/main-panel.jelly:36:21: <d:invokeBody> java.lang.NullPointerException
    ...
    Caused by: java.lang.NullPointerException
    at com.nullin.jenkins.spbr.SimpleParameterizedBuildsReportAction.getParameterValues(SimpleParameterizedBuildsReportAction.java:102)
    at com.nullin.jenkins.spbr.SimpleParameterizedBuildsReportAction.getBuildsMap(SimpleParameterizedBuildsReportAction.java:76)
    at com.nullin.jenkins.spbr.SimpleParameterizedBuildsReportAction$getBuildsMap.call(Unknown Source)
    at com.nullin.jenkins.spbr.SimpleParameterizedBuildsReportAction.index.showTable(index.groovy:24)
    at com.nullin.jenkins.spbr.SimpleParameterizedBuildsReportAction.index.this$6$showTable(index.groovy)

    1. I am getting the same exception, has anybody figured out what is causing this?

      Caused by: java.lang.NullPointerException
      	at com.nullin.jenkins.spbr.SimpleParameterizedBuildsReportAction.getParameterValues(SimpleParameterizedBuildsReportAction.java:102)
      	at com.nullin.jenkins.spbr.SimpleParameterizedBuildsReportAction.getBuildsMap(SimpleParameterizedBuildsReportAction.java:76)
      	at com.nullin.jenkins.spbr.SimpleParameterizedBuildsReportAction$getBuildsMap.call(Unknown Source)
      	at com.nullin.jenkins.spbr.SimpleParameterizedBuildsReportAction.index.showTable(index.groovy:24)
      	at com.nullin.jenkins.spbr.SimpleParameterizedBuildsReportAction.index.this$6$showTable(index.groovy)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
      	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
      	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:361)
      	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:903)
      	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
      	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
      	at com.nullin.jenkins.spbr.SimpleParameterizedBuildsReportAction.index$_run_closure1_closure4.doCall(index.groovy:18)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
      	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
      	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
      	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:903)
      	at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
      	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
      	at com.nullin.jenkins.spbr.SimpleParameterizedBuildsReportAction.index$_run_closure1_closure4.doCall(index.groovy)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
      	at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
      	at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
      	at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:903)
      	at groovy.lang.Closure.call(Closure.java:415)
      	at groovy.lang.Closure.call(Closure.java:409)
      	at org.kohsuke.stapler.jelly.groovy.JellyBuilder$1.run(JellyBuilder.java:264)
      	at org.kohsuke.stapler.jelly.CallTagLibScript$1.run(CallTagLibScript.java:99)
      	at org.apache.commons.jelly.tags.define.InvokeBodyTag.doTag(InvokeBodyTag.java:91)
      	at org.apache.commons.jelly.impl.TagScript.run(TagScript.java:269)
      	... 128 more
      1. I'm guessing that this plugin assumes that every single build for a project will have parameter data.  For me that isn't the case because some projects started out without parameters and then parameters were added later.

        Here is the method that is failing:

            private Map<String, String> getParameterValues(AbstractBuild build) {
                Map<String, String> paramsMap = new HashMap<String, String>();
                List<ParameterValue> paramVals = build.getAction(ParametersAction.class).getParameters();
        
                for (ParameterValue paramVal : paramVals) {
                    if (paramVal.isSensitive()) {
                        continue;
                    }
                    paramsMap.put(paramVal.getName(), paramVal.createVariableResolver(build).resolve(paramVal.getName()));
                }
                return paramsMap;
            }

        The specific line that is failing is

        "List<ParameterValue> paramVals = build.getAction(ParametersAction.class).getParameters();"

          1. This is taken care of. Thanks!

  4. I am using build flow plugin https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin to pass parameters to my job. I don't explicitly check the 'this build is parametrized' check box. It seems that this plugin does not work when passing parameters via build flow plugin. Can it be fixed such that it looks for parameters regardless if it has been specified explicitly or via buildflow plugin?

    Thanks

  5. Every now and then I'd like to rerun one of the jobs, and I have to trigger the build and tap in all the paramters.

    Wouldn't it be nice if the parameterized build report contained a 'trigger build' button in every line that automatically reuses the parameter values?

  6. I just upgraded to Jenkins 2.0. When accessing the simple parameterized build report I get a StackOverflowError. Before the upgrade it worked very well.

    Is this plugin compatible to Jenkins 2?

  7. Does the plugin support Parameterized Pipelines?

    I installed the plugin, but I can't see the link "Parameterized Builds Report" in the sidebar for my parameterized Pipeline.