-
Improvement
-
Resolution: Unresolved
-
Major
-
None
-
Jenkins 2.36
durable-task-plugin 1.12
A major part of our build pipeline is that it needs to chdir around our deployment machines and rollout several components. We were using ws/dir steps in our pipeline script to chdir to our target locations before spawning sh() scripts, but after updating to durable-task 1.12 this no longer works.
The plugin attempts to create directories in unwritable locations.
I've looked at the code: https://github.com/jenkinsci/durable-task-plugin/blob/master/src/main/java/org/jenkinsci/plugins/durabletask/FileMonitoringTask.java and understand you don't want to write to files inside the workspace, fair enough I guess, but that's not a concern for us.
Is there a reason this can't either: a) use the regular tmpdir, or b) allow some kind of config for this?
The current workaround is to make a dir somewhere we know is writable, chdir to it, then have the spawned shell script chdir back out. And then chdir back out once the `sh()` step is finished.
[JENKINS-40785] Cannot run shell step if control dir parent is not writable
Description |
Original:
A major part of our build pipeline is that it needs to chdir around our deployment machines and rollout several components. We were using ws/dir steps in our pipeline script to chdir to our target locations before spawning sh() scripts, but after updating to durable-task 1.12 this no longer works. The plugin attempts to create directories in unwritable locations. [I've looked at the code](https://github.com/jenkinsci/durable-task-plugin/blob/master/src/main/java/org/jenkinsci/plugins/durabletask/FileMonitoringTask.java) and understand you don't want to write to files inside the workspace, fair enough I guess, but that's not a concern for us. Is there a reason this can't either: a) use the regular tmpdir, or b) allow some kind of config for this? The current workaround is to make a dir somewhere we know is writable, chdir to it, then have the spawned shell script chdir back out. And then chdir back out once the `sh()` step is finished. |
New:
A major part of our build pipeline is that it needs to chdir around our deployment machines and rollout several components. We were using ws/dir steps in our pipeline script to chdir to our target locations before spawning sh() scripts, but after updating to durable-task 1.12 this no longer works. The plugin attempts to create directories in unwritable locations. I've looked at the code: https://github.com/jenkinsci/durable-task-plugin/blob/master/src/main/java/org/jenkinsci/plugins/durabletask/FileMonitoringTask.java and understand you don't want to write to files inside the workspace, fair enough I guess, but that's not a concern for us. Is there a reason this can't either: a) use the regular tmpdir, or b) allow some kind of config for this? The current workaround is to make a dir somewhere we know is writable, chdir to it, then have the spawned shell script chdir back out. And then chdir back out once the `sh()` step is finished. |
Component/s | Original: workflow-durable-task-step-plugin [ 21715 ] | |
Issue Type | Original: Bug [ 1 ] | New: Improvement [ 4 ] |
Summary | Original: Control directory creation fails if workspace/workingdir parent is not writable | New: Cannot run shell step if control dir parent is not writable |