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

EnvInject claims global env vars are unresolved on slave

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • envinject-plugin
    • None
    • EnvInject 1.55
      Jenkins 1.472

      Steps to reproduce

      1. Go to Manage Jenkins > Configure System and check 'Environment variables' under 'Global properties'
      2. Add a variable called GLOBAL_VAR with the value $HOME/foo and save
      3. Create a new job, check 'Prepare an environment for the run' and put DERIVED_VAR=$GLOBAL_VAR/bar in 'Properties Content'.
      4. Check 'Restrict where this project can be run' and make it run on a node OTHER THAN master
      5. Add an 'Execute shell' build step and add:

      echo $GLOBAL_VAR
      echo $DERIVED_VAR

      6. Run job

      Expected output

      Building remotely on not_master in workspace /tmp/slave/workspace/env_test
      [env_test] $ /bin/sh -xe /var/folders/t5/2y9vs7rj20b7h_h3hj_d_ly98mbs7g/T/hudson2936884432042635298.sh
      /home/jenkins/foo
      /home/jenkins/foo/bar

      Actual output

      [EnvInject] - Unset unresolved 'GLOBAL_VAR' variable.
      [EnvInject] - Unset unresolved 'DERIVED_VAR' variable.
      Building remotely on not_master in workspace /tmp/slave/workspace/env_test
      [env_test] $ /bin/sh -xe /var/folders/t5/2y9vs7rj20b7h_h3hj_d_ly98mbs7g/T/hudson2936884432042635298.sh
      /home/jenkins/foo
      
      

          [JENKINS-14271] EnvInject claims global env vars are unresolved on slave

          Jørgen Tjernø created issue -
          Jørgen Tjernø made changes -
          Description Original: Steps to reproduce:

          1. Go to /configure and check 'Environment variables' under 'Global properties'
          2. Add a variable called GLOBAL_VAR with the value $HOME/foo and save
          3. Create a new job, check 'Prepare an environment for the run' and put 'DERIVED_VAR=$GLOBAL_VAR/bar' in 'Properties Content'.
          4. Check 'Restrict where this project can be run' and make it run on a node OTHER THAN master
          5. Add an 'Execute shell' build step and add: {code}echo $GLOBAL_VAR
          echo $DERIVED_VAR{code}
          6. Run job

          Expected output:
          {noformat}Building remotely on not_master in workspace /tmp/slave/workspace/env_test
          [env_test] $ /bin/sh -xe /var/folders/t5/2y9vs7rj20b7h_h3hj_d_ly98mbs7g/T/hudson2936884432042635298.sh
          /home/jenkins/foo
          /home/jenkins/foo/bar{noformat}

          Actual output:
          {noformat}
          [EnvInject] - Unset unresolved 'GLOBAL_VAR' variable.
          [EnvInject] - Unset unresolved 'DERIVED_VAR' variable.
          Building remotely on not_master in workspace /tmp/slave/workspace/env_test
          [env_test] $ /bin/sh -xe /var/folders/t5/2y9vs7rj20b7h_h3hj_d_ly98mbs7g/T/hudson2936884432042635298.sh
          /home/jenkins/foo

          {noformat}
          New: Steps to reproduce:

          1. Go to Manage Jenkins > Configure System and check 'Environment variables' under 'Global properties'
          2. Add a variable called GLOBAL_VAR with the value $HOME/foo and save
          3. Create a new job, check 'Prepare an environment for the run' and put 'DERIVED_VAR=$GLOBAL_VAR/bar' in 'Properties Content'.
          4. Check 'Restrict where this project can be run' and make it run on a node OTHER THAN master
          5. Add an 'Execute shell' build step and add: {code}echo $GLOBAL_VAR
          echo $DERIVED_VAR{code}
          6. Run job

          Expected output:
          {noformat}Building remotely on not_master in workspace /tmp/slave/workspace/env_test
          [env_test] $ /bin/sh -xe /var/folders/t5/2y9vs7rj20b7h_h3hj_d_ly98mbs7g/T/hudson2936884432042635298.sh
          /home/jenkins/foo
          /home/jenkins/foo/bar{noformat}

          Actual output:
          {noformat}
          [EnvInject] - Unset unresolved 'GLOBAL_VAR' variable.
          [EnvInject] - Unset unresolved 'DERIVED_VAR' variable.
          Building remotely on not_master in workspace /tmp/slave/workspace/env_test
          [env_test] $ /bin/sh -xe /var/folders/t5/2y9vs7rj20b7h_h3hj_d_ly98mbs7g/T/hudson2936884432042635298.sh
          /home/jenkins/foo

          {noformat}
          Jørgen Tjernø made changes -
          Description Original: Steps to reproduce:

          1. Go to Manage Jenkins > Configure System and check 'Environment variables' under 'Global properties'
          2. Add a variable called GLOBAL_VAR with the value $HOME/foo and save
          3. Create a new job, check 'Prepare an environment for the run' and put 'DERIVED_VAR=$GLOBAL_VAR/bar' in 'Properties Content'.
          4. Check 'Restrict where this project can be run' and make it run on a node OTHER THAN master
          5. Add an 'Execute shell' build step and add: {code}echo $GLOBAL_VAR
          echo $DERIVED_VAR{code}
          6. Run job

          Expected output:
          {noformat}Building remotely on not_master in workspace /tmp/slave/workspace/env_test
          [env_test] $ /bin/sh -xe /var/folders/t5/2y9vs7rj20b7h_h3hj_d_ly98mbs7g/T/hudson2936884432042635298.sh
          /home/jenkins/foo
          /home/jenkins/foo/bar{noformat}

          Actual output:
          {noformat}
          [EnvInject] - Unset unresolved 'GLOBAL_VAR' variable.
          [EnvInject] - Unset unresolved 'DERIVED_VAR' variable.
          Building remotely on not_master in workspace /tmp/slave/workspace/env_test
          [env_test] $ /bin/sh -xe /var/folders/t5/2y9vs7rj20b7h_h3hj_d_ly98mbs7g/T/hudson2936884432042635298.sh
          /home/jenkins/foo

          {noformat}
          New: h3. Steps to reproduce
          1. Go to Manage Jenkins > Configure System and check 'Environment variables' under 'Global properties'
          2. Add a variable called GLOBAL_VAR with the value $HOME/foo and save
          3. Create a new job, check 'Prepare an environment for the run' and put 'DERIVED_VAR=$GLOBAL_VAR/bar' in 'Properties Content'.
          4. Check 'Restrict where this project can be run' and make it run on a node OTHER THAN master
          5. Add an 'Execute shell' build step and add: {code}echo $GLOBAL_VAR
          echo $DERIVED_VAR{code}
          6. Run job

          h3. Expected output
          {noformat}Building remotely on not_master in workspace /tmp/slave/workspace/env_test
          [env_test] $ /bin/sh -xe /var/folders/t5/2y9vs7rj20b7h_h3hj_d_ly98mbs7g/T/hudson2936884432042635298.sh
          /home/jenkins/foo
          /home/jenkins/foo/bar{noformat}

          h3. Actual output
          {noformat}
          [EnvInject] - Unset unresolved 'GLOBAL_VAR' variable.
          [EnvInject] - Unset unresolved 'DERIVED_VAR' variable.
          Building remotely on not_master in workspace /tmp/slave/workspace/env_test
          [env_test] $ /bin/sh -xe /var/folders/t5/2y9vs7rj20b7h_h3hj_d_ly98mbs7g/T/hudson2936884432042635298.sh
          /home/jenkins/foo

          {noformat}
          Jørgen Tjernø made changes -
          Description Original: h3. Steps to reproduce
          1. Go to Manage Jenkins > Configure System and check 'Environment variables' under 'Global properties'
          2. Add a variable called GLOBAL_VAR with the value $HOME/foo and save
          3. Create a new job, check 'Prepare an environment for the run' and put 'DERIVED_VAR=$GLOBAL_VAR/bar' in 'Properties Content'.
          4. Check 'Restrict where this project can be run' and make it run on a node OTHER THAN master
          5. Add an 'Execute shell' build step and add: {code}echo $GLOBAL_VAR
          echo $DERIVED_VAR{code}
          6. Run job

          h3. Expected output
          {noformat}Building remotely on not_master in workspace /tmp/slave/workspace/env_test
          [env_test] $ /bin/sh -xe /var/folders/t5/2y9vs7rj20b7h_h3hj_d_ly98mbs7g/T/hudson2936884432042635298.sh
          /home/jenkins/foo
          /home/jenkins/foo/bar{noformat}

          h3. Actual output
          {noformat}
          [EnvInject] - Unset unresolved 'GLOBAL_VAR' variable.
          [EnvInject] - Unset unresolved 'DERIVED_VAR' variable.
          Building remotely on not_master in workspace /tmp/slave/workspace/env_test
          [env_test] $ /bin/sh -xe /var/folders/t5/2y9vs7rj20b7h_h3hj_d_ly98mbs7g/T/hudson2936884432042635298.sh
          /home/jenkins/foo

          {noformat}
          New: h3. Steps to reproduce
          1. Go to Manage Jenkins > Configure System and check 'Environment variables' under 'Global properties'
          2. Add a variable called {{GLOBAL_VAR}} with the value {{$HOME/foo}} and save
          3. Create a new job, check 'Prepare an environment for the run' and put {{DERIVED_VAR=$GLOBAL_VAR/bar}} in 'Properties Content'.
          4. Check 'Restrict where this project can be run' and make it run on a node *OTHER THAN* master
          5. Add an 'Execute shell' build step and add: {code}echo $GLOBAL_VAR
          echo $DERIVED_VAR{code}
          6. Run job

          h3. Expected output
          {noformat}Building remotely on not_master in workspace /tmp/slave/workspace/env_test
          [env_test] $ /bin/sh -xe /var/folders/t5/2y9vs7rj20b7h_h3hj_d_ly98mbs7g/T/hudson2936884432042635298.sh
          /home/jenkins/foo
          /home/jenkins/foo/bar{noformat}

          h3. Actual output
          {noformat}
          [EnvInject] - Unset unresolved 'GLOBAL_VAR' variable.
          [EnvInject] - Unset unresolved 'DERIVED_VAR' variable.
          Building remotely on not_master in workspace /tmp/slave/workspace/env_test
          [env_test] $ /bin/sh -xe /var/folders/t5/2y9vs7rj20b7h_h3hj_d_ly98mbs7g/T/hudson2936884432042635298.sh
          /home/jenkins/foo

          {noformat}

          Code changed in jenkins
          User: Gregory Boissinot
          Path:
          src/main/java/org/jenkinsci/plugins/envinject/service/EnvInjectEnvVars.java
          http://jenkins-ci.org/commit/envinject-plugin/62ee63e51638c513f91439a0f0091a3435850eb0
          Log:
          Fix JENKINS-14271

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Gregory Boissinot Path: src/main/java/org/jenkinsci/plugins/envinject/service/EnvInjectEnvVars.java http://jenkins-ci.org/commit/envinject-plugin/62ee63e51638c513f91439a0f0091a3435850eb0 Log: Fix JENKINS-14271
          Gregory Boissinot made changes -
          Resolution New: Fixed [ 1 ]
          Status Original: Open [ 1 ] New: Resolved [ 5 ]
          R. Tyler Croy made changes -
          Workflow Original: JNJira [ 144903 ] New: JNJira + In-Review [ 191241 ]

            gbois Gregory Boissinot
            jorgenpt Jørgen Tjernø
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: