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

Git plugin does not evaluate environment variables for branch option when use "Pipeline script from SCM" option

    XMLWordPrintable

Details

    • 4.14.0

    Description

      Hint from "Branches to build" option in "Pipeline script from SCM" option tells that:

      ${ENV_VARIABLE}
       It is also possible to use environment variables. In this case the variables are evaluated and the result is used as described above.
       E.g. ${TREEISH}, refs/tags/${TAGNAME}, ...
      

       However, environment variable not evaluated, resulting following error on script call:

      hudson.plugins.git.GitException: Command "git.exe fetch --tags --force --progress --prune -- origin +refs/heads/${SCRIPTS_REPO_BRANCH_NAME}:refs/remotes/origin/${SCRIPTS_REPO_BRANCH_NAME}" returned status code 128:
      stdout: 
      stderr: load pubkey "C:\\Windows\\TEMP\\jenkins-gitclient-ssh2322785094198445571.key": invalid format
      fatal: couldn't find remote ref refs/heads/${SCRIPTS_REPO_BRANCH_NAME}	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2450)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:2051)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$500(CliGitAPIImpl.java:84)
      	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:573)
      	at jenkins.plugins.git.GitSCMFileSystem$BuilderImpl.build(GitSCMFileSystem.java:365)
      	at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:197)
      	at jenkins.scm.api.SCMFileSystem.of(SCMFileSystem.java:173)
      	at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:115)
      	at org.jenkinsci.plugins.workflow.cps.CpsScmFlowDefinition.create(CpsScmFlowDefinition.java:69)
      	at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:309)
      	at hudson.model.ResourceController.execute(ResourceController.java:97)
      	at hudson.model.Executor.run(Executor.java:428)
      Finished: FAILURE
      

       

      Steps to reproduce:

      1. Create any pipeline script in git repo
      2. Go to "Configure System" menu in your Jenkins web app (%YOUR_URL%/configure)
      3. Create new environment variable "SCRIPTS_REPO_BRANCH_NAME", set its value to the branch name, you script lies under
      4. Create new pipeline script (%YOUR_URL%/view/all/newJob), "Pipeline"
      5. Select "Pipeline script from SCM" menu
      6. Fill all required field, set "Branches to build" = ${SCRIPTS_REPO_BRANCH_NAME}
      7. Run script, see the error, mentioned above
      8. Go back to script configuration replace "Branches to build" value with plain branch name
      9. Run script again, see it checked out and picked properly

      Attachments

        Issue Links

          Activity

            alpanshin Alexandr Panshin added a comment - - edited

            Thank you lexmaul! Works right now!
            Just in case, someone will read this thread facing same problem, right syntax is $SCRIPTS_REPO_BRANCH_NAME (for Windows server too)

            alpanshin Alexandr Panshin added a comment - - edited Thank you lexmaul ! Works right now! Just in case, someone will read this thread facing same problem, right syntax is $SCRIPTS_REPO_BRANCH_NAME (for Windows server too)
            harshitchopra0712 Harshit added a comment -

            I have opened a PR for the issue: https://github.com/jenkinsci/git-plugin/pull/1062

            harshitchopra0712 Harshit added a comment - I have opened a PR for the issue: https://github.com/jenkinsci/git-plugin/pull/1062

            Is this still an issue? because I am using the cloudbees Jenkins and I am not able to use GitParameter defined in the configuration. it happens the same thing. Variable seems  not to be resolved at all. tried the ${BRANCH}, ${env.BRANCH} and ${params.BRANCH} none worked.

            mhermosi Martin Hermosilla added a comment - Is this still an issue? because I am using the cloudbees Jenkins and I am not able to use GitParameter defined in the configuration. it happens the same thing. Variable seems  not to be resolved at all. tried the ${BRANCH}, ${env.BRANCH} and ${params.BRANCH} none worked.
            markewaite Mark Waite added a comment -

            mhermosi since the pull request has not been merged or released, I would expect the problem still exists.

            markewaite Mark Waite added a comment - mhermosi since the pull request has not been merged or released, I would expect the problem still exists.
            markewaite Mark Waite added a comment -

            Included https://github.com/jenkinsci/git-plugin/pull/1305 in the 4.14.0 release.

            markewaite Mark Waite added a comment - Included https://github.com/jenkinsci/git-plugin/pull/1305 in the 4.14.0 release.

            People

              Unassigned Unassigned
              alpanshin Alexandr Panshin
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: