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

Parallel nodes for scripted pipelines cannot be clicked

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Major Major
    • blueocean-plugin
    • Jenkins version 2.46.1, Blue Origin 1.0.1,
      Chrome 58.0.3029.96, Safari 10.1

      Jenkins is installed via yum on a CentOS machine and is not using a reverse proxy.
    • Blue Ocean 1.1

      Problem

      • Parallel nodes defined within a script block cannot be selected while running
      • Parallel nodes defined in Pipeline script cannot be selected

      Notes

      • Parallel nodes for declarative are NOT broken
      • Verified on 1.1-beta2 as well as 1.0.1

      Screencast

       

      To reproduce, run one of the scripts below as a non multibranch pipeline - note that you can't click on an in progress branch. 

      I have tested with the following combinations and all of them had this problem

      Jenkins using script syntax and non-dynamic parallel

      node {
          stage("Build/Test") {
              parallel(
                "b1": {
                  sh 'ping -c 5 localhost'
                },
                "b2": {
                  sh 'ping -c 10 localhost'
                },
                "b3": {
                  sh 'ping -c 20 localhost'
                }
              )
          }
      }
      

      Jenkinsfile using script syntax and dynamic parallel

      node {
          stage("Build/Test") {
              def builds = [:]
      
              for (def option in ["one", "two"]) {
                      def node_name = ""
                      if ("one" == "${option}") {
                          node_name = "node001"
                      } else {
                          node_name = "node002"
                      }
                      
                      def option_inside = "${option}"
                      
                      builds["${node_name} ${option_inside}"] = {
                          node {
                              stage("Build Test ${node_name} ${option_inside}") {
                                  sh 'ping -c 10 localhost'
                              }
                          }
                      }
              }
              parallel builds
          }
      }
      

      Jenkinsfile using script syntax without inner stages

      node {
          stage("Build/Test") {
              def builds = [:]
      
              for (def option in ["one", "two"]) {
                      def node_name = ""
                      if ("one" == "${option}") {
                          node_name = "node001"
                      } else {
                          node_name = "node002"
                      }
                      
                      def option_inside = "${option}"
                      
                      builds["${node_name} ${option_inside}"] = {
                          node {
                              sh 'ping -c 10 localhost'
                          }
                      }
              }
              parallel builds
          }
      }
      

      Declarative Jenkinsfile using script block

      pipeline {
          agent none
          stages {
              stage("Build/Test") {
                  steps {
                      script {
                        def builds = [:]
      
                        for (def option in ["one", "two"]) {
                                def node_name = ""
                                if ("one" == "${option}") {
                                    node_name = "node001"
                                } else {
                                    node_name = "node002"
                                }
                                
                                def option_inside = "${option}"
                                
                                builds["${node_name} ${option_inside}"] = {
                                    node {
                                        stage("Build Test ${node_name} ${option_inside}") {
                                            sh 'ping -c 10 localhost'
                                        }
                                    }
                                }
                        }
                        parallel builds
                      }
                  }
              }
          }
      }
      

          [JENKINS-44086] Parallel nodes for scripted pipelines cannot be clicked

          Wesley Bland created issue -
          James Dumay made changes -
          Epic Link New: JENKINS-43953 [ 181485 ]
          James Dumay made changes -
          Assignee New: James Dumay [ jamesdumay ]
          James Dumay made changes -
          Sprint New: Blue Ocean 1.1-beta3 [ 316 ]
          James Dumay made changes -
          Description Original: I have a pipeline that generates multiple parallel nodes/stages. I've simplified my use case below:
          {noformat}
          pipeline {
              agent none
              stages {
                  stage("Build/Test") {
                      steps {
                          script {
                              def builds = [:]
                              
                              for (def option in ["one", "two"]) {
                                      def node_name = ""
                                      if ("one" == "${option}") {
                                          node_name = "node001"
                                      } else {
                                          node_name = "node002"
                                      }
                                      
                                      def option_inside = "${option}"
                                      
                                      builds["${node_name} ${option_inside}"] = {
                                          node ("${node_name}") {
                                              stage("Build Test ${node_name} ${option_inside}") {
                                                  unstash "${node_name}-tarball"
                                                  sh "$HOME/software/jenkins_scripts/nightly.sh ${config_inside} gnu ${option_inside} yes"
                                              }
                                          }
                                      }
                                  }
                              }
                              
                              parallel builds
                          }
                      }
                  }
              }
          }
          {noformat}
          This produces a job that looks like the screen shot below (with more options in the screenshot). The issue is that I can't click on any of the stages that are running except for the topmost one. I can click on any of the stages that are completed.

          This is a pain because it means that there's no way to get an update on in progress jobs, which is a problem for me because our jobs can sometimes run for as long as 8 hours. I don't think this is an issue with the browser or OS, but hopefully you'll tell me that it is and I can try to fix things on my end.
          New: *Problem*
          Parallel nodes defined within a script block cannot be selected

          !node-within-script-block.gif!

          *Jenkinsfile*
          {code}
          pipeline {
              agent none
              stages {
                  stage("Build/Test") {
                      steps {
                          script {
                            def builds = [:]

                            for (def option in ["one", "two"]) {
                                    def node_name = ""
                                    if ("one" == "${option}") {
                                        node_name = "node001"
                                    } else {
                                        node_name = "node002"
                                    }
                                    
                                    def option_inside = "${option}"
                                    
                                    builds["${node_name} ${option_inside}"] = {
                                        node {
                                            stage("Build Test ${node_name} ${option_inside}") {
                                                sh 'ping -c 10 localhost'
                                            }
                                        }
                                    }
                            }
                            parallel builds
                          }
                      }
                  }
              }
          }
          {code}

          *Original request*
          I have a pipeline that generates multiple parallel nodes/stages. I've simplified my use case below:
          {noformat}
          pipeline {
              agent none
              stages {
                  stage("Build/Test") {
                      steps {
                          script {
                              def builds = [:]
                              
                              for (def option in ["one", "two"]) {
                                      def node_name = ""
                                      if ("one" == "${option}") {
                                          node_name = "node001"
                                      } else {
                                          node_name = "node002"
                                      }
                                      
                                      def option_inside = "${option}"
                                      
                                      builds["${node_name} ${option_inside}"] = {
                                          node ("${node_name}") {
                                              stage("Build Test ${node_name} ${option_inside}") {
                                                  unstash "${node_name}-tarball"
                                                  sh "$HOME/software/jenkins_scripts/nightly.sh ${config_inside} gnu ${option_inside} yes"
                                              }
                                          }
                                      }
                                  }
                              }
                              
                              parallel builds
                          }
                      }
                  }
              }
          }
          {noformat}
          This produces a job that looks like the screen shot below (with more options in the screenshot). The issue is that I can't click on any of the stages that are running except for the topmost one. I can click on any of the stages that are completed.

          This is a pain because it means that there's no way to get an update on in progress jobs, which is a problem for me because our jobs can sometimes run for as long as 8 hours. I don't think this is an issue with the browser or OS, but hopefully you'll tell me that it is and I can try to fix things on my end.
          James Dumay made changes -
          Attachment New: node-within-script-block.gif [ 37627 ]
          James Dumay made changes -
          Description Original: *Problem*
          Parallel nodes defined within a script block cannot be selected

          !node-within-script-block.gif!

          *Jenkinsfile*
          {code}
          pipeline {
              agent none
              stages {
                  stage("Build/Test") {
                      steps {
                          script {
                            def builds = [:]

                            for (def option in ["one", "two"]) {
                                    def node_name = ""
                                    if ("one" == "${option}") {
                                        node_name = "node001"
                                    } else {
                                        node_name = "node002"
                                    }
                                    
                                    def option_inside = "${option}"
                                    
                                    builds["${node_name} ${option_inside}"] = {
                                        node {
                                            stage("Build Test ${node_name} ${option_inside}") {
                                                sh 'ping -c 10 localhost'
                                            }
                                        }
                                    }
                            }
                            parallel builds
                          }
                      }
                  }
              }
          }
          {code}

          *Original request*
          I have a pipeline that generates multiple parallel nodes/stages. I've simplified my use case below:
          {noformat}
          pipeline {
              agent none
              stages {
                  stage("Build/Test") {
                      steps {
                          script {
                              def builds = [:]
                              
                              for (def option in ["one", "two"]) {
                                      def node_name = ""
                                      if ("one" == "${option}") {
                                          node_name = "node001"
                                      } else {
                                          node_name = "node002"
                                      }
                                      
                                      def option_inside = "${option}"
                                      
                                      builds["${node_name} ${option_inside}"] = {
                                          node ("${node_name}") {
                                              stage("Build Test ${node_name} ${option_inside}") {
                                                  unstash "${node_name}-tarball"
                                                  sh "$HOME/software/jenkins_scripts/nightly.sh ${config_inside} gnu ${option_inside} yes"
                                              }
                                          }
                                      }
                                  }
                              }
                              
                              parallel builds
                          }
                      }
                  }
              }
          }
          {noformat}
          This produces a job that looks like the screen shot below (with more options in the screenshot). The issue is that I can't click on any of the stages that are running except for the topmost one. I can click on any of the stages that are completed.

          This is a pain because it means that there's no way to get an update on in progress jobs, which is a problem for me because our jobs can sometimes run for as long as 8 hours. I don't think this is an issue with the browser or OS, but hopefully you'll tell me that it is and I can try to fix things on my end.
          New: *Problem*
          Parallel nodes defined within a script block cannot be selected

          !node-within-script-block.gif|thumbnail!

          *Jenkinsfile*
          {code}
          pipeline {
              agent none
              stages {
                  stage("Build/Test") {
                      steps {
                          script {
                            def builds = [:]

                            for (def option in ["one", "two"]) {
                                    def node_name = ""
                                    if ("one" == "${option}") {
                                        node_name = "node001"
                                    } else {
                                        node_name = "node002"
                                    }
                                    
                                    def option_inside = "${option}"
                                    
                                    builds["${node_name} ${option_inside}"] = {
                                        node {
                                            stage("Build Test ${node_name} ${option_inside}") {
                                                sh 'ping -c 10 localhost'
                                            }
                                        }
                                    }
                            }
                            parallel builds
                          }
                      }
                  }
              }
          }
          {code}

          *Original request*
          I have a pipeline that generates multiple parallel nodes/stages. I've simplified my use case below:
          {noformat}
          pipeline {
              agent none
              stages {
                  stage("Build/Test") {
                      steps {
                          script {
                              def builds = [:]
                              
                              for (def option in ["one", "two"]) {
                                      def node_name = ""
                                      if ("one" == "${option}") {
                                          node_name = "node001"
                                      } else {
                                          node_name = "node002"
                                      }
                                      
                                      def option_inside = "${option}"
                                      
                                      builds["${node_name} ${option_inside}"] = {
                                          node ("${node_name}") {
                                              stage("Build Test ${node_name} ${option_inside}") {
                                                  unstash "${node_name}-tarball"
                                                  sh "$HOME/software/jenkins_scripts/nightly.sh ${config_inside} gnu ${option_inside} yes"
                                              }
                                          }
                                      }
                                  }
                              }
                              
                              parallel builds
                          }
                      }
                  }
              }
          }
          {noformat}
          This produces a job that looks like the screen shot below (with more options in the screenshot). The issue is that I can't click on any of the stages that are running except for the topmost one. I can click on any of the stages that are completed.

          This is a pain because it means that there's no way to get an update on in progress jobs, which is a problem for me because our jobs can sometimes run for as long as 8 hours. I don't think this is an issue with the browser or OS, but hopefully you'll tell me that it is and I can try to fix things on my end.
          James Dumay made changes -
          Summary Original: Clicking on multiple "in progress" in Blue Ocean stages doesn't work New: Parallel nodes defined within a script block cannot be selected
          James Dumay made changes -
          Description Original: *Problem*
          Parallel nodes defined within a script block cannot be selected

          !node-within-script-block.gif|thumbnail!

          *Jenkinsfile*
          {code}
          pipeline {
              agent none
              stages {
                  stage("Build/Test") {
                      steps {
                          script {
                            def builds = [:]

                            for (def option in ["one", "two"]) {
                                    def node_name = ""
                                    if ("one" == "${option}") {
                                        node_name = "node001"
                                    } else {
                                        node_name = "node002"
                                    }
                                    
                                    def option_inside = "${option}"
                                    
                                    builds["${node_name} ${option_inside}"] = {
                                        node {
                                            stage("Build Test ${node_name} ${option_inside}") {
                                                sh 'ping -c 10 localhost'
                                            }
                                        }
                                    }
                            }
                            parallel builds
                          }
                      }
                  }
              }
          }
          {code}

          *Original request*
          I have a pipeline that generates multiple parallel nodes/stages. I've simplified my use case below:
          {noformat}
          pipeline {
              agent none
              stages {
                  stage("Build/Test") {
                      steps {
                          script {
                              def builds = [:]
                              
                              for (def option in ["one", "two"]) {
                                      def node_name = ""
                                      if ("one" == "${option}") {
                                          node_name = "node001"
                                      } else {
                                          node_name = "node002"
                                      }
                                      
                                      def option_inside = "${option}"
                                      
                                      builds["${node_name} ${option_inside}"] = {
                                          node ("${node_name}") {
                                              stage("Build Test ${node_name} ${option_inside}") {
                                                  unstash "${node_name}-tarball"
                                                  sh "$HOME/software/jenkins_scripts/nightly.sh ${config_inside} gnu ${option_inside} yes"
                                              }
                                          }
                                      }
                                  }
                              }
                              
                              parallel builds
                          }
                      }
                  }
              }
          }
          {noformat}
          This produces a job that looks like the screen shot below (with more options in the screenshot). The issue is that I can't click on any of the stages that are running except for the topmost one. I can click on any of the stages that are completed.

          This is a pain because it means that there's no way to get an update on in progress jobs, which is a problem for me because our jobs can sometimes run for as long as 8 hours. I don't think this is an issue with the browser or OS, but hopefully you'll tell me that it is and I can try to fix things on my end.
          New: *Problem*
          Parallel nodes defined within a script block cannot be selected

          !node-within-script-block.gif|thumbnail!

          *Jenkinsfile using script syntax*
          {code}
          node {
              stage("Build/Test") {
                  def builds = [:]

                  for (def option in ["one", "two"]) {
                          def node_name = ""
                          if ("one" == "${option}") {
                              node_name = "node001"
                          } else {
                              node_name = "node002"
                          }
                          
                          def option_inside = "${option}"
                          
                          builds["${node_name} ${option_inside}"] = {
                              node {
                                  stage("Build Test ${node_name} ${option_inside}") {
                                      sh 'ping -c 10 localhost'
                                  }
                              }
                          }
                  }
                  parallel builds
              }
          }
          {code}

          *Declarative Jenkinsfile using script block*
          {code}
          pipeline {
              agent none
              stages {
                  stage("Build/Test") {
                      steps {
                          script {
                            def builds = [:]

                            for (def option in ["one", "two"]) {
                                    def node_name = ""
                                    if ("one" == "${option}") {
                                        node_name = "node001"
                                    } else {
                                        node_name = "node002"
                                    }
                                    
                                    def option_inside = "${option}"
                                    
                                    builds["${node_name} ${option_inside}"] = {
                                        node {
                                            stage("Build Test ${node_name} ${option_inside}") {
                                                sh 'ping -c 10 localhost'
                                            }
                                        }
                                    }
                            }
                            parallel builds
                          }
                      }
                  }
              }
          }
          {code}

          *Original request*
          I have a pipeline that generates multiple parallel nodes/stages. I've simplified my use case below:
          {noformat}
          pipeline {
              agent none
              stages {
                  stage("Build/Test") {
                      steps {
                          script {
                              def builds = [:]
                              
                              for (def option in ["one", "two"]) {
                                      def node_name = ""
                                      if ("one" == "${option}") {
                                          node_name = "node001"
                                      } else {
                                          node_name = "node002"
                                      }
                                      
                                      def option_inside = "${option}"
                                      
                                      builds["${node_name} ${option_inside}"] = {
                                          node ("${node_name}") {
                                              stage("Build Test ${node_name} ${option_inside}") {
                                                  unstash "${node_name}-tarball"
                                                  sh "$HOME/software/jenkins_scripts/nightly.sh ${config_inside} gnu ${option_inside} yes"
                                              }
                                          }
                                      }
                                  }
                              }
                              
                              parallel builds
                          }
                      }
                  }
              }
          }
          {noformat}
          This produces a job that looks like the screen shot below (with more options in the screenshot). The issue is that I can't click on any of the stages that are running except for the topmost one. I can click on any of the stages that are completed.

          This is a pain because it means that there's no way to get an update on in progress jobs, which is a problem for me because our jobs can sometimes run for as long as 8 hours. I don't think this is an issue with the browser or OS, but hopefully you'll tell me that it is and I can try to fix things on my end.
          James Dumay made changes -
          Description Original: *Problem*
          Parallel nodes defined within a script block cannot be selected

          !node-within-script-block.gif|thumbnail!

          *Jenkinsfile using script syntax*
          {code}
          node {
              stage("Build/Test") {
                  def builds = [:]

                  for (def option in ["one", "two"]) {
                          def node_name = ""
                          if ("one" == "${option}") {
                              node_name = "node001"
                          } else {
                              node_name = "node002"
                          }
                          
                          def option_inside = "${option}"
                          
                          builds["${node_name} ${option_inside}"] = {
                              node {
                                  stage("Build Test ${node_name} ${option_inside}") {
                                      sh 'ping -c 10 localhost'
                                  }
                              }
                          }
                  }
                  parallel builds
              }
          }
          {code}

          *Declarative Jenkinsfile using script block*
          {code}
          pipeline {
              agent none
              stages {
                  stage("Build/Test") {
                      steps {
                          script {
                            def builds = [:]

                            for (def option in ["one", "two"]) {
                                    def node_name = ""
                                    if ("one" == "${option}") {
                                        node_name = "node001"
                                    } else {
                                        node_name = "node002"
                                    }
                                    
                                    def option_inside = "${option}"
                                    
                                    builds["${node_name} ${option_inside}"] = {
                                        node {
                                            stage("Build Test ${node_name} ${option_inside}") {
                                                sh 'ping -c 10 localhost'
                                            }
                                        }
                                    }
                            }
                            parallel builds
                          }
                      }
                  }
              }
          }
          {code}

          *Original request*
          I have a pipeline that generates multiple parallel nodes/stages. I've simplified my use case below:
          {noformat}
          pipeline {
              agent none
              stages {
                  stage("Build/Test") {
                      steps {
                          script {
                              def builds = [:]
                              
                              for (def option in ["one", "two"]) {
                                      def node_name = ""
                                      if ("one" == "${option}") {
                                          node_name = "node001"
                                      } else {
                                          node_name = "node002"
                                      }
                                      
                                      def option_inside = "${option}"
                                      
                                      builds["${node_name} ${option_inside}"] = {
                                          node ("${node_name}") {
                                              stage("Build Test ${node_name} ${option_inside}") {
                                                  unstash "${node_name}-tarball"
                                                  sh "$HOME/software/jenkins_scripts/nightly.sh ${config_inside} gnu ${option_inside} yes"
                                              }
                                          }
                                      }
                                  }
                              }
                              
                              parallel builds
                          }
                      }
                  }
              }
          }
          {noformat}
          This produces a job that looks like the screen shot below (with more options in the screenshot). The issue is that I can't click on any of the stages that are running except for the topmost one. I can click on any of the stages that are completed.

          This is a pain because it means that there's no way to get an update on in progress jobs, which is a problem for me because our jobs can sometimes run for as long as 8 hours. I don't think this is an issue with the browser or OS, but hopefully you'll tell me that it is and I can try to fix things on my end.
          New: *Problem*
          * Parallel nodes defined within a script block cannot be selected
          * Parallel nodes defined in Pipeline script cannot be selected

          !node-within-script-block.gif|thumbnail!

          *Jenkinsfile using script syntax*
          {code}
          node {
              stage("Build/Test") {
                  def builds = [:]

                  for (def option in ["one", "two"]) {
                          def node_name = ""
                          if ("one" == "${option}") {
                              node_name = "node001"
                          } else {
                              node_name = "node002"
                          }
                          
                          def option_inside = "${option}"
                          
                          builds["${node_name} ${option_inside}"] = {
                              node {
                                  stage("Build Test ${node_name} ${option_inside}") {
                                      sh 'ping -c 10 localhost'
                                  }
                              }
                          }
                  }
                  parallel builds
              }
          }
          {code}

          *Declarative Jenkinsfile using script block*
          {code}
          pipeline {
              agent none
              stages {
                  stage("Build/Test") {
                      steps {
                          script {
                            def builds = [:]

                            for (def option in ["one", "two"]) {
                                    def node_name = ""
                                    if ("one" == "${option}") {
                                        node_name = "node001"
                                    } else {
                                        node_name = "node002"
                                    }
                                    
                                    def option_inside = "${option}"
                                    
                                    builds["${node_name} ${option_inside}"] = {
                                        node {
                                            stage("Build Test ${node_name} ${option_inside}") {
                                                sh 'ping -c 10 localhost'
                                            }
                                        }
                                    }
                            }
                            parallel builds
                          }
                      }
                  }
              }
          }
          {code}

          *Original request*
          I have a pipeline that generates multiple parallel nodes/stages. I've simplified my use case below:
          {noformat}
          pipeline {
              agent none
              stages {
                  stage("Build/Test") {
                      steps {
                          script {
                              def builds = [:]
                              
                              for (def option in ["one", "two"]) {
                                      def node_name = ""
                                      if ("one" == "${option}") {
                                          node_name = "node001"
                                      } else {
                                          node_name = "node002"
                                      }
                                      
                                      def option_inside = "${option}"
                                      
                                      builds["${node_name} ${option_inside}"] = {
                                          node ("${node_name}") {
                                              stage("Build Test ${node_name} ${option_inside}") {
                                                  unstash "${node_name}-tarball"
                                                  sh "$HOME/software/jenkins_scripts/nightly.sh ${config_inside} gnu ${option_inside} yes"
                                              }
                                          }
                                      }
                                  }
                              }
                              
                              parallel builds
                          }
                      }
                  }
              }
          }
          {noformat}
          This produces a job that looks like the screen shot below (with more options in the screenshot). The issue is that I can't click on any of the stages that are running except for the topmost one. I can click on any of the stages that are completed.

          This is a pain because it means that there's no way to get an update on in progress jobs, which is a problem for me because our jobs can sometimes run for as long as 8 hours. I don't think this is an issue with the browser or OS, but hopefully you'll tell me that it is and I can try to fix things on my end.
          James Dumay made changes -
          Description Original: *Problem*
          * Parallel nodes defined within a script block cannot be selected
          * Parallel nodes defined in Pipeline script cannot be selected

          !node-within-script-block.gif|thumbnail!

          *Jenkinsfile using script syntax*
          {code}
          node {
              stage("Build/Test") {
                  def builds = [:]

                  for (def option in ["one", "two"]) {
                          def node_name = ""
                          if ("one" == "${option}") {
                              node_name = "node001"
                          } else {
                              node_name = "node002"
                          }
                          
                          def option_inside = "${option}"
                          
                          builds["${node_name} ${option_inside}"] = {
                              node {
                                  stage("Build Test ${node_name} ${option_inside}") {
                                      sh 'ping -c 10 localhost'
                                  }
                              }
                          }
                  }
                  parallel builds
              }
          }
          {code}

          *Declarative Jenkinsfile using script block*
          {code}
          pipeline {
              agent none
              stages {
                  stage("Build/Test") {
                      steps {
                          script {
                            def builds = [:]

                            for (def option in ["one", "two"]) {
                                    def node_name = ""
                                    if ("one" == "${option}") {
                                        node_name = "node001"
                                    } else {
                                        node_name = "node002"
                                    }
                                    
                                    def option_inside = "${option}"
                                    
                                    builds["${node_name} ${option_inside}"] = {
                                        node {
                                            stage("Build Test ${node_name} ${option_inside}") {
                                                sh 'ping -c 10 localhost'
                                            }
                                        }
                                    }
                            }
                            parallel builds
                          }
                      }
                  }
              }
          }
          {code}

          *Original request*
          I have a pipeline that generates multiple parallel nodes/stages. I've simplified my use case below:
          {noformat}
          pipeline {
              agent none
              stages {
                  stage("Build/Test") {
                      steps {
                          script {
                              def builds = [:]
                              
                              for (def option in ["one", "two"]) {
                                      def node_name = ""
                                      if ("one" == "${option}") {
                                          node_name = "node001"
                                      } else {
                                          node_name = "node002"
                                      }
                                      
                                      def option_inside = "${option}"
                                      
                                      builds["${node_name} ${option_inside}"] = {
                                          node ("${node_name}") {
                                              stage("Build Test ${node_name} ${option_inside}") {
                                                  unstash "${node_name}-tarball"
                                                  sh "$HOME/software/jenkins_scripts/nightly.sh ${config_inside} gnu ${option_inside} yes"
                                              }
                                          }
                                      }
                                  }
                              }
                              
                              parallel builds
                          }
                      }
                  }
              }
          }
          {noformat}
          This produces a job that looks like the screen shot below (with more options in the screenshot). The issue is that I can't click on any of the stages that are running except for the topmost one. I can click on any of the stages that are completed.

          This is a pain because it means that there's no way to get an update on in progress jobs, which is a problem for me because our jobs can sometimes run for as long as 8 hours. I don't think this is an issue with the browser or OS, but hopefully you'll tell me that it is and I can try to fix things on my end.
          New: *Problem*
          * Parallel nodes defined within a script block cannot be selected
          * Parallel nodes defined in Pipeline script cannot be selected
          * Parallel nodes for declarative are NOT broken

          *Screencast*
          !node-within-script-block.gif|thumbnail!

          *Jenkinsfile using script syntax*
          {code}
          node {
              stage("Build/Test") {
                  def builds = [:]

                  for (def option in ["one", "two"]) {
                          def node_name = ""
                          if ("one" == "${option}") {
                              node_name = "node001"
                          } else {
                              node_name = "node002"
                          }
                          
                          def option_inside = "${option}"
                          
                          builds["${node_name} ${option_inside}"] = {
                              node {
                                  stage("Build Test ${node_name} ${option_inside}") {
                                      sh 'ping -c 10 localhost'
                                  }
                              }
                          }
                  }
                  parallel builds
              }
          }
          {code}

          *Declarative Jenkinsfile using script block*
          {code}
          pipeline {
              agent none
              stages {
                  stage("Build/Test") {
                      steps {
                          script {
                            def builds = [:]

                            for (def option in ["one", "two"]) {
                                    def node_name = ""
                                    if ("one" == "${option}") {
                                        node_name = "node001"
                                    } else {
                                        node_name = "node002"
                                    }
                                    
                                    def option_inside = "${option}"
                                    
                                    builds["${node_name} ${option_inside}"] = {
                                        node {
                                            stage("Build Test ${node_name} ${option_inside}") {
                                                sh 'ping -c 10 localhost'
                                            }
                                        }
                                    }
                            }
                            parallel builds
                          }
                      }
                  }
              }
          }
          {code}

          *Original request*
          I have a pipeline that generates multiple parallel nodes/stages. I've simplified my use case below:
          {noformat}
          pipeline {
              agent none
              stages {
                  stage("Build/Test") {
                      steps {
                          script {
                              def builds = [:]
                              
                              for (def option in ["one", "two"]) {
                                      def node_name = ""
                                      if ("one" == "${option}") {
                                          node_name = "node001"
                                      } else {
                                          node_name = "node002"
                                      }
                                      
                                      def option_inside = "${option}"
                                      
                                      builds["${node_name} ${option_inside}"] = {
                                          node ("${node_name}") {
                                              stage("Build Test ${node_name} ${option_inside}") {
                                                  unstash "${node_name}-tarball"
                                                  sh "$HOME/software/jenkins_scripts/nightly.sh ${config_inside} gnu ${option_inside} yes"
                                              }
                                          }
                                      }
                                  }
                              }
                              
                              parallel builds
                          }
                      }
                  }
              }
          }
          {noformat}
          This produces a job that looks like the screen shot below (with more options in the screenshot). The issue is that I can't click on any of the stages that are running except for the topmost one. I can click on any of the stages that are completed.

          This is a pain because it means that there's no way to get an update on in progress jobs, which is a problem for me because our jobs can sometimes run for as long as 8 hours. I don't think this is an issue with the browser or OS, but hopefully you'll tell me that it is and I can try to fix things on my end.

            Unassigned Unassigned
            wbland Wesley Bland
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: