I just got back to this issue and re-read the Guard/Rescue description 
where it is defined as a Try/Finally....  OK, my mistake, but I find the 
reality useless.  Why isn't there a Try/Catch-like construct?  If the Guard 
jobs fail, then run the Rescue jobs - if they don't fail, skip the Rescue. 
 The way it is set up is basically an ignore() with another build job 
listed below it.

On Thursday, March 6, 2014 9:40:43 AM UTC-7, Tim Jackson wrote:
>
> Given this flow:
>
> def Build = { "<SpecificBuildSelector><buildNumber>" + it + 
> "</buildNumber></SpecificBuildSelector>" }
>
> def BVT2Rescue = { 
>     build("Restart_NRobotRemote", Test_Automation_Workstation: 
> BVT2.build.properties['builtOnStr'], WORKSPACE: BVT2.build.workspace)
>     build("BVT_CR2600", BN2: Build(B2.build.number))
> }
>
> def BVT4Rescue = {
>     build("Restart_NRobotRemote", Test_Automation_Workstation: 
> BVT4.build.properties['builtOnStr'], WORKSPACE: BVT4.build.workspace)
>     build("BVT_CR4405", BN4: Build(B4.build.number))
> }
>
> def BVT8Rescue = {
>     build("Restart_NRobotRemote", Test_Automation_Workstation: 
> BVT8.build.properties['builtOnStr'], WORKSPACE: BVT8.build.workspace)
>     build("BVT_CR1000", BN8: Build(B8.build.number))
> }
> parallel(
>     { B2 = build("Build_CR2600_Trunk")
>             guard {
>                 retry 2, {
>                     BVT2 = build("BVT_CR2600", BN2: Build(B2.build.number))
>                 }
>             } rescue { BVT2Rescue }
>     },
>     { B4 = build("Build_CR4400_Trunk")
>             guard {
>                 retry 2, {
>                     BVT4 = build("BVT_CR4405", BN4: Build(B4.build.number))
>                 }
>             } rescue { BVT4Rescue }
>     },
>     { B8 = build("Build_CR8000_Trunk")
>             guard {
>                 retry 2, {
>                     BVT8 = build("BVT_CR1000", BN8: Build(B8.build.number))
>                 }
>             } rescue { BVT8Rescue }
>     }
> )
>
> build(
>     "Publish_Artifacts", 
>     BN2: Build(B2.build.number), 
>     BN4: Build(B4.build.number),
>     BN8: Build(B8.build.number)
> )
>
>
> I am getting these results.  I don't understand why the rescue is being 
> called at all - nothing is failing.  It is also confusing that the output 
> gets mixed together for the parallel jobs.
>
> Started by timer
> [EnvInject] - Loading node environment variables.
> Building on master in workspace 
> /var/lib/jenkins/jobs/Nightly_Build_All_Trunk/workspace
> No emails were triggered.
> parallel {
>     Schedule job Build_CR8000_Trunk
>     Schedule job Build_CR2600_Trunk
>     Schedule job Build_CR4400_Trunk
>     Build Build_CR4400_Trunk #121 started
>     Build Build_CR8000_Trunk #141 started
>     Build Build_CR2600_Trunk #124 started
>     Build_CR8000_Trunk #141 completed 
>     guard {
>         retry (attempt 1) {
>             Schedule job BVT_CR1000
>             Build BVT_CR1000 #186 started
>             Build_CR4400_Trunk #121 completed 
>             guard {
>                 retry (attempt 1) {
>                     Schedule job BVT_CR4405
>                     Build_CR2600_Trunk #124 completed 
>                     guard {
>                         retry (attempt 1) {
>                             Schedule job BVT_CR2600
>                             Build BVT_CR4405 #155 started
>                             BVT_CR1000 #186 completed 
>                         }
>                     } rescue {
>                         Build BVT_CR2600 #112 started
>                         Schedule job Restart_NRobotRemote
>                         BVT_CR4405 #155 completed 
>                     }
>                 } rescue {
>                     Schedule job Restart_NRobotRemote
>                     BVT_CR2600 #112 completed 
>                 }
>             } rescue {
>                 Build Restart_NRobotRemote #31 started
>                 Schedule job Restart_NRobotRemote
>                 Restart_NRobotRemote #31 completed 
>                 Schedule job BVT_CR1000
>                 Build Restart_NRobotRemote #32 started
>                 Restart_NRobotRemote #32 completed 
>                 Schedule job BVT_CR4405
>                 Build Restart_NRobotRemote #33 started
>                 Build BVT_CR1000 #187 started
>                 Restart_NRobotRemote #33 completed 
>                 Schedule job BVT_CR2600
>                 Build BVT_CR4405 #156 started
>                 BVT_CR1000 #187 completed 
>             }
>             Build BVT_CR2600 #113 started
>             BVT_CR4405 #156 completed 
>         }
>         BVT_CR2600 #113 completed 
>     }
> }
> No emails were triggered.
> Notifying upstream projects of job completion
> Finished: SUCCESS
>
> What am I missing?
>

-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to