[JIRA] (JENKINS-55438) Allow sequential stages inside parallel in Scripted syntax

6 views
Skip to first unread message

acarr468@gmail.com (JIRA)

unread,
Jan 7, 2019, 5:07:15 PM1/7/19
to jenkinsc...@googlegroups.com
Adam Carroll created an issue
 
Jenkins / Improvement JENKINS-55438
Allow sequential stages inside parallel in Scripted syntax
Issue Type: Improvement Improvement
Assignee: Andrew Bayer
Attachments: exampleParallelSequential.PNG, exampleParallelSequentialIncorrect.PNG
Components: pipeline, pipeline-model-definition-plugin
Created: 2019-01-07 22:06
Labels: pipeline script scripted parallel sequential
Priority: Minor Minor
Reporter: Adam Carroll

Similar to JENKINS-46809, I would like the Blue Ocean GUI to properly visualize multiple stages in sequence that are all parallel of each other. Below is an example image of what this looks like using declarative syntax (working):

 

Here is the declarative example code I wrote to generate the example image:

pipeline {
  agent { label 'master' }
  stages {
    stage('Build and Test') {
      parallel {
        stage("Build and Test Linux") {
          stages {
            stage("Build (Linux)") {
              agent any
              steps {
                echo "Inside for loop 1"
              }
            }
            stage("Test (Linux)") {
              agent any
              steps {
                echo "Inside for loop 2"
              }
            }
          }
        }
        stage("Build and Test Windows") {
          stages {
            stage("Build (Windows)") {
              agent any
              steps {
                echo "Inside for loop 3"
              }
            }
            stage("Test (Windows)") {
              agent any
              steps {
                echo "Inside for loop 4"
              }
            }
          }
        }
      }
    }
  }
}

 

Here is example scripted Jenkins code that I would like to use. Linux and windows build/test flows happen in parallel. Inside each flow in a "build" stage and then a "test" stage. The Windows sequential build/test flow should be displayed in parallel with the Linux build/test flow, but right now the separate Build/Test sequential stages are combined into one circle/stage when using the scripted syntax.

 

pipeline {
  agent any
  stages {
    stage("Build and Test") {
      steps {
        script {
          parallel linux: {
            node("linux_build") {
              echo "Inside for loop 1"
            }
            node("linux_test") {
              echo "Inside for loop 2"
            }
          },
          windows: {
            node("windows_build") {
              echo "Inside for loop 3"
            }
            node("windows_test") {
              echo "Inside for loop 4"
            }
          }
        }
      }
    }
  }
}

 

This is what the scripted example code currently generates:

 

Add Comment Add Comment
 
