git - 如果源代码已经签出,在 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
.
解决方案
你的假设是正确的,如果你有频繁的构建,它可以节省很多时间。但是我们发现有时它没有从 github 获取最新的代码。所以很高兴有一个用于干净构建的复选框,它删除工作区并克隆存储库。
推荐阅读
- python - 请求的运行时 (python-) 不适用于此堆栈 (heroku-20)
- c# - 无法仅在 uniy 中为 Z 轴制作动画
- android - 无法在初始化程序中访问实例成员“setState”
- asp.net-core - 如何使用多个选定值更新行 SelectList
- sql - 将值插入到只有 1 列的表中
- google-sheets-api - Google.Apis.Requests.RequestError 未找到请求的实体。[404]
- python - 将列表的每个元素与没有循环的列表连接起来
- amazon-web-services - AttributeDefinitions 和 KeySchemas 中的属性集必须在 Resources/DynamoDB/Properties 匹配
- frequency - 频率计数法
- html - 如何使用 thymeleaf 在 Spring Boot 中加载图像?