-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
CloudBees Core 2.222.1.1, Kubernetes plugin 1.25.2
-
-
1.28.6
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' } } } }
- is duplicated by
-
JENKINS-61309 Environment variable value containing a literal dollar gets an extra dollar prefixed
- Closed
- relates to
-
JENKINS-40734 Shell step cannot use environment variables that contain $$
- Resolved
-
JENKINS-42048 Cannot Connect, PID NumberFormatException
- Closed
- links to