Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-55320

Sequential stages into parallel for-list are not handled correctly by Blue Ocean UI

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: Major Major
    • blueocean-plugin, pipeline
    • None
    • Jenkins ver. 2.150.1
      blueocean 1.9.0

      Here a simple groovy script that demonstrate usage of sequential stages into parallel for-list:

       

      #!/bin/groovy
      def AgentsToRun = ['EpsAgent103','EpsAgent130','EpsAgent153']
      pipeline{
        agent none
        stages{
          stage ('Git'){
            steps{
              script{
                echo "Git"
              }
            }
          }
          stage ('Build'){
            steps{
              script{
                echo 'Build'
              }
            }
          }
          stage ('Parallel Run Test'){
            steps{
              script{
                def RunTests = [:]
                for (x in AgentsToRun){
                  def agent = x
                  RunTests[agent] = {
                    node (agent){
                      stage ("Pull Test to ${agent}"){
                        script{
                          echo 'Pull'
                        }
                      }
                      stage ("Run Test on ${agent}"){
                        script{
                          echo 'Test'
                        }
                      }
                      stage ("Publish Results from ${agent}") {
                        script {
                          echo 'Publish'
                        }
                      }
                    }
                  }
                }
                parallel (RunTests)
              }
            }
          }
          stage ('Final'){
            steps {
              script {
                echo 'Final'
              }
            }
          }
        }
      }
      

      Attached a snapshot of the Blue Ocean, you can see that the sequential steps are not present into the parallel stage, and the final stage is skipped.
      Best Regards,
      Mathieu

          [JENKINS-55320] Sequential stages into parallel for-list are not handled correctly by Blue Ocean UI

          Mathieu Wolf created issue -
          Mathieu Wolf made changes -
          Description Original: Here a simple groovy script that demonstrate usage of sequential stages into parallel for-list:

           
          {code:java}
          #!/bin/groovy
          def AgentsToRun = ['EpsAgent103','EpsAgent130','EpsAgent153']
          pipeline{
            agent none
            stages{
              stage ('Git'){
                steps{
                  script{
                    echo "Git"
                  }
                }
              }
              stage ('Build'){
                steps{
                  script{
                    echo 'Build'
                  }
                }
              }
              stage ('Parallel Run Test'){
                steps{
                  script{
                    def RunTests = [:]
                    for (x in AgentsToRun){
                      def agent = x
                      RunTests[agent] = {
                        node (agent){
                          stage ("Pull Test to ${agent}"){
                            script{
                              echo 'Pull'
                            }
                          }
                          stage ("Run Test on ${agent}"){
                            script{
                              echo 'Test'
                            }
                          }
                          stage ("Publish Results from ${agent}") {
                            script {
                              echo 'Publish'
                            }
                          }
                        }
                      }
                    }
                    parallel (RunTests)
                  }
                }
              }
              stage ('Final'){
                steps {
                  script {
                    echo 'Final'
                  }
                }
              }
            }
          }
          {code}
          Attached a snapshot of the Blue Ocean, you can see that now sequential steps are present into the parallel stage, and the final stage is skipped.
           Best Regards,
           Mathieu
          New: Here a simple groovy script that demonstrate usage of sequential stages into parallel for-list:

           
          {code:java}
          #!/bin/groovy
          def AgentsToRun = ['EpsAgent103','EpsAgent130','EpsAgent153']
          pipeline{
            agent none
            stages{
              stage ('Git'){
                steps{
                  script{
                    echo "Git"
                  }
                }
              }
              stage ('Build'){
                steps{
                  script{
                    echo 'Build'
                  }
                }
              }
              stage ('Parallel Run Test'){
                steps{
                  script{
                    def RunTests = [:]
                    for (x in AgentsToRun){
                      def agent = x
                      RunTests[agent] = {
                        node (agent){
                          stage ("Pull Test to ${agent}"){
                            script{
                              echo 'Pull'
                            }
                          }
                          stage ("Run Test on ${agent}"){
                            script{
                              echo 'Test'
                            }
                          }
                          stage ("Publish Results from ${agent}") {
                            script {
                              echo 'Publish'
                            }
                          }
                        }
                      }
                    }
                    parallel (RunTests)
                  }
                }
              }
              stage ('Final'){
                steps {
                  script {
                    echo 'Final'
                  }
                }
              }
            }
          }
          {code}
          Attached a snapshot of the Blue Ocean, you can see that the sequential steps are not present into the parallel stage, and the final stage is skipped.
          Best Regards,
          Mathieu
          Mathieu Wolf made changes -
          Attachment New: Console.txt [ 45532 ]
          Mathieu Wolf made changes -
          Environment New: Jenkins ver. 2.150.1
          blueocean 1.9.0
          Mathieu Wolf made changes -
          Priority Original: Critical [ 2 ] New: Major [ 3 ]

          Mathieu Wolf added a comment -

          No one?

          I opened this bug 3 months ago.

           

          Mathieu Wolf added a comment - No one? I opened this bug 3 months ago.  

          Michael Neale added a comment -

          Scripted pipelines (which this is, with script block) can't be arbitrarily visualised, I can't see this being solved any time soon. 

          There needs to be a better design for massively parallel things too (which often a loop is). 

          Michael Neale added a comment - Scripted pipelines (which this is, with script block) can't be arbitrarily visualised, I can't see this being solved any time soon.  There needs to be a better design for massively parallel things too (which often a loop is). 

          Liam Newman added a comment -

          I would also suggest that this is "Won't fix/by design".
          It is less a bug and more a request for new feature that is not going to be implemented in the foreseeable future.

          Something like this might be added to declarative in the form of a "matrix" directive, but it would not look like this.

          Liam Newman added a comment - I would also suggest that this is "Won't fix/by design". It is less a bug and more a request for new feature that is not going to be implemented in the foreseeable future. Something like this might be added to declarative in the form of a "matrix" directive, but it would not look like this.

          Michael Neale added a comment -

          Won't fix - as is a fundamental design issue. 

          Michael Neale added a comment - Won't fix - as is a fundamental design issue. 
          Michael Neale made changes -
          Resolution New: Won't Fix [ 2 ]
          Status Original: Open [ 1 ] New: Fixed but Unreleased [ 10203 ]

            Unassigned Unassigned
            matw Mathieu Wolf
            Votes:
            2 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: