如何使用管道代码覆盖默认的 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 存储库签出到同一个作业中
如何测试使用分支名称的Jenkins管道(或其他jenkins脚本)?