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

[P4 Plugin] P4_ROOT is not set properly - pointing to build workspace instead of p4 client root

      The following problem was observed in a pipeline type job:

      After the perforce scm step is executed the P4_ROOT environment variable is not set properly. It is pointing to the build workspace instead of the p4 client root of the client used during the scm step. I have tested it using static workspace behavior and the p4 preview option. Basically the P4_ROOT is the same as WORKSPACE environment variable, but it should be set to p4 clients root.

       

      agent{
        node{
            label "node1"
            customWorkspace "C:\\Custom\\BuildWorkspacePath"
        }
      }
      stages{
        stage('Test'){
          steps{
            // Perforce client myP4Client has p4 root set to C:\\myP4Client
            checkout perforce(credential: 'myP4Creds', populate: previewOnly(quiet: true), workspace: staticSpec(charset: 'none', name: 'myP4Client', pinHost: false))
            // P4_ROOT will be set to "C:\\Custom\\BuildWorkspacePath" instead of "C:\\myP4Client"
            echo "${currentBuild.rawBuild.getEnvironment()}"
          }
        }
      }
      
      

          [JENKINS-64707] [P4 Plugin] P4_ROOT is not set properly - pointing to build workspace instead of p4 client root

          Piotr Ławniczuk created issue -
          Piotr Ławniczuk made changes -
          Labels New: P4_ROOT
          Piotr Ławniczuk made changes -
          Labels Original: P4_ROOT New: EnvironmentalVariable P4_ROOT
          Piotr Ławniczuk made changes -
          Labels Original: EnvironmentalVariable P4_ROOT New: EnvironmentalVariable P4_ROOT environment-variables
          Piotr Ławniczuk made changes -
          Description Original: The following problem was observed in a pipeline type job:

          After the perforce scm step is executed the P4_ROOT environment variable is not set properly. It is pointing to the build workspace instead of the p4 client root of the client used during the scm step. I have tested it using static workspace behavior and the p4 preview option. Basically the P4_ROOT is the same as WORKSPACE environment variable, but it should be set to p4 clients root.
          New: The following problem was observed in a pipeline type job:

          After the perforce scm step is executed the P4_ROOT environment variable is not set properly. It is pointing to the build workspace instead of the p4 client root of the client used during the scm step. I have tested it using static workspace behavior and the p4 preview option. Basically the P4_ROOT is the same as WORKSPACE environment variable, but it should be set to p4 clients root.

           
          {code:java}
              agent{
                  node{
                      label "master"
                  }
              }
              parameters{
                  string (name: 'change', defaultValue: '', trim: true, description: '')
                  string (name: 'shelve', defaultValue: '', trim: true, description: '')
              }
              options{
                  buildDiscarder logRotator(numToKeepStr: '5')
                  timestamps()
              }
              stages{
                  stage('first'){
                      steps{
                          checkout perforce(credential: 'robot.obibok_1777', populate: previewOnly(quiet: true), workspace: staticSpec(charset: 'none', name: 'robot.obibok_IDK300_TESTSTREAM_development', pinHost: false))
                          echo "${currentBuild.rawBuild.getEnvironment()}"
                          setupPipeline(displayName: "test", description: "PS4")
                      }
                  }
              }
          }
          {code}
          Piotr Ławniczuk made changes -
          Description Original: The following problem was observed in a pipeline type job:

          After the perforce scm step is executed the P4_ROOT environment variable is not set properly. It is pointing to the build workspace instead of the p4 client root of the client used during the scm step. I have tested it using static workspace behavior and the p4 preview option. Basically the P4_ROOT is the same as WORKSPACE environment variable, but it should be set to p4 clients root.

           
          {code:java}
              agent{
                  node{
                      label "master"
                  }
              }
              parameters{
                  string (name: 'change', defaultValue: '', trim: true, description: '')
                  string (name: 'shelve', defaultValue: '', trim: true, description: '')
              }
              options{
                  buildDiscarder logRotator(numToKeepStr: '5')
                  timestamps()
              }
              stages{
                  stage('first'){
                      steps{
                          checkout perforce(credential: 'robot.obibok_1777', populate: previewOnly(quiet: true), workspace: staticSpec(charset: 'none', name: 'robot.obibok_IDK300_TESTSTREAM_development', pinHost: false))
                          echo "${currentBuild.rawBuild.getEnvironment()}"
                          setupPipeline(displayName: "test", description: "PS4")
                      }
                  }
              }
          }
          {code}
          New: The following problem was observed in a pipeline type job:

          After the perforce scm step is executed the P4_ROOT environment variable is not set properly. It is pointing to the build workspace instead of the p4 client root of the client used during the scm step. I have tested it using static workspace behavior and the p4 preview option. Basically the P4_ROOT is the same as WORKSPACE environment variable, but it should be set to p4 clients root.

           
          {code:java}
          agent{
            node{
                label "node1"
                customWorkspace "C:\\Custom\\BuildWorkspacePath"
            }
          }
          stages{
            stage('Test'){
              steps{
                  // Perforce client myP4Client has p4 root set to C:\\myP4Client
                  checkout perforce(credential: 'myP4Creds', populate: previewOnly(quiet: true), workspace: staticSpec(charset: 'none', name: 'myP4Client', pinHost: false))
                  // P4_ROOT will be set to "C:\\Custom\\BuildWorkspacePath" instead of "C:\\myP4Client"
                  echo "${currentBuild.rawBuild.getEnvironment()}"
              }
            }
          }

          {code}
          Piotr Ławniczuk made changes -
          Description Original: The following problem was observed in a pipeline type job:

          After the perforce scm step is executed the P4_ROOT environment variable is not set properly. It is pointing to the build workspace instead of the p4 client root of the client used during the scm step. I have tested it using static workspace behavior and the p4 preview option. Basically the P4_ROOT is the same as WORKSPACE environment variable, but it should be set to p4 clients root.

           
          {code:java}
          agent{
            node{
                label "node1"
                customWorkspace "C:\\Custom\\BuildWorkspacePath"
            }
          }
          stages{
            stage('Test'){
              steps{
                  // Perforce client myP4Client has p4 root set to C:\\myP4Client
                  checkout perforce(credential: 'myP4Creds', populate: previewOnly(quiet: true), workspace: staticSpec(charset: 'none', name: 'myP4Client', pinHost: false))
                  // P4_ROOT will be set to "C:\\Custom\\BuildWorkspacePath" instead of "C:\\myP4Client"
                  echo "${currentBuild.rawBuild.getEnvironment()}"
              }
            }
          }

          {code}
          New: The following problem was observed in a pipeline type job:

          After the perforce scm step is executed the P4_ROOT environment variable is not set properly. It is pointing to the build workspace instead of the p4 client root of the client used during the scm step. I have tested it using static workspace behavior and the p4 preview option. Basically the P4_ROOT is the same as WORKSPACE environment variable, but it should be set to p4 clients root.

           
          {code:java}
          agent{
            node{
                label "node1"
                customWorkspace "C:\\Custom\\BuildWorkspacePath"
            }
          }
          stages{
            stage('Test'){
              steps{
                // Perforce client myP4Client has p4 root set to C:\\myP4Client
                checkout perforce(credential: 'myP4Creds', populate: previewOnly(quiet: true), workspace: staticSpec(charset: 'none', name: 'myP4Client', pinHost: false))
                // P4_ROOT will be set to "C:\\Custom\\BuildWorkspacePath" instead of "C:\\myP4Client"
                echo "${currentBuild.rawBuild.getEnvironment()}"
              }
            }
          }

          {code}
          Karl Wirth made changes -
          Link New: This issue is caused by JENKINS-47005 [ JENKINS-47005 ]
          Karl Wirth made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: Open [ 1 ] New: Closed [ 6 ]
          Karl Wirth made changes -
          Resolution Original: Fixed [ 1 ]
          Status Original: Closed [ 6 ] New: Reopened [ 4 ]
          Karl Wirth made changes -
          Labels Original: EnvironmentalVariable P4_ROOT environment-variables New: EnvironmentalVariable P4_A P4_ROOT P4_VERIFY environment-variables

            Unassigned Unassigned
            plawniczuk Piotr Ławniczuk
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: