如何将可选的Jenkins参数传递到Jenkinsfile中

时间:2019-03-11 17:43:11

标签: jenkins jenkins-pipeline

我有两个詹金斯工作。两者均未在源代码控制下使用Jenkinsfile。相反,每个作业都有一个保存在Jenkins作业本身中的管道脚本。这两个作业的管道脚本只有一种不同-其中一种会提示用户在运行该作业时选择一个称为VERSION的参数,而另一种则不会。管道脚本在所有其他方面都相同。

我正在尝试将两个管道脚本合并到源代码控制下的单个Jenkinsfile中。我因此定义了VERSION变量:

def version = (VERSION != "") ? "version=${VERSION}" : ""

据我了解(可能是错误的),这意味着“如果运行作业的用户输入了VERSION,请将$ version设置为$ VERSION。如果运行作业的用户未输入VERSION,请设置$ version为空”。然后,我在Jenkinsfile中进一步调用$ version。

当我运行用户未选择“版本”的Jenkins作业时,该作业将失败,并显示以下错误:

groovy.lang.MissingPropertyException: No such property: VERSION for class: 

是否有任何想法,取决于用户在运行作业时是否选择了此选项,如何将VERSION传递到我的Jenkinsfile中?

1 个答案:

答案 0 :(得分:1)

如果VERSION是作业的参数,则应进行以下更改:

def version = params.VERSION ? "version=${params.VERSION}" : ""