当前位置: 首页 > 知识库问答 >
问题:

詹金斯管道清除工作区

段干靖
2023-03-14

我们正在运行詹金斯2。x和爱的新管道插件。但是,由于存储库中有这么多分支,磁盘空间很快就会填满。

是否有任何与管道兼容的插件,我可以在成功构建时清除工作区?

共有3个答案

沈永新
2023-03-14

提到的解决方案deleteDir()cleanWs()(如果使用工作区清理插件)都可以工作,但在额外构建步骤中使用它的建议通常不是理想的解决方案。如果生成失败且管道中止,则永远不会达到此清理阶段,因此不会在失败的生成上清理工作区。

=

pipeline {
    agent any
    stages {
        stage('Example') {
            steps {
                echo 'Hello World'
            }
        }
    }
    post { 
        always { 
            cleanWs()
        }
    }
}
韩琛
2023-03-14

您可以使用deleteDir()作为管道文件的最后一步(假设您没有更改工作目录)。

孟建木
2023-03-14

就像詹金斯版本中指出的那样。2.74,下面的作品,不知道从什么时候开始,也许如果有人可以编辑和添加上面的版本

cleanWs()

有了Jenkins 2.16版和我拥有的工作区清理插件,我使用

step([$class: 'WsCleanup'])

删除工作区。

你可以通过去

JENKINS_URL/job/<any Pipeline project>/pipeline-syntax

然后从示例步骤中选择“步骤:一般构建步骤”,然后从构建步骤中选择“构建完成时删除工作区”

 类似资料:
  • 我们正在从遗留的Jenkins设置迁移到一个新服务器,其中所有计划都是声明性的jenkinsfile管道...然而,通过使用管道,我们不能再手动清除工作区。如何设置Jenkins以允许手动按需清理工作区? 我不希望每次运行时都清除工作区-我们可怕的遗留应用程序来自1.7G大小的回购(!)要花很长时间才能拉。每次运行时清除不是可行的选择。我不希望遵循“ssh in并手动删除目录”选项,因为并非所有J

  • 我有一个Jenkins管道,其中有10个作业被配置为在post build操作中一个接一个地运行。只要与作业相关的git代码发生更改,就会触发构建,并运行以下所有作业,尽管没有提交作业代码的其余部分。 例如,在一系列的10个工作在管道中,如果有一个代码变化在第二个工作,但没有在第三个工作,那么我想跳过第二个工作,直接构建第三个工作。同样,任何代码没有更改的作业都希望跳过并跳到下面的作业。 配置更改

  • 我试图从流水线步骤中运行一个job-dsl脚本。一般来说,这应该是可能的,正如这里所描述的,在管道步骤中添加了以下代码片段: null 我如何知道脚本的真实位置,以及如何指定一个jobDsl作为目标,它本身位于不同的repo中?还是我完全走错了方向? 编辑 经过进一步的研究,共享库存储库被签出到“真实”工作区旁边的一个目录中,后缀为@libs,这似乎是事实。所以我认为使用以下方法是个好主意: 与此

  • 问题内容: 在我们的Jenkins Pipeline工作中,我们有两个阶段,我想要的是,如果其中任何一个阶段失败,那么停止构建,而不继续进行下一个阶段。 这是其中一个阶段的示例: 该脚本将失败,并且生成结果将更新,但是作业将继续进行到下一个阶段。发生这种情况时,我该如何中止或停止工作? 问题答案: 基本上,这就是该步骤的作用。如果不将结果捕获到变量中,则可以运行: 如果脚本生成非零的退出代码,则将

  • 我有一个詹金斯管道,负责大约5个阶段(构建和几个不同的测试)。我正在从Jenkins1.xx(没有管道)迁移到Jenkins2,我希望尽可能地复制我的过程。我在J2上设置的管道作业处理的一切都完全相同,除了使用JenkinsFile。唯一的问题是,管道插件似乎不支持特定构建的推广,就像你可以做的自由式工作一样。有人找到办法了吗?

  • 问题内容: 已解决 :感谢S.Richmond的以下答复我需要取消所有类型的存储映射,这意味着将变量和使用后作废。 附加 :搜索此错误的人员可能有兴趣使用Jenkins管道步骤- 在此处查找更多信息。 我正在尝试使用Jenkins Pipeline从用户那里获取输入,该输入作为json字符串传递给作业。管道然后使用隔离器对此进行解析,然后选择重要信息。然后,它将使用该信息与不同的作业参数并行运行1