-
Improvement
-
Resolution: Unresolved
-
Minor
-
None
At the moment, if user looking at build page in UI, he sees
"Subproject Builds" and then list of builds that were triggered by parametrized trigger plugin.
Unfortunately it shows only builds that are already completed, and no information about blocked in progress jobs.
I understand, this is because of limited availability information done by function
build.getAction(BuildInfoExporterAction.class).getTriggeredBuilds()
It should be possible to show also other triggered builds that are currently "in progress" by something similar to following code below in groovy:
import hudson.plugins.parameterizedtrigger.BuildInfoExporterAction import hudson.plugins.parameterizedtrigger.SubProjectsAction bp=Jenkins.instance.getItem("dsl-project_pull-requests") bd=bp.getBuild("158") projects = [] bp.transientActions.each { it -> if (it instanceof hudson.plugins.parameterizedtrigger.SubProjectsAction) { it.configs.each { cfg -> projects.addAll(cfg.projects.tokenize(',')) } } } builds = [] projects.each { prj-> be=Jenkins.instance.getItem(prj) be.getNewBuilds().each { nb -> nb.getCauses().each { c -> if ( c instanceof hudson.model.Cause.UpstreamCause) { if (c.upstreamProject == bp.name && c.upstreamBuild == bd.number) { builds.add(nb) } } } } } println builds println bd.getAction(BuildInfoExporterAction.class).getTriggeredBuilds()
PS. sorry, I'm not very good in java programming, otherwise I'd do just pull request to improve
getTriggeredBuilds() in hudson.plugins.parameterizedtrigger.BuildInfoExporterAction directly.
[JENKINS-33834] improve display of subproject builds
Description |
Original:
At the moment, if user looking at build page in UI, he sees "Subproject Builds" and then list of builds that were triggered by parametrized trigger plugin. Unfortunately it shows only builds that are already completed, and no information about blocked in progress jobs. I understand, this is because of limited availability information done by function {code:java} build.getAction(BuildInfoExporterAction.class).getTriggeredBuilds() {code} It should be possible to show also other triggered builds that are currently "in progress" by something similar to following code below in groovy: {code:java} import hudson.plugins.parameterizedtrigger.BuildInfoExporterAction import hudson.plugins.parameterizedtrigger.SubProjectsAction bp=Jenkins.instance.getItem("dsl-meta-ostro_pull-requests") bd=bp.getBuild("158") projects = [] bp.transientActions.each { it -> if (it instanceof hudson.plugins.parameterizedtrigger.SubProjectsAction) { it.configs.each { cfg -> projects.addAll(cfg.projects.tokenize(',')) } } } builds = [] projects.each { prj-> be=Jenkins.instance.getItem(prj) be.getNewBuilds().each { nb -> nb.getCauses().each { c -> if ( c instanceof hudson.model.Cause.UpstreamCause) { if (c.upstreamProject == bp.name && c.upstreamBuild == bd.number) { builds.add(nb) } } } } } println builds println bd.getAction(BuildInfoExporterAction.class).getTriggeredBuilds() {code} PS. sorry, I'm not very good in java programming, otherwise I'd do just pull request to improve getTriggeredBuilds() in hudson.plugins.parameterizedtrigger.BuildInfoExporterAction directly. |
New:
At the moment, if user looking at build page in UI, he sees "Subproject Builds" and then list of builds that were triggered by parametrized trigger plugin. Unfortunately it shows only builds that are already completed, and no information about blocked in progress jobs. I understand, this is because of limited availability information done by function {code:java} build.getAction(BuildInfoExporterAction.class).getTriggeredBuilds() {code} It should be possible to show also other triggered builds that are currently "in progress" by something similar to following code below in groovy: {code:java} import hudson.plugins.parameterizedtrigger.BuildInfoExporterAction import hudson.plugins.parameterizedtrigger.SubProjectsAction bp=Jenkins.instance.getItem("dsl-project_pull-requests") bd=bp.getBuild("158") projects = [] bp.transientActions.each { it -> if (it instanceof hudson.plugins.parameterizedtrigger.SubProjectsAction) { it.configs.each { cfg -> projects.addAll(cfg.projects.tokenize(',')) } } } builds = [] projects.each { prj-> be=Jenkins.instance.getItem(prj) be.getNewBuilds().each { nb -> nb.getCauses().each { c -> if ( c instanceof hudson.model.Cause.UpstreamCause) { if (c.upstreamProject == bp.name && c.upstreamBuild == bd.number) { builds.add(nb) } } } } } println builds println bd.getAction(BuildInfoExporterAction.class).getTriggeredBuilds() {code} PS. sorry, I'm not very good in java programming, otherwise I'd do just pull request to improve getTriggeredBuilds() in hudson.plugins.parameterizedtrigger.BuildInfoExporterAction directly. |
Workflow | Original: JNJira [ 169829 ] | New: JNJira + In-Review [ 183655 ] |