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

Reply via email to