【问题标题】:Preventing default checkout in shared Jenkinsfile防止共享 Jenkinsfile 中的默认签出
【发布时间】:2018-12-07 10:36:12
【问题描述】:

我在 Windows 上的 Jenkins 中有许多多分支管道作业,每个作业都使用标准程序 Jenkinsfile,其中包含在我们的构建农场上运行构建的各种方法,包括计算合理位置以检查源代码的方法到。

我遇到的问题是,当推送到名称很长的分支时,关联的构建会失败,因为 Jenkins 尝试签出分支的路径太长。

似乎导致失败的签出是 Jenkins 执行的“默认”签出,而不是由 Jenkinsfile 执行的签出,已为其计算了适当的路径。

从一些相当广泛的谷歌搜索来看,我似乎需要使用 skipDefaultCheckout() 来防止这种默认结帐,但目前尚不清楚在这种情况下应该如何完成。

每个项目的根目录下都有一个 Jenkinsfile,其中包含以下内容:

node {
    standardJenkinsfile.include()
}

标准Jenkinsfile 被配置为一个全局管道库。 include() 方法协调构建。

我尝试在调用标准 Jenkinsfile 之前将 skipDefaultCheckout() 添加到项目的 Jenkinsfile 中,并且我还尝试将其添加到标准Jenkinsfile.include() 方法的开头,但默认签出仍在发生。

这种配置有没有办法阻止默认结帐?或者至少指定结帐的目标目录?

【问题讨论】:

    标签: jenkins jenkins-pipeline multibranch-pipeline


    【解决方案1】:

    这是在 SAP S/4HANA Cloud SDK CICD 管道中的完成方式 https://github.com/SAP/cloud-s4-sdk-pipeline/blob/master/s4sdk-pipeline.groovy#L11

    【讨论】:

    • 感谢您的回复,但这似乎是使用声明性语法,我需要一种方法来使用过程语法。抱歉,我应该在问题中说明这一点。
    • 另外,链接中的内容现在不包含真正的 jenkins 文件,请转发参考。您能否找出它实际上是如何完成的并将其发布在这里,以便您的解决方案存储在 SO 上,而不是通过某些肯定会再次中断的链接? :)
    猜你喜欢
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    • 2012-03-30
    • 2021-12-28
    • 2016-10-05
    • 1970-01-01
    • 2018-10-19
    相关资源
    最近更新 更多