gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 14:14:55 30 4
gpt4 key购买 nike

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

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

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

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

最佳答案

来自官方文档:

deleteDir: Recursively delete the current directory from the workspace.Recursively deletes the current directory and its contents. Symbolic links and junctions will not be followed but will be removed. To delete a specific directory of a workspace wrap the deleteDir step in a dir step.


所以, deleteDirWorkflow Basic Steps的方法插件(它是流水线插件的一个组件)。

cleanWs: Delete workspace when build is done.


好像是 cleanWs()只是 step([$class: 'WsCleanup'])的新版本来自 Workspace Cleanup Plugin .
据我了解,在 deleteDir 之间和 cleanWs略有不同: cleanWs有更多选项(如 cleanWhenAbortedcleanWhenFailure 等)并且使用起来更灵活,但建议仅在构建完成时使用(不确定我们是否可以在构建执行开始时使用它)。另一方面,我们可以使用 deleteDir在构建执行之前删除工作区的步骤。
更新 1:
建站后 cleanWs step 还可以考虑构建状态,这就是为什么它应该只在构建执行后使用。
但是,在 下ws-清理 插件有 preBuildCleanup步骤。您可以使用 preBuildCleanup 检查示例 (DSL)和 cleanWsthe plugin page .
更新 2:
@aaron-d-marasco 指出最好不要使用 deleteDir在 docker 图像中。
您可以在 this open bug中查看详细信息.

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

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com