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

"when changeset" not working in P4 multibranch pipeline with Windows Jenkins Master

    • Icon: Bug Bug
    • Resolution: Won't Fix
    • Icon: Blocker Blocker
    • p4-plugin
    • Jenkins 2.203
      P4-Plugin 1.10.6

      I am following this recent example and it does not seem to work for multibranch P4. All of the echo commands show that the changeset information is fully available, but the when changeset conditional never passes:

      pipeline {  agent { label 'master' }  stages {
         stage("Test changeset"){
              when { changeset "**/Jenkinsfile"}
                  steps{ echo "The changeset test worked!!"}
              }
          stage("Display changeset?") {
            steps {
              script {
                 def changeLogSets = currentBuild.changeSets           for (int i = 0; i < changeLogSets.size(); i++) {
                 def entries = changeLogSets[i].items           for (int j = 0; j < entries.length; j++) {
                     def entry = entries[j]
                     echo "${entry.commitId} by ${entry.author} on ${new Date(entry.timestamp)}: ${entry.msg}"               def files = new ArrayList(entry.affectedFiles)               for (int k = 0; k < files.size(); k++) {
                         def file = files[k]
                         echo " ${file.editType.name} ${file.path}"               }
                  }
                 }
              }
            }
      

      Results:

      [Pipeline] }
      [Pipeline] // stage
      [Pipeline] stage
      [Pipeline] { (Test changeset)
      Stage "Test changeset" skipped due to when conditional
      [Pipeline] }
      [Pipeline] // stage
      [Pipeline] stage
      [Pipeline] { (Display changeset?)
      [Pipeline] script
      [Pipeline] {
      [Pipeline] echo
      66 by jesse on Tue Nov 05 03:40:41 PST 2019: Polling time adjust
      [Pipeline] echo
       edit //streams/Dev-Jenkins/Jenkinsfile
      [Pipeline] }
      [Pipeline] // script
      [Pipeline] }
      [Pipeline] // stage

      Is this a bug?

          [JENKINS-60066] "when changeset" not working in P4 multibranch pipeline with Windows Jenkins Master

          Jesse Rapczak created issue -
          Jesse Rapczak made changes -
          Description Original: I am following this recent example and it does not seem to work for multibranch P4. All of the echo commands show that the changeset information is fully available, but the when changeset conditional never passes:
           stage("Test changeset"){
           when
          stage("Test changeset"){
                  when { changeset "**/Jenkinsfile"}
                      steps{ echo "The changeset test worked!!"}
                  }
              stage("Display changeset?") {
                steps {
                  script {
                     def changeLogSets = currentBuild.changeSets for (int i = 0; i < changeLogSets.size(); i++) {
                     def entries = changeLogSets[i].items for (int j = 0; j < entries.length; j++) {
                         def entry = entries[j]
                         echo "${entry.commitId} by ${entry.author} on ${new Date(entry.timestamp)}: ${entry.msg}" def files = new ArrayList(entry.affectedFiles) for (int k = 0; k < files.size(); k++) {
                             def file = files[k]
                             echo " ${file.editType.name} ${file.path}" }
                      }
                     }
                  }
                }
          Results:
          {noformat}
          [Pipeline] }
          [Pipeline] // stage
          [Pipeline] stage
          [Pipeline] { (Test changeset)
          Stage "Test changeset" skipped due to when conditional
          [Pipeline] }
          [Pipeline] // stage
          [Pipeline] stage
          [Pipeline] { (Display changeset?)
          [Pipeline] script
          [Pipeline] {
          [Pipeline] echo
          66 by jesse on Tue Nov 05 03:40:41 PST 2019: Polling time adjust
          [Pipeline] echo
           edit //streams/Dev-Jenkins/Jenkinsfile
          [Pipeline] }
          [Pipeline] // script
          [Pipeline] }
          [Pipeline] // stage{noformat}
          Is this a bug?
          New: I am following this recent example and it does not seem to work for multibranch P4. All of the echo commands show that the changeset information is fully available, but the when changeset conditional never passes:
          pipeline { agent { label 'master' } stages {
             stage("Test changeset"){
                  when { changeset "**/Jenkinsfile"}
                      steps{ echo "The changeset test worked!!"}
                  }
              stage("Display changeset?") {
                steps {
                  script {
                     def changeLogSets = currentBuild.changeSets for (int i = 0; i < changeLogSets.size(); i++) {
                     def entries = changeLogSets[i].items for (int j = 0; j < entries.length; j++) {
                         def entry = entries[j]
                         echo "${entry.commitId} by ${entry.author} on ${new Date(entry.timestamp)}: ${entry.msg}" def files = new ArrayList(entry.affectedFiles) for (int k = 0; k < files.size(); k++) {
                             def file = files[k]
                             echo " ${file.editType.name} ${file.path}" }
                      }
                     }
                  }
                }
          Results:
          {noformat}
          [Pipeline] }
          [Pipeline] // stage
          [Pipeline] stage
          [Pipeline] { (Test changeset)
          Stage "Test changeset" skipped due to when conditional
          [Pipeline] }
          [Pipeline] // stage
          [Pipeline] stage
          [Pipeline] { (Display changeset?)
          [Pipeline] script
          [Pipeline] {
          [Pipeline] echo
          66 by jesse on Tue Nov 05 03:40:41 PST 2019: Polling time adjust
          [Pipeline] echo
           edit //streams/Dev-Jenkins/Jenkinsfile
          [Pipeline] }
          [Pipeline] // script
          [Pipeline] }
          [Pipeline] // stage{noformat}
          Is this a bug?
          Jesse Rapczak made changes -
          Description Original: I am following this recent example and it does not seem to work for multibranch P4. All of the echo commands show that the changeset information is fully available, but the when changeset conditional never passes:
          pipeline { agent { label 'master' } stages {
             stage("Test changeset"){
                  when { changeset "**/Jenkinsfile"}
                      steps{ echo "The changeset test worked!!"}
                  }
              stage("Display changeset?") {
                steps {
                  script {
                     def changeLogSets = currentBuild.changeSets for (int i = 0; i < changeLogSets.size(); i++) {
                     def entries = changeLogSets[i].items for (int j = 0; j < entries.length; j++) {
                         def entry = entries[j]
                         echo "${entry.commitId} by ${entry.author} on ${new Date(entry.timestamp)}: ${entry.msg}" def files = new ArrayList(entry.affectedFiles) for (int k = 0; k < files.size(); k++) {
                             def file = files[k]
                             echo " ${file.editType.name} ${file.path}" }
                      }
                     }
                  }
                }
          Results:
          {noformat}
          [Pipeline] }
          [Pipeline] // stage
          [Pipeline] stage
          [Pipeline] { (Test changeset)
          Stage "Test changeset" skipped due to when conditional
          [Pipeline] }
          [Pipeline] // stage
          [Pipeline] stage
          [Pipeline] { (Display changeset?)
          [Pipeline] script
          [Pipeline] {
          [Pipeline] echo
          66 by jesse on Tue Nov 05 03:40:41 PST 2019: Polling time adjust
          [Pipeline] echo
           edit //streams/Dev-Jenkins/Jenkinsfile
          [Pipeline] }
          [Pipeline] // script
          [Pipeline] }
          [Pipeline] // stage{noformat}
          Is this a bug?
          New: I am following this recent example and it does not seem to work for multibranch P4. All of the echo commands show that the changeset information is fully available, but the when changeset conditional never passes:

          {noformat}
          pipeline { agent { label 'master' } stages {
             stage("Test changeset"){
                  when { changeset "**/Jenkinsfile"}
                      steps{ echo "The changeset test worked!!"}
                  }
              stage("Display changeset?") {
                steps {
                  script {
                     def changeLogSets = currentBuild.changeSets for (int i = 0; i < changeLogSets.size(); i++) {
                     def entries = changeLogSets[i].items for (int j = 0; j < entries.length; j++) {
                         def entry = entries[j]
                         echo "${entry.commitId} by ${entry.author} on ${new Date(entry.timestamp)}: ${entry.msg}" def files = new ArrayList(entry.affectedFiles) for (int k = 0; k < files.size(); k++) {
                             def file = files[k]
                             echo " ${file.editType.name} ${file.path}" }
                      }
                     }
                  }
                }
          {noformat}

          Results:
          {noformat}
          [Pipeline] }
          [Pipeline] // stage
          [Pipeline] stage
          [Pipeline] { (Test changeset)
          Stage "Test changeset" skipped due to when conditional
          [Pipeline] }
          [Pipeline] // stage
          [Pipeline] stage
          [Pipeline] { (Display changeset?)
          [Pipeline] script
          [Pipeline] {
          [Pipeline] echo
          66 by jesse on Tue Nov 05 03:40:41 PST 2019: Polling time adjust
          [Pipeline] echo
           edit //streams/Dev-Jenkins/Jenkinsfile
          [Pipeline] }
          [Pipeline] // script
          [Pipeline] }
          [Pipeline] // stage{noformat}
          Is this a bug?
          Karl Wirth made changes -
          Assignee New: Karl Wirth [ p4karl ]
          Karl Wirth made changes -
          Link New: This issue is related to JENKINS-58441 [ JENKINS-58441 ]
          Karl Wirth made changes -
          Labels Original: p4-plugin pipeline New: P4_SUPPORT p4-plugin pipeline
          Karl Wirth made changes -
          Labels Original: P4_SUPPORT p4-plugin pipeline New: p4-plugin pipeline
          Karl Wirth made changes -
          Assignee Original: Karl Wirth [ p4karl ]
          Karl Wirth made changes -
          Summary Original: "when changeset" not working in P4 multibranch pipeline New: "when changeset" not working in P4 multibranch pipeline with Windows Jenkins Master
          Karl Wirth made changes -
          Resolution New: Won't Fix [ 2 ]
          Status Original: Open [ 1 ] New: Closed [ 6 ]

            Unassigned Unassigned
            jrapczak Jesse Rapczak
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: