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.