[JIRA] (JENKINS-61950) Environment variables with '$' have '$$' when used in sh step inside a container step.

3 views
Skip to first unread message

kerogers@cloudbees.com (JIRA)

unread,
Apr 17, 2020, 10:50:03 AM4/17/20
to jenkinsc...@googlegroups.com
Kenneth Rogers created an issue
 
Jenkins / Bug JENKINS-61950
Environment variables with '$' have '$$' when used in sh step inside a container step.
Issue Type: Bug Bug
Assignee: Unassigned
Components: kubernetes-plugin
Created: 2020-04-17 14:49
Environment: CloudBees Core 2.222.1.1, Kubernetes plugin 1.25.2
Labels: kubernetes-plugin
Priority: Minor Minor
Reporter: Kenneth Rogers

Here's a pipeline that reproduces the bug:

 

podTemplate {
  node(POD_LABEL) {
    container("jnlp") {
      stage("Run") {
        env.FOO = '$string\$with\$dollars'
        echo "from groovy: ${env.FOO}"
        sh 'env | grep FOO'
        sh 'echo from sh: $FOO'
        }
     }
  }
}

Here's the output:

from groovy: $string$with$dollars
FOO=$$string$$with$$dollars
from sh: $$string$$with$$dollars

Note that all the dollar signs have been doubled! Note that we've included a call to env, which prints the same incorrect string, so that we can eliminate the possibility of groovy string interpolation issues.

We isolated the problem to the container() function. The bug does not occur with this version of the code, where it is removed, despite that the exact same container (jnlp) is actually used:

 

podTemplate {
  node(POD_LABEL) {
    stage("Run") {
      env.FOO = '$string\$with\$dollars'
      echo "from groovy: ${env.FOO}"
      sh 'env | grep FOO'
      sh 'echo from sh: $FOO'
      }
    }
  }
}

 

 

Add Comment Add Comment
 
This message was sent by Atlassian Jira (v7.13.12#713012-sha1:6e07c38)
Atlassian logo

jglick@cloudbees.com (JIRA)

unread,
Apr 17, 2020, 11:42:02 AM4/17/20
to jenkinsc...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages