代码之家  ›  专栏  ›  技术社区  ›  Wim Deblauwe

Jenkins中的“在构建开始之前删除工作区”和“擦除存储库并强制克隆”之间的区别?

  •  17
  • Wim Deblauwe  · 技术社区  · 9 年前

    我正在测试jenkins作业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 回复  |  直到 9 年前
        1
  •  12
  •   CSchulz cL83    9 年前

    一般来说,这两种选择之间没有区别。

    它们由不同的插件提供:

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

    • 仅不绑定到Git SCM
    • 允许使用ant文件模式仅删除一些文件或目录
        2
  •  2
  •   mikewaters    9 年前

    Git插件的“擦除存储库&强制克隆”选项的一个重要行为是,如果您在“签出到子目录”选项中选择了存储库子目录,它将只删除该子目录。它将使您的工作区的其余部分保持独立。据我所知,这并没有出现在文档中。

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

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