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

how to override default Jenkins Git plugin checkout with pipeline code?

我有带有 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
            ])
    }

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

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

options { skipDefaultCheckout() }

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