-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Major
-
Component/s: workflow-basic-steps-plugin
-
None
I'm currently trying to do this as a way of getting around bash's interpreter path length restrictions. Since Jenkins Pipeline generates an obscenely long workspace name, I figured the easiest solution would be to create a symlink in /tmp and just change directory into it. Unfortunately, this does not work.
This is easy to reproduce, just run the following Pipeline job:
node {
def id = UUID.randomUUID().toString()
def symlink = "/tmp/${id}"
sh("ln -s ${pwd()} ${symlink}")
sh("ls -lah /tmp")
dir(symlink) {
println("Jenkins thinks we are in ${pwd()}")
sh('echo "But we are actually in `pwd`"')
sh("ls -lah /tmp")
}
sh("rm -fr /tmp/${id}")
}
Â
If you run that, you'll also see that Jenkins generates this odd directory when you try to change into the symlink:
Â
+ ls -lah /tmp
total 3.0M
drwxrwxrwt 43 root root 4.0K Oct 16 18:36 .
dr-xr-xr-x 27 root root 4.0K Oct 16 18:10 ..
lrwxrwxrwx 1 jenkins jenkins 40 Oct 16 18:36 136ef826-e9a1-479e-9074-1de076349252 -> /var/build/workspace/jenkinsfile-sandbox
drwxr-xr-x 3 jenkins jenkins 4.0K Oct 16 18:36 136ef826-e9a1-479e-9074-1de076349252@tmp
Â