Hey, I have been trying different ways to collect the result from pipeline triggered downstream jobs without any success. Any idea how to do it?
Apprioach #1 - Mapping the build data trough Cause.UpstreamCause (as suggested here: https://groups.google.com/forum/#!topic/jenkinsci-dev/nNvy6YLgP58): pipelineIntegrationJobs.each { i -> jobs["${nirvanaMajor}.${nirvanaMinor}_${i}"] = { build (job: "${nirvanaMajor}.${nirvanaMinor}_${i}", parameters: [ string(name: 'branch', value: "${svnBranch}", description: 'svn repository url'), string(name: 'buildmajor', value: '10', description: 'release major identifier'), string(name: 'buildminor', value: '4', description: 'release minor identifier'), string(name: 'fix', value: "${env.fix}", description: 'fix level'), string(name: 'buildnumber', value: "${env.buildNumber}", description: 'artifacts build number'), string(name: 'revision', value: "${env.buildNumber}", description: 'checkout revision'), string(name: 'joblabel', value: "${pipelineName}", description: "optional job description") ], quietPeriod: 0, propagate: false, wait: true).result def upstreamJob = Jenkins.instance.getItem("${nirvanaMajor}.${nirvanaMinor}_${env.JOB_NAME}") def job = Jenkins.instance.getItem("${nirvanaMajor}.${nirvanaMinor}_${i}") job.builds.each { Run build -> if (build.result != null) { Cause.UpstreamCause cause = build.getCause(Cause.UpstreamCause.class) if (cause.pointsTo(upstreamJob)) { println("------------>" + build.number) } } } } } This results in a NPE: 05:34:41 Finished [Pipeline] script [Pipeline] { [Pipeline] echo 05:34:41 ------------------------------------ [Pipeline] echo 05:34:41 Job Status Summary: [Pipeline] echo 05:34:41 10.4:null [Pipeline] echo 05:34:41 ------------------------------------ [Pipeline] echo 05:34:41 ------------------------------------ [Pipeline] echo 05:34:41 Test Results Summary: [Pipeline] echo 05:34:41 ------------------------------------ [Pipeline] } [Pipeline] // script [Pipeline] echo 05:34:41 Failure [Pipeline] } [Pipeline] // stage [Pipeline] } [Pipeline] // withEnv [Pipeline] } [Pipeline] // timestamps [Pipeline] } [Pipeline] // withEnv [Pipeline] } [Pipeline] // node [Pipeline] } [Pipeline] // stage [Pipeline] } [Pipeline] // node [Pipeline] End of Pipeline [BFA] Scanning build for known causes... [BFA] No failure causes found [BFA] Done. 0s java.lang.NullPointerException at hudson.model.Cause$UpstreamCause.pointsTo(Cause.java:262) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022) at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:47) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:157) at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:23) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:133) at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:155) at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:159) at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:17) at pipelineBuilder.call(/FS/fslocal/jenkinsWorkspace/jobs/10.4_release_pipeline/builds/84/libs/templates/vars/pipelineBuilder.groovy:182) at com.cloudbees.groovy.cps.CpsDefaultGroovyMethods.each(CpsDefaultGroovyMethods:2030) at com.cloudbees.groovy.cps.CpsDefaultGroovyMethods.each(CpsDefaultGroovyMethods:2015) at com.cloudbees.groovy.cps.CpsDefaultGroovyMethods.each(CpsDefaultGroovyMethods:2056) at pipelineBuilder.call(/FS/fslocal/jenkinsWorkspace/jobs/10.4_release_pipeline/builds/84/libs/templates/vars/pipelineBuilder.groovy:179) at ___cps.transform___(Native Method) Approach #2 - Using the .result property of the build job (as suggested in the official documentation here: https://jenkins.io/doc/pipeline/steps/pipeline-build-step/): pipelineIntegrationJobs.each { i -> jobs["${nirvanaMajor}.${nirvanaMinor}_${i}"] = { childJob = build (job: "${nirvanaMajor}.${nirvanaMinor}_${i}", parameters: [ string(name: 'branch', value: "${svnBranch}", description: 'svn repository url'), string(name: 'buildmajor', value: '10', description: 'release major identifier'), string(name: 'buildminor', value: '4', description: 'release minor identifier'), string(name: 'fix', value: "${env.fix}", description: 'fix level'), string(name: 'buildnumber', value: "${env.buildNumber}", description: 'artifacts build number'), string(name: 'revision', value: "${env.buildNumber}", description: 'checkout revision'), string(name: 'joblabel', value: "${pipelineName}", description: "optional job description") ], quietPeriod: 0, propagate: false, wait: true).result } childJobName = "${nirvanaMajor}.${nirvanaMinor}_${i}" jobStateResults.put(childJobName, childJob) } In post section: script { println "------------------------------------" println "Job Status Summary:" jobStateResults.each{ k, v -> println "${k}:${v}" } println "------------------------------------" } This yields null: 17:56:37 [10.4_test_admin_api_win] null [Pipeline] [10.4_test_admin_api_win] } [Pipeline] [10.4_test_admin_tool_win] echo 18:04:25 [10.4_test_admin_tool_win] null [Pipeline] [10.4_test_admin_tool_win] } [Pipeline] [10.4_test_cluster_tool_win] echo 18:17:44 [10.4_test_cluster_tool_win] null [Pipeline] [10.4_test_cluster_tool_win] } [Pipeline] [10.4_test_jms_linux] echo 18:22:33 [10.4_test_jms_linux] null [Pipeline] [10.4_test_jms_linux] } [Pipeline] [10.4_test_client_system_linux] echo 18:26:41 [10.4_test_client_system_linux] null [Pipeline] [10.4_test_client_system_linux] } [Pipeline] [10.4_test_jms_win] echo 18:39:40 [10.4_test_jms_win] null [Pipeline] [10.4_test_jms_win] } [Pipeline] [10.4_test_client_system_win] echo 18:47:20 [10.4_test_client_system_win -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/CAG6hjyWEZvKBJNyFj1xUt7Zb%3Deuz%2Bc5PMGVDyPH4-srR2k3PoQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.