'在构建开始之前删除工作区之间的区别'和'擦除存储库&强迫克隆'在詹金斯?

时间:2016-05-31 08:39:53

标签: jenkins jenkins-job-dsl

我正在测试jenkins job-dsl插件。我有一个现有的项目,在构建开始之前设置'删除工作区'已启用。

我定义了以下DSL:

job("$basePath/my-project") {
    scm {
        git {
            remote {
                name('origin')
                url('git@bitbucket.org:my-organisation/my-project.git')
            }
            branch('*/develop')
            extensions {
                wipeOutWorkspace()
                submoduleOptions {
                    recursive()
                }
            }
        }
    }
}

这似乎给出了一个不完全相同的配置,它显示了一个"擦除存储库&强迫克隆"选项。这些选项最终是否真的相同或者有不同的行为?

2 个答案:

答案 0 :(得分:9)

两种选择之间通常没有区别。

它们由不同的插件提供:

  • 擦除存储库&强制克隆Git Plugin的一部分,仅适合作为git插件的扩展
  • 在构建开始之前删除工作区Workspace Clean Plugin
  • 的一部分

Workspace Clean Plugin和Git插件之间的主要区别:

  • 仅限于Git SCM
  • 允许使用ant文件模式仅删除某些文件或目录

答案 1 :(得分:1)

Git插件的“擦除存储库和强制克隆”选项的一个重要行为是,如果您在“签出到子目录”选项中选择了一个存储库子目录,它将仅删除存储库子目录。它将独自留下您工作区的其余部分。据我所知,这不会出现在文档中。

通过在“要删除的文件的模式”高级配置部分中指定克隆子目录,您可以使用Workspace Cleanup插件实现类似的行为。

最终结果完全相同,但在我的观察中,Git插件删除速度比Workspace Cleanup插件快5秒。