Jenkins管道中的deleteDir,cleanWs和'WsCleanup'有什么区别?

时间:2019-01-03 09:03:57

标签: jenkins jenkins-plugins jenkins-pipeline

已提及所有这些内容(例如in this SO question)以清理Jenkinsfile中的工作区。

在这些变量中,deleteDir是最常被提及的,显然其他变量只是调用Jenkins Workspace Cleanup插件的不同语法。

功能上有什么区别?推荐哪个?

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

1 个答案:

答案 0 :(得分:4)

摘自官方文档:

  

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

因此,deleteDirWorkflow Basic Steps插件(它是管道插件的组件)的一种方法。

  

cleanWS:构建完成后删除工作区。

似乎cleanWs()只是Workspace Cleanup Pluginstep([$class: 'WsCleanup'])的新版本。

因此,据我所知,deleteDircleanWs之间略有不同:cleanWs有更多选择(例如cleanWhenAbortedcleanWhenFailure等)。 ),使用起来更灵活,但建议仅在构建完成后使用(不确定在构建执行开始时是否可以使用它)。另一方面,我们可以使用deleteDir步骤在构建执行之前擦除工作空间。