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

Git plugin environment variables are not accessible

    • Icon: Bug Bug
    • Resolution: Not A Defect
    • Icon: Blocker Blocker
    • git-plugin
    • Host machine: Windows 7
      Jenkins ver. 1.655
      Git plugin ver: 2.4.2
      MSBuild ver: 4.0.30319.17929

      We have a Jenkins job that calls MSBuild as an 'Execute Windows batch command' with a call along these lines:

      \Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe "C:\Builds\workspace\MySoftwre.sln" /p:Configuration=Release

      I have a post-build event that we intended to use to publish results including the SHA-1 from our Git repo. It would appear that the Git plugin isn't forwarding that information though because when we try and output the following:

      ECHO Jenkins Git Plugin GIT_COMMIT: $(GIT_COMMIT)
      ECHO Jenkins Git Plugin GIT_BRANCH: $(GIT_BRANCH)
      ECHO Jenkins Git Plugin GIT_PREVIOUS_COMMIT: $(GIT_PREVIOUS_COMMIT)
      ECHO Jenkins Git Plugin GIT_PREVIOUS_SUCCESSFUL_COMMIT: $(GIT_PREVIOUS_SUCCESSFUL_COMMIT)
      ECHO Jenkins Git Plugin GIT_URL: $(GIT_URL)
      ECHO Jenkins Git Plugin GIT_URL_1: $(GIT_URL_1)
      ECHO Jenkins Git Plugin GIT_URL_2: $(GIT_URL_2)
      ECHO Jenkins Git Plugin GIT_URL_3: $(GIT_URL_3)
      ECHO Jenkins Git Plugin GIT_AUTHOR_NAME: $(GIT_AUTHOR_NAME)
      ECHO Jenkins Git Plugin GIT_COMMITTER_NAME: $(GIT_COMMITTER_NAME)
      ECHO Jenkins Git Plugin GIT_AUTHOR_EMAIL: $(GIT_AUTHOR_EMAIL)
      ECHO Jenkins Git Plugin GIT_COMMITTER_EMAIL: $(GIT_COMMITTER_EMAIL)
      ECHO Workspace: %WORKSPACE%

      I get this output:

      Jenkins Git Plugin GIT_COMMIT:
      Jenkins Git Plugin GIT_BRANCH:
      Jenkins Git Plugin GIT_PREVIOUS_COMMIT:
      Jenkins Git Plugin GIT_PREVIOUS_SUCCESSFUL_COMMIT:
      Jenkins Git Plugin GIT_URL:
      Jenkins Git Plugin GIT_URL_1:
      Jenkins Git Plugin GIT_URL_2:
      Jenkins Git Plugin GIT_URL_3:
      Jenkins Git Plugin GIT_AUTHOR_NAME:
      Jenkins Git Plugin GIT_COMMITTER_NAME:
      Jenkins Git Plugin GIT_AUTHOR_EMAIL:
      Jenkins Git Plugin GIT_COMMITTER_EMAIL:
      Jenkins Workspace: /Builds/workspace

      So it looks to me like ( contrary to the documentation on the wiki page - https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin ) the jenkins-git plugin environment variables aren't being forwarded.

          [JENKINS-34477] Git plugin environment variables are not accessible

          Mark Waite added a comment -

          I believe you need to use DOS style references, surrounding the name of the environment variable with the percent character.

          When I did that, this was the job output:

          Started by user Mark Waite
          [EnvInject] - Loading node environment variables.
          Building remotely on coleen-pc2 (amd64-windows-10.0 authenticating-git windows-6.3 windows-10.0 6.3 amd64-windows windows 64bit amd64-windows-6.3 amd64) in workspace C:\J\workspace\JENKINS-34477
           > C:\Program Files\git\cmd\git.exe rev-parse --is-inside-work-tree # timeout=10
          Fetching changes from the remote Git repository
           > C:\Program Files\git\cmd\git.exe config remote.origin.url git@github.com:MarkEWaite/jenkins-bugs.git # timeout=10
          Fetching upstream changes from git@github.com:MarkEWaite/jenkins-bugs.git
           > C:\Program Files\git\cmd\git.exe --version # timeout=10
          using GIT_SSH to set credentials mwaite@mark-pc1
           > C:\Program Files\git\cmd\git.exe -c core.askpass=true fetch --no-tags --progress git@github.com:MarkEWaite/jenkins-bugs.git +refs/heads/*:refs/remotes/origin/* --depth=1 # timeout=1
           > C:\Program Files\git\cmd\git.exe rev-parse "refs/remotes/origin/master^{commit}" # timeout=10
           > C:\Program Files\git\cmd\git.exe rev-parse "refs/remotes/origin/origin/master^{commit}" # timeout=10
          Checking out Revision 8b464e14423ad697547fad3797a3ba03504a47a3 (refs/remotes/origin/master)
           > C:\Program Files\git\cmd\git.exe config core.sparsecheckout # timeout=10
           > C:\Program Files\git\cmd\git.exe checkout -f 8b464e14423ad697547fad3797a3ba03504a47a3 # timeout=10
           > C:\Program Files\git\cmd\git.exe branch -a -v --no-abbrev # timeout=10
           > C:\Program Files\git\cmd\git.exe branch -D master # timeout=10
           > C:\Program Files\git\cmd\git.exe checkout -b master 8b464e14423ad697547fad3797a3ba03504a47a3
           > C:\Program Files\git\cmd\git.exe rev-list 8b464e14423ad697547fad3797a3ba03504a47a3 # timeout=10
          [JENKINS-34477] $ cmd /c call C:\Users\Coleen\AppData\Local\Temp\hudson8221419918577078562.bat
          
          C:\J\workspace\JENKINS-34477>echo GIT_COMMIT is 8b464e14423ad697547fad3797a3ba03504a47a3 
          GIT_COMMIT is 8b464e14423ad697547fad3797a3ba03504a47a3
          
          C:\J\workspace\JENKINS-34477>echo GIT_BRANCH is origin/master 
          GIT_BRANCH is origin/master
          
          C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_COMMIT: 8b464e14423ad697547fad3797a3ba03504a47a3 
          Jenkins Git Plugin GIT_COMMIT: 8b464e14423ad697547fad3797a3ba03504a47a3
          
          C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_BRANCH: origin/master 
          Jenkins Git Plugin GIT_BRANCH: origin/master
          
          C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_PREVIOUS_COMMIT: 8b464e14423ad697547fad3797a3ba03504a47a3 
          Jenkins Git Plugin GIT_PREVIOUS_COMMIT: 8b464e14423ad697547fad3797a3ba03504a47a3
          
          C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_PREVIOUS_SUCCESSFUL_COMMIT: 8b464e14423ad697547fad3797a3ba03504a47a3 
          Jenkins Git Plugin GIT_PREVIOUS_SUCCESSFUL_COMMIT: 8b464e14423ad697547fad3797a3ba03504a47a3
          
          C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_URL: git@github.com:MarkEWaite/jenkins-bugs.git 
          Jenkins Git Plugin GIT_URL: git@github.com:MarkEWaite/jenkins-bugs.git
          
          C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_URL_1:  
          Jenkins Git Plugin GIT_URL_1: 
          
          C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_URL_2:  
          Jenkins Git Plugin GIT_URL_2: 
          
          C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_URL_3:  
          Jenkins Git Plugin GIT_URL_3: 
          
          C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_AUTHOR_NAME: Mark Waite - Jenkins 
          Jenkins Git Plugin GIT_AUTHOR_NAME: Mark Waite - Jenkins
          
          C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_COMMITTER_NAME: Mark Waite - Jenkins 
          Jenkins Git Plugin GIT_COMMITTER_NAME: Mark Waite - Jenkins
          
          C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_AUTHOR_EMAIL: mark.earl.waite@gmail.com 
          Jenkins Git Plugin GIT_AUTHOR_EMAIL: mark.earl.waite@gmail.com
          
          C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_COMMITTER_EMAIL: mark.earl.waite@gmail.com 
          Jenkins Git Plugin GIT_COMMITTER_EMAIL: mark.earl.waite@gmail.com
          
          C:\J\workspace\JENKINS-34477>ECHO Workspace: C:\J\workspace\JENKINS-34477 
          Workspace: C:\J\workspace\JENKINS-34477
          
          C:\J\workspace\JENKINS-34477>exit 0 
          Finished: SUCCESS
          

          Mark Waite added a comment - I believe you need to use DOS style references, surrounding the name of the environment variable with the percent character. When I did that, this was the job output: Started by user Mark Waite [EnvInject] - Loading node environment variables. Building remotely on coleen-pc2 (amd64-windows-10.0 authenticating-git windows-6.3 windows-10.0 6.3 amd64-windows windows 64bit amd64-windows-6.3 amd64) in workspace C:\J\workspace\JENKINS-34477 > C:\Program Files\git\cmd\git.exe rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository > C:\Program Files\git\cmd\git.exe config remote.origin.url git@github.com:MarkEWaite/jenkins-bugs.git # timeout=10 Fetching upstream changes from git@github.com:MarkEWaite/jenkins-bugs.git > C:\Program Files\git\cmd\git.exe --version # timeout=10 using GIT_SSH to set credentials mwaite@mark-pc1 > C:\Program Files\git\cmd\git.exe -c core.askpass=true fetch --no-tags --progress git@github.com:MarkEWaite/jenkins-bugs.git +refs/heads/*:refs/remotes/origin/* --depth=1 # timeout=1 > C:\Program Files\git\cmd\git.exe rev-parse "refs/remotes/origin/master^{commit}" # timeout=10 > C:\Program Files\git\cmd\git.exe rev-parse "refs/remotes/origin/origin/master^{commit}" # timeout=10 Checking out Revision 8b464e14423ad697547fad3797a3ba03504a47a3 (refs/remotes/origin/master) > C:\Program Files\git\cmd\git.exe config core.sparsecheckout # timeout=10 > C:\Program Files\git\cmd\git.exe checkout -f 8b464e14423ad697547fad3797a3ba03504a47a3 # timeout=10 > C:\Program Files\git\cmd\git.exe branch -a -v --no-abbrev # timeout=10 > C:\Program Files\git\cmd\git.exe branch -D master # timeout=10 > C:\Program Files\git\cmd\git.exe checkout -b master 8b464e14423ad697547fad3797a3ba03504a47a3 > C:\Program Files\git\cmd\git.exe rev-list 8b464e14423ad697547fad3797a3ba03504a47a3 # timeout=10 [JENKINS-34477] $ cmd /c call C:\Users\Coleen\AppData\Local\Temp\hudson8221419918577078562.bat C:\J\workspace\JENKINS-34477>echo GIT_COMMIT is 8b464e14423ad697547fad3797a3ba03504a47a3 GIT_COMMIT is 8b464e14423ad697547fad3797a3ba03504a47a3 C:\J\workspace\JENKINS-34477>echo GIT_BRANCH is origin/master GIT_BRANCH is origin/master C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_COMMIT: 8b464e14423ad697547fad3797a3ba03504a47a3 Jenkins Git Plugin GIT_COMMIT: 8b464e14423ad697547fad3797a3ba03504a47a3 C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_BRANCH: origin/master Jenkins Git Plugin GIT_BRANCH: origin/master C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_PREVIOUS_COMMIT: 8b464e14423ad697547fad3797a3ba03504a47a3 Jenkins Git Plugin GIT_PREVIOUS_COMMIT: 8b464e14423ad697547fad3797a3ba03504a47a3 C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_PREVIOUS_SUCCESSFUL_COMMIT: 8b464e14423ad697547fad3797a3ba03504a47a3 Jenkins Git Plugin GIT_PREVIOUS_SUCCESSFUL_COMMIT: 8b464e14423ad697547fad3797a3ba03504a47a3 C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_URL: git@github.com:MarkEWaite/jenkins-bugs.git Jenkins Git Plugin GIT_URL: git@github.com:MarkEWaite/jenkins-bugs.git C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_URL_1: Jenkins Git Plugin GIT_URL_1: C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_URL_2: Jenkins Git Plugin GIT_URL_2: C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_URL_3: Jenkins Git Plugin GIT_URL_3: C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_AUTHOR_NAME: Mark Waite - Jenkins Jenkins Git Plugin GIT_AUTHOR_NAME: Mark Waite - Jenkins C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_COMMITTER_NAME: Mark Waite - Jenkins Jenkins Git Plugin GIT_COMMITTER_NAME: Mark Waite - Jenkins C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_AUTHOR_EMAIL: mark.earl.waite@gmail.com Jenkins Git Plugin GIT_AUTHOR_EMAIL: mark.earl.waite@gmail.com C:\J\workspace\JENKINS-34477>ECHO Jenkins Git Plugin GIT_COMMITTER_EMAIL: mark.earl.waite@gmail.com Jenkins Git Plugin GIT_COMMITTER_EMAIL: mark.earl.waite@gmail.com C:\J\workspace\JENKINS-34477>ECHO Workspace: C:\J\workspace\JENKINS-34477 Workspace: C:\J\workspace\JENKINS-34477 C:\J\workspace\JENKINS-34477>exit 0 Finished: SUCCESS

          jon cage added a comment - - edited

          I just tried a rebuild after manually adding the following to the 'Execute Windows Batch Comman' section of the Jenkins config:

          ECHO Jenkins WORKSPACE: %WORKSPACE%
          ECHO Jenkins Git Plugin GIT_COMMIT: %GIT_COMMIT%
          ECHO Jenkins Git Plugin GIT_BRANCH: %GIT_BRANCH%
          

          ...but I still don't see the output for the Git plugin variables whereas the Jenkins ones appear to work just fine:

          ECHO Jenkins WORKSPACE: /Builds/workspace
          ECHO Jenkins Git Plugin GIT_COMMIT:
          ECHO Jenkins Git Plugin GIT_BRANCH:
          

          jon cage added a comment - - edited I just tried a rebuild after manually adding the following to the 'Execute Windows Batch Comman' section of the Jenkins config: ECHO Jenkins WORKSPACE: %WORKSPACE% ECHO Jenkins Git Plugin GIT_COMMIT: %GIT_COMMIT% ECHO Jenkins Git Plugin GIT_BRANCH: %GIT_BRANCH% ...but I still don't see the output for the Git plugin variables whereas the Jenkins ones appear to work just fine: ECHO Jenkins WORKSPACE: /Builds/workspace ECHO Jenkins Git Plugin GIT_COMMIT: ECHO Jenkins Git Plugin GIT_BRANCH:

          jon cage added a comment -

          I take it back; I'd been mislead by my team as to how this had been set up and it turns out the Git plugin wasn't being used at this point in the build chain.

          Apologies for the noise.

          jon cage added a comment - I take it back; I'd been mislead by my team as to how this had been set up and it turns out the Git plugin wasn't being used at this point in the build chain. Apologies for the noise.

            markewaite Mark Waite
            joncage jon cage
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: