首页 > 解决方案 > 如果源代码已经签出,在 Jenkins 作业中进行 git fetch 是否安全?

问题描述

在我们所有的 Jenkins 作业中,我们在签出代码之前删除了工作区中的文件:

        steps {
            // Clean workspace before doing anything
            deleteDir()

            checkout scm
        }

但是当查看为构建作业创建的 pod 时,我可以看到workspace目录下有许多不同的文件夹,其中包含先前签出的代码。

鉴于每个工作区目录都是唯一的并且是为每个git分支创建的,我相信在构建时检查源代码是否已经存在是安全的,而不是删除文件并检查我们可能可以使用的代码git fetch

我的假设是否正确,是否可靠?我正在尝试减少构建时间,因为根据存储库的大小检查代码需要 1 到 8 分钟。

我曾经删除过deleteDir(),但由于.git文件的一些问题,作业失败了。

我们正在使用 groovy 代码,并且我们有自己的构建库,因此检查代码和/或 maven 构建之类的事情是手动完成的,而不是通过Jenkins Pipeline.

标签: gitjenkinsjenkins-groovy

解决方案


你的假设是正确的,如果你有频繁的构建,它可以节省很多时间。但是我们发现有时它没有从 github 获取最新的代码。所以很高兴有一个用于干净构建的复选框,它删除工作区并克隆存储库。


推荐阅读