Jac*_*des 5 jenkins jenkins-pipeline
我有两份詹金斯工作。两者都不使用源代码控制下的 Jenkinsfile。相反,每个作业都有一个保存在 Jenkins 作业本身内的管道脚本。这两个作业的管道脚本只有一处不同 - 其中一个在运行作业时提示用户选择一个名为 VERSION 的参数,而另一个则没有。管道脚本在所有其他方面都是相同的。
我正在尝试将两个管道脚本合并到源代码控制下的单个 Jenkinsfile 中。我这样定义了 VERSION 变量:
def version = (VERSION != "") ? "version=${VERSION}" : ""
Run Code Online (Sandbox Code Playgroud)
据我了解(我可能是错的),这意味着“如果运行作业的用户输入了 VERSION,则将 $version 设置为 $VERSION。如果运行作业的用户未输入 VERSION,则将 $version 设置为 null” 。然后我在 Jenkinsfile 中进一步调用 $version 。
当我运行用户未选择 VERSION 的 Jenkins 作业时,作业失败并出现以下错误:
groovy.lang.MissingPropertyException: No such property: VERSION for class:
Run Code Online (Sandbox Code Playgroud)
关于如何根据用户在运行作业时是否选择此选项来选择性地将 VERSION 传递到我的 Jenkinsfile 中,有什么想法吗?
如果VERSION是作业的参数,您应该更改如下:
def version = params.VERSION ? "version=${params.VERSION}" : ""
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5709 次 |
| 最近记录: |