问题描述
我遇到了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!"
}
}
}
}