如何使用管道代码覆盖默认的 Jenkins Git 插件检出?

Posted

技术标签:

【中文标题】如何使用管道代码覆盖默认的 Jenkins Git 插件检出?【英文标题】:how to override default Jenkins Git plugin checkout with pipeline code? 【发布时间】:2022-01-18 17:09:25 【问题描述】:

我有带有 jenkins git 插件的 jenkins 多分支管道。 当创建新的请求请求时,一个新的 PR 作业开始,并且自动完成存储库的签出。问题是有时它会超时(网络)。

我尝试使用带有一些条件的 GitSCM 代码在管道中重试:

        checkout([
              $class: 'GitSCM',
              branches: scm.branches,
              doGenerateSubmoduleConfigurations: scm.doGenerateSubmoduleConfigurations,
              extensions: scm.extensions + [[$class: 'CloneOption', noTags: false, reference: '', shallow: false]],
              submoduleCfg: [],
              userRemoteConfigs: scm.userRemoteConfigs
            ])
    

它可以很好地重复结帐,但我仍然需要禁用插件的第一个默认结帐(如果它失败,则作业失败)。我怎么做?如何覆盖内置结帐?

【问题讨论】:

【参考方案1】:

skipDefaultCheckout 选项应该禁用默认结帐。例如:

options  skipDefaultCheckout() 

在此处阅读更多信息:https://www.jenkins.io/doc/book/pipeline/syntax/#available-options

【讨论】:

它确实有效。所以它解决了这个问题。我遇到了另一个问题 - 如果我使用 skipDefaultCheckout(),然后 checkout([$class: 'GitSCM',]) 自己做,我有:致命:不是 git 存储库(或任何父目录) : .git

以上是关于如何使用管道代码覆盖默认的 Jenkins Git 插件检出?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Jenkins 管道将多个 git 存储库签出到同一个作业中

使用slackSend的Jenkins管道评估步骤

如何测试使用分支名称的Jenkins管道(或其他jenkins脚本)?

DEVOPS技术实践_08:Jenkins多分支管道

带有 git 私有仓库的 Jenkins kubernetes 插件

如何在 Jenkins 声明式管道中设置 PATH