I have a workflow that should only need one workspace but consumes 2 workspaces (1 for those steps that run on the dockerHostNode agent and 1 for those steps that run on a 'dockerHost' docker container agent). At one time the build only consumed one workspace but at some point (after triggering 2 jobs simultaneously, I think) the build started using multiple workspaces per a single job execution.
Jenkins version 1.609.3
workflow version is 1.12
Here is a simplified example of how my workflow looks:
stage name: 'sync workspace', concurrency: 2
node(dockerHostNode) {
checkout ...
}
stage name: 'Build Source', concurrency: 2
node(dockerHostNode) {
sh make ...
}
stage name: 'Run unittest', concurrency: 2
parallel(
unittest-a : {
node('dockerNode'){
sh ... // run unittest-a
}
},
unittest-b : {
node('dockerNode'){
sh ... // run unittest-b
}
}
)
stage name: 'Post Build Task', concurrency: 2
node(hostNode) {
sh make ... // collect artifacts, scan logs, etc
}
Does anyone have any idea why my workflow is creating multiple workspaces during a single workflow job execution? For now I am using ws() to force all job steps to use the same workspace, but I can still see that a second workspace is unnecessarily created during some of the allocate node start steps.