Jenkins 参数在第一个 运行 上不存在(多分支)

Jenkins parameter does not exist on first run (multibranch)

我在使用参数化的 Jenkins 多分支管道时遇到问题。参数都在Jenkinsfile中声明。

问题是作业的第一个 运行 中不存在这些参数。因此,第一次执行将失败 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!"
            }
        }
    }
}