【问题标题】:Jenkins pipline pruned branches are not deleted from diskJenkins 管道修剪的分支不会从磁盘中删除
【发布时间】:2018-02-12 19:47:27
【问题描述】:

创建新分支时,Jenkins 将在管道内创建新的构建作业。当该分支被合并和修剪时,詹金斯会将其从 UI 中删除,因为扫描会将其拾取。但是该旧分支的作业文件夹仍保留在磁盘上。在我们克隆、引入依赖项和构建时,我的一些存储库已经超过 2g。管道正在迅速使用所有磁盘空间。

如何强制 jenkins 删除属于修剪分支的文件夹?

更新

看起来 Jenkins 的预期行为是删除作业,而不是 piplines 的工作区文件,您必须自己删除这些文件。我的管道的 finally 块现在具有以下内容:

cleanWs() 

【问题讨论】:

    标签: git jenkins jenkins-pipeline


    【解决方案1】:

    如果这是您的选择,只需使用cleanWs 删除工作区作为构建的最后一步。当然你需要安装插件。


    您还可以使用deleteDir 删除特定目录。这可能是存储 nuget 包的目录。也运行nuger restore 不带 nocache参数

    另一种选择是在最后简单地运行 git clean -xfd 作为 bat 步骤,这是删除 所有不受源代码控制的文件夹和文件。当然,这意味着工作空间 Root 是得到的 repo Rroot。如果您要保存一些构建日志或您需要但它不在 git 下的东西,请小心

    【讨论】:

    • 那不理想。修剪分支时詹金斯不应该删除文件夹吗?在构建结束时删除所有内容将进行构建,再次克隆所有内容并再次下载所有依赖项。
    • 你没有说你正在使用什么样的依赖管理器,也没有说什么,但如果它不缓存在全局缓存中下载一次的东西,那就不好了。您还没有说您是否使用 Multibranch 构建?我想是的,如果不是,那么我不明白最后删除工作区将如何进行构建。
    • 这些主要是 .net 构建,将大量 nuget 包引入本地文件夹。我会尝试在每次构建结束时删除,看看它是如何工作的
    • 好的,但它是多分支构建吗?
    • 是 - 抱歉多分支。我虽然在修剪分支时 jenkins 正在删除文件夹
    猜你喜欢
    • 1970-01-01
    • 2014-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多