Jenkins参数在首次运行时不存在多分支

问题描述

我遇到了Jenkins多分支管道的问题,该管道已参数化。这些参数都在Jenkins文件中声明。

问题在于这些参数在作业的第一次运行时不存在。因此,第一次执行将以groovy.lang.MissingPropertyException失败。现在,所有后续运行都知道这些参数,并且不会失败。

由于这是一个多分支管道,因此会在每个新的请求请求或跟踪的分支中发生。有什么解决方法可以避免此问题?

我也尝试在UI中设置参数,但是管道配置页面上没有设置参数的选项。可能是因为这是多分支管道?

欢呼

解决方法

这是管道中的参数的已知问题。要知道需要哪些参数,Jenkins需要执行一次Jenkinsfile。例如,在管道的第一次运行之后,GUI中的参数才可用。

为防止错误,您可以指定合理的默认值,如下所示:

pipeline {
    agent any
    parameters {
        string(name: 'Greeting',defaultValue: 'Hello',description: 'How should I greet the world?')
    }
    stages {
        stage('Example') {
            steps {
                echo "${params.Greeting} World!"
            }
        }
    }
}