This message was sent by Atlassian Jira (v7.11.2#711002-sha1:fdc329d)

andrew.bayer@gmail.com (JIRA)

unread,
Jan 17, 2019, 12:21:04 PM1/17/19
to jenkinsc...@googlegroups.com
Andrew Bayer updated an issue
Change By: Andrew Bayer
Component/s: blueocean-plugin
Component/s: pipeline
Component/s: pipeline-model-definition-plugin

andrew.bayer@gmail.com (JIRA)

unread,
Jan 17, 2019, 12:21:04 PM1/17/19
to jenkinsc...@googlegroups.com
Andrew Bayer assigned an issue to Unassigned
Change By: Andrew Bayer
Assignee: Andrew Bayer

jglick@cloudbees.com (JIRA)

unread,
Mar 27, 2019, 8:45:03 AM3/27/19
to jenkinsc...@googlegroups.com
Jesse Glick commented on Improvement JENKINS-55438
 
Re: Allow sequential stages inside parallel in Scripted syntax

First of all, the second example is not Scripted syntax; it is pseudo-Declarative (pipeline) with a script block.

Second, node is not a stage. Try using the actual stage step.

If Blue Ocean in fact refuses to display a valid Scripted build with an identical structure of parallel / stage steps that is displayed when run from a Declarative build, then I would consider that a bug rather an RFE.

an.tran@payback.net (JIRA)

unread,
Apr 2, 2019, 3:33:02 AM4/2/19
to jenkinsc...@googlegroups.com
An Tran updated an issue
 
Change By: An Tran
Attachment: Screenshot 2019-04-02 at 09.31.50.png

an.tran@payback.net (JIRA)

unread,
Apr 2, 2019, 3:34:02 AM4/2/19
to jenkinsc...@googlegroups.com
An Tran commented on Improvement JENKINS-55438
 
Re: Allow sequential stages inside parallel in Scripted syntax

I can confirm that I have the same behaviour like the author. Only one stage of scripted pipeline in  parallel branches is shown

    stage('testing') {
      steps {
        script {
          parallel "task1": {
              node("ios") {
                stage("build") {
                    echo "windows-build"
                }
                stage("deploy") {
                    echo "windows-deploy"
                }
              }
          },
          "task2": {
            node("ios") {
              stage("build") {
                  echo "windows-build"
              }
              stage("deploy") {
                  echo "windows-deploy"
              }
            }
          }
        }
      }
    }

 

an.tran@payback.net (JIRA)

unread,
Apr 2, 2019, 3:41:02 AM4/2/19
to jenkinsc...@googlegroups.com
An Tran edited a comment on Improvement JENKINS-55438
I can confirm that I have the same behaviour like that of the author. Only one stage of scripted pipeline in  parallel branches is shown

!Screenshot 2019-04-02 at 09.31.50.png!
{code:java}

    stage('testing') {
      steps {
        script {
          parallel "task1": {
              node("ios") {
                stage("build") {
                    echo "windows-build"
                }
                stage("deploy") {
                    echo "windows-deploy"
                }
              }
          },
          "task2": {
            node("ios") {
              stage("build") {
                  echo "windows-build"
              }
              stage("deploy") {
                  echo "windows-deploy"
              }
            }
          }
        }
      }
    }

{code}
 

an.tran@payback.net (JIRA)

unread,
Apr 2, 2019, 3:44:03 AM4/2/19
to jenkinsc...@googlegroups.com
An Tran edited a comment on Improvement JENKINS-55438
I can confirm that I have the same behaviour like that of the author. Only one stage of scripted pipeline in  parallel branches is shown

!Screenshot 2019-04-02 at 09.31.50.png!
{code:java}
pipeline {
  stages {
    stage('testing') {
      steps {
        script {
          parallel "task1": {
              node("ios") {
                stage("build") {
                    echo "windows-build"
                }
                stage("deploy") {
                    echo "windows-deploy"
                }
              }
          },
          "task2": {
            node("ios") {
              stage("build") {
                  echo "windows-build"
              }
              stage("deploy") {
                  echo "windows-deploy"
              }
            }
          }
        }
      }
    }
  }
} {code}
 

jglick@cloudbees.com (JIRA)

unread,
Apr 2, 2019, 8:40:03 AM4/2/19
to jenkinsc...@googlegroups.com

An Tran again that is not Scripted syntax. It is a script block inside Declarative syntax.

an.tran@payback.net (JIRA)

unread,
Apr 2, 2019, 9:42:02 AM4/2/19
to jenkinsc...@googlegroups.com

jglick@cloudbees.com (JIRA)

unread,
Apr 2, 2019, 9:46:02 AM4/2/19
to jenkinsc...@googlegroups.com

I do not know, you would need to experiment.

an.tran@payback.net (JIRA)

unread,
Apr 2, 2019, 9:57:05 AM4/2/19
to jenkinsc...@googlegroups.com
An Tran commented on Improvement JENKINS-55438

I did experiment a lot already before asking here

Ok let's keep the terminology aside.

Can you help me to understand why only one stage is shown in each parallel branch even though I habe 2 stages for each branch in my script? Is it a bug? Should I create a bug report for that?

jglick@cloudbees.com (JIRA)

unread,
Apr 2, 2019, 10:29:06 AM4/2/19
to jenkinsc...@googlegroups.com

jglick@cloudbees.com (JIRA)

unread,
Apr 2, 2019, 10:29:07 AM4/2/19
to jenkinsc...@googlegroups.com
Jesse Glick commented on Improvement JENKINS-55438
 
Re: Allow sequential stages inside parallel in Scripted syntax

I do not know how Blue Ocean works in any detail. My comment was very much about the terminology. None of the examples given so far in this issue are using actual Scripted syntax—they all start with pipeline, which is Declarative syntax, and so all bets are off.

At any rate, the closest Scripted analogue I can come up with for the original Declarative script would be

parallel 'Build and Test Linux': {
    stage("Build (Linux)") {
        echo "Inside for loop 1"
    }
    stage("Test (Linux)") {
        echo "Inside for loop 2"
    }
}, 'Build and Test Windows': {
    stage("Build (Windows)") {
        echo "Inside for loop 3"
    }
    stage("Test (Windows)") {
        echo "Inside for loop 4"
    }
}

which indeed also fails to display the stages—only the branches are shown. (Similarly when the whole script is enclosed in stage('Build and Test') {…}.)So I would consider that a bug in Blue Ocean: it should display a Pipeline build with a structure that its visualization layer supports, regardless of the syntax used to run that build. Perhaps there is some workaround that a B.O. developer could explain.

an.tran@payback.net (JIRA)

unread,
Apr 3, 2019, 2:52:54 AM4/3/19
to jenkinsc...@googlegroups.com
An Tran commented on Bug JENKINS-55438

Jesse Glick From what I see in last comment int this ticket here https://issues.jenkins-ci.org/browse/JENKINS-53048?focusedCommentId=351304&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-351304 , Adam Carroll really wants to have an improvement instead of a bug report because the UI really on supports only declarative syntax of parallel command. If there is a bug, I would open a new one and keep this as improvement.

jglick@cloudbees.com (JIRA)

unread,
Apr 3, 2019, 9:59:03 AM4/3/19
to jenkinsc...@googlegroups.com

Contra Olivier Lamy’s comment there I consider this a bug. Blue Ocean should pay attention to the build metadata as provided by official Pipeline APIs and may not make assumptions about the mechanism used to run a build, except insofar as that is intrinsically required for a certain feature. (For example, a stage restart button should only appear next to a Declarative stage, because the feature of restarting a stage is tied to Declarative semantics.)

Regardless of how the issue is classified, the question of whether it will be fixed or not depends entirely on the development team’s time and priorities.

an.tran@payback.net (JIRA)

unread,
Apr 10, 2019, 6:03:02 AM4/10/19
to jenkinsc...@googlegroups.com

acarr468@gmail.com (JIRA)

unread,
Apr 10, 2019, 4:50:02 PM4/10/19
to jenkinsc...@googlegroups.com

Thanks Jesse Glick and An Tran for digging into this more! I personally am not concerned whether or not this is a bug or improvement, as long as it is fixed . It does sound a lot like a bug to me, but I do understand the argument for it being an improvement. Whatever the best path to resolution is will be fine with me.

Based on the tickets An Tran linked above, it looks like others desire this functionality as well.

02.mahima@gmail.com (JIRA)

unread,
Nov 1, 2019, 9:07:04 AM11/1/19
to jenkinsc...@googlegroups.com
Mahima Mishra updated an issue
 
Change By: Mahima Mishra
Attachment: Screenshot from 2019-11-01 13-05-19.png
This message was sent by Atlassian Jira (v7.13.6#713006-sha1:cc4451f)
Atlassian logo

02.mahima@gmail.com (JIRA)

unread,
Nov 1, 2019, 9:08:05 AM11/1/19
to jenkinsc...@googlegroups.com

02.mahima@gmail.com (JIRA)

unread,
Nov 1, 2019, 9:08:06 AM11/1/19
to jenkinsc...@googlegroups.com
Mahima Mishra commented on Bug JENKINS-55438
 
Re: Allow sequential stages inside parallel in Scripted syntax

I am also stuck in the same situation, where I need to use scripted parallel block within declarative and the blueocean view is doesn't display the stages for scripted block correctly.

02.mahima@gmail.com (JIRA)

unread,
Nov 1, 2019, 9:09:03 AM11/1/19
to jenkinsc...@googlegroups.com
Mahima Mishra edited a comment on Bug JENKINS-55438
I am also stuck in the same situation, where I need to use scripted parallel block within declarative and the blueocean view is doesn't display the stages for scripted block correctly.
!Screenshot from 2019-11-01 13-05-19.png |thumbnail !
Reply all
Reply to author
Forward
0 new messages