Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins deleteDir、cleanWs和'之间的区别是什么;WsCleanup&x27;詹金斯管道?_Jenkins_Jenkins Plugins_Jenkins Pipeline - Fatal编程技术网

Jenkins deleteDir、cleanWs和'之间的区别是什么;WsCleanup&x27;詹金斯管道?

Jenkins deleteDir、cleanWs和'之间的区别是什么;WsCleanup&x27;詹金斯管道?,jenkins,jenkins-plugins,jenkins-pipeline,Jenkins,Jenkins Plugins,Jenkins Pipeline,例如,在清理Jenkinsfile中的工作区时都提到了这些。然而,似乎有些已经过时,或者功能稍有不同,我想知道应该使用哪一种 其中,deleteDir是最常提到的,显然其他的只是调用Jenkins工作区清理插件的不同语法 功能上的区别是什么?推荐哪一种 deleteDir() cleanWs() step([$class: 'WsCleanup']) 从官方文件: :从工作区递归删除当前目录。 递归删除当前目录及其内容。符号链接和连接将不被遵循,但将被删除。要删除工作区的特定目录,请在目录步骤

例如,在清理
Jenkinsfile
中的工作区时都提到了这些。然而,似乎有些已经过时,或者功能稍有不同,我想知道应该使用哪一种

其中,
deleteDir
是最常提到的,显然其他的只是调用Jenkins工作区清理插件的不同语法

功能上的区别是什么?推荐哪一种

deleteDir()
cleanWs()
step([$class: 'WsCleanup'])

从官方文件:

:从工作区递归删除当前目录。 递归删除当前目录及其内容。符号链接和连接将不被遵循,但将被删除。要删除工作区的特定目录,请在目录步骤中包装deleteDir步骤

因此,
deleteDir
是一种插件方法(它是管道插件的一个组件)

:生成完成时删除工作区

似乎
cleanWs()
只是
步骤([$class:'WsCleanup'])
的新版本

据我所知,在
deleteDir
cleanWs
之间有一点不同:
cleanWs
有更多的选项(如
cleanWhenBorted
cleanWhenFailure
,等等),使用起来更灵活,但建议仅在构建完成时使用(不确定是否可以在构建执行开始时使用它)。另一方面,我们可以在构建执行之前使用
deleteDir
步骤擦除工作区

更新1:
生成后
cleanWs
步骤也可以考虑生成状态,这就是为什么只有在生成执行之后才应该使用它。
但是,在ws-cleanup插件下也有
preBuildCleanup
步骤。您可以在
preBuildCleanup
cleanWs
都打开的情况下检查示例(DSL)

更新2:
@aaron-d-marasco指出,最好不要在docker图像中使用
deleteDir

您可以在中查看详细信息。

谢谢。我添加了一个指向该问题的链接(这实际上是我在此处提问的触发点。)该问题提到了这些,但没有说明这些选项之间的区别。我的问题已链接到其他问题,并添加了更多信息的请求。我进行了编辑,以进一步澄清我要查找的其他信息仅供参考-
deleteDir
(尚未尝试
cleanWs
)在WS的顶层docker上下文中做坏事;不要这样做取而代之。@AaronD.Marasco您能详细说明一下
deleteDir
在WS的顶级运行时所做的坏事吗?@Jidehem-bug自2017年2月开始出现。基本上,docker会因为挂载的目录消失而感到困惑。知道为什么
cleanWs()吗
不建议在管道开始时使用?@Arghya似乎是因为以下原因:生成后
cleanWs()
步骤也可以考虑生成状态。但是,在ws-cleanup插件下有
preBuildCleanup()
方法。您可以在插件页面上查看示例: