我有两个詹金斯工作。两者均未在源代码控制下使用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中?
答案 0 :(得分:1)
如果VERSION
是作业的参数,则应进行以下更改:
def version = params.VERSION ? "version=${params.VERSION}" : ""