如何使多个 Jenkins 管道文件 (Jenkinsfile) 在多个分支中保持一致?

How do i keep multiple Jenkins pipeline files (Jenkinsfile) consistent across multiple branches?

我们有一个使用多分支管道脚本的要求,即多分支 Jenkins 文件在 repo 中跨多个分支配置。如果我们想让这个 Jenkinsfiles 在多个分支上保持一致怎么办,在一个文件中所做的任何更改都应该反映在其他 Jenkinsfile 中?有什么想法吗?

一种简单的方法是将您的管道代码放在共享管道库中,即。整个管道在一个“var”中。然后从所有分支的相同版本(分支)加载库。

换句话说,您的 Jenkinsfile 将如下所示:

@Library ("my_shared_lib@main") _

script {
    myCiPipeline ( <optional parameters>)
}

只要所有分支都保留相同的 Jenkinsfile,您就可以为所有分支执行相同的管道,并且可以在共享库中不断改进管道代码。

请注意,也可以参数化 myCiPipeline var 以允许每个分支的可配置逻辑,甚至让 var 本身检测分支并采取相应行动。