我想知道是否有一个函数或管道插件允许在工作空间下创建目录,而不是使用sh "mkdir directory"

我尝试使用常规指令new File("directory").mkdirs(),但是它总是返回异常。

最佳答案

您可以做的是使用dir步骤,如果目录不存在,那么一旦您写入文件或类似文件,dir步骤将创建所需的文件夹:

node {
    sh 'ls -l'
    dir ('foo') {
        writeFile file:'dummy', text:''
    }
    sh 'ls -l'
}
sh步骤仅显示该文件夹已创建。缺点是文件夹中将有一个虚拟文件(如果要写入其他文件,则不需要进行虚拟写入)。如果运行此命令,将得到以下输出:
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] // dir
[Pipeline] sh
[pl] Running shell script
+ ls -l
total 4
drwxr-xr-x 2 jenkins jenkins 4096 Mar  7 22:06 foo
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS

关于jenkins - Jenkins管道创建目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42654875/

10-13 09:36