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

詹金斯管道-手动清理工作空间?

子车征
2023-03-14

我们正在从遗留的Jenkins设置迁移到一个新服务器,其中所有计划都是声明性的jenkinsfile管道...然而,通过使用管道,我们不能再手动清除工作区。如何设置Jenkins以允许手动按需清理工作区?

我不希望每次运行时都清除工作区-我们可怕的遗留应用程序来自1.7G大小的回购(!)要花很长时间才能拉。每次运行时清除不是可行的选择。我不希望遵循“ssh in并手动删除目录”选项,因为并非所有Jenkins用户都具有ssh访问权限。

我找到的所有现有答案都涉及到“让它作为管道的一部分每次都发生”或“在服务器上运行脚本”-Jenkins GUI中肯定有一种方法可以说“清除此工作区,以便我们下次可以构建干净的工作区”?

(我们可以使用(buildnum)查看工作区)

共有1个答案

齐坚成
2023-03-14

您可以向管道添加一个参数:

properties([
  parameters([
    string(name: 'cleanWorkspace', defaultValue: 'false')
  ])
])

然后在管道中,当参数作为true传递时,仅触发deleteDir()

if(params.cleanWorkspace == 'true') {
    deleteDir()
}
 类似资料:
  • 我们正在运行詹金斯2。x和爱的新管道插件。但是,由于存储库中有这么多分支,磁盘空间很快就会填满。 是否有任何与管道兼容的插件,我可以在成功构建时清除工作区?

  • 我有一个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