提到这些都是为了清理Jenkinsfile中的工作区(例如in this SO question)。但是,似乎有些已过时或功能略有不同,我想了解使用哪一种。

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

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

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

最佳答案

从官方文档中:

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

似乎cleanWs()只是Workspace Cleanup Pluginstep([$class: 'WsCleanup'])的新版本。
据我了解,deleteDircleanWs之间略有不同:cleanWs具有更多选项(例如cleanWhenAbortedcleanWhenFailure等),并且使用起来更灵活,但是建议仅在构建完成后使用(不确定是否可以使用)它在构建执行开始时)。另一方面,我们可以在构建执行之前使用deleteDir步骤擦除工作空间。
更新1:
生成后cleanWs后的步骤还可以考虑到生成状态,这就是为什么仅在执行生成后才使用它的原因。
但是,在 ws-cleanup 插件下,还有preBuildCleanup步骤。您可以在the plugin page上同时使用preBuildCleanupcleanWs来检查示例(DSL)。
更新2:
@ aaron-d-marasco指出,最好不要在Docker镜像中使用deleteDir
您可以在this open bug中检查详细信息。

关于jenkins - Jenkins管道中的deleteDir,cleanWs和 'WsCleanup'有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54019121/

10-10 18:09