Jenkins管道创建目录

时间:2017-03-07 17:46:35

标签: jenkins jenkins-pipeline

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

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

  

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException:脚本不允许使用新的java.lang.RuntimeException java.lang.String

2 个答案:

答案 0 :(得分:44)

您可以使用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

答案 1 :(得分:0)

只需使用file operations plugin

fileOperations([folderCreateOperation('directoryname')])