【发布时间】:2019-03-11 17:43:10
【问题描述】:
我有两个 Jenkins 工作。两者都不使用受源代码控制的 Jenkinsfile。相反,每个作业都有一个保存在 Jenkins 作业本身内的管道脚本。这两个作业的管道脚本仅在一个方面有所不同——其中一个在运行作业时提示用户选择一个名为 VERSION 的参数,而另一个则没有。管道脚本在所有其他方面都是相同的。
我正在尝试将两个管道脚本合并到一个受源代码控制的 Jenkinsfile 中。我已经定义了 VERSION 变量:
def version = (VERSION != "") ? "version=${VERSION}" : ""
据我了解(我可能错了),这意味着“如果运行作业的用户输入了 VERSION,则将 $version 设置为 $VERSION。如果运行作业的用户未输入 VERSION,则设置 $version为空”。然后我在我的 Jenkinsfile 中进一步调用 $version。
当我运行用户未选择 VERSION 的 Jenkins 作业时,作业失败并出现以下错误:
groovy.lang.MissingPropertyException: No such property: VERSION for class:
有什么想法可以根据用户在运行作业时是否选择此选项来选择将 VERSION 传递到我的 Jenkinsfile 中吗?
【问题讨论】:
-
由于没有提供代码,很难猜测,但听起来
VERSION是一个参数,应该通过params.VERSION从其映射中访问。