我有一个运行Jenkinsfile
的选择分支的多分支管道。现在,我需要使用参数运行相同的Jenkinsfile
,所以我认为可以使用常规管道。
现在我要做的就是确定我是否在多分支管道中运行。我可以检查构建中是否有任何参数,并且在没有参数时可以推断出我在多分支管道中:
def isMultibranchPipeline() {
!params.any()
}
我正在寻找一种更直接的方法,以了解脚本是否在多分支管道中运行,但是找不到类似的东西。
答案 0 :(得分:1)
买得到当前的“项目”(这是詹金斯的工作),由于其类,您可以知道它是否是多分支工作:
import jenkins.model.Jenkins
import org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject
def isMultiBranchPipeline() {
return Jenkins.get().getItem(currentBuild.projectName) instanceof WorkflowMultiBranchProject
}
答案 1 :(得分:0)
如果作业为PipelineMultiBranchDefaultsProject,则先前的方法无效。我是 检查scm对象
boolean isMultiBranchPipeline() {
try {
if (script.scm)
return true
} catch (Exception e) {
return false
}
}