`when` only stores TagsAction for first occurrence of stage name (matrix limitation)

This issue is archived. You can view it, but you can't modify it. Learn more

XMLWordPrintable

      see https://github.com/jenkinsci/pipeline-graph-view-plugin/issues/220

      specifically https://github.com/jenkinsci/pipeline-model-definition-plugin/blob/76afff0a26188ad6ced215e4663cd2115c003a74/pipeline-model-definition/src/main/groovy/org/jenkinsci/plugins/pipeline/modeldefinition/Utils.groovy#L240

      Stage name and ForkScanner is used rather than passing flownodes around.
      It just picks the first stage rather than the correct one.

      This can only happen in matrix pipelines.
      Regular declarative pipelines have this behaviour blocked:

      20:04:25  org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
      20:04:25  WorkflowScript: 4: Duplicate stage name: "Skipped" @ line 4, column 5.
      20:04:25         stages {
      

      but matrix can have duplicates:

      pipeline {
          agent none
          stages {
              stage('BuildAndTest') {
                  matrix {
                      agent any
                      axes {
                          axis {
                              name 'PLATFORM'
                              values 'linux', 'windows'
                          }
                          axis {
                              name 'BROWSER'
                              values 'firefox'
                          }
                      }
                      stages {
                          stage('Build') {
                              when {
                                  branch 'testing'
                              }
                              steps {
                                  echo "Do Build for ${PLATFORM} - ${BROWSER}"
                              }
                              
                          }
                      }
                  }
              }
          }
      }
      

      Looks like BlueOcean didn't fully switch to using TagsAction and falls back to not built if nothing is set.

            Assignee:
            Tim Jacomb
            Reporter:
            Tim Jacomb
            Archiver:
            Jenkins Service Account

              Created:
              Updated:
              Archived: