What you can do is use the dir step, if the directory does not exist, then the dir step will create the folders needed after you write the file or something like that:
node { sh 'ls -l' dir ('foo') { writeFile file:'dummy', text:'' } sh 'ls -l' }
The sh steps are here to show that the folder is created. The disadvantage is that you will have a dummy file in the folder (a dummy entry is not needed if you are going to write other files). If I run this, I get the following output:
Started by user jon [Pipeline] node Running on master in /var/lib/jenkins/workspace/pl [Pipeline] { [Pipeline] sh [pl] Running shell script + ls -l total 0 [Pipeline] dir Running in /var/lib/jenkins/workspace/pl/foo [Pipeline] { [Pipeline] writeFile [Pipeline] } [Pipeline]
Jon s
source share