我使用脚本语法来定义我们的多分支Jenkins管道(而不是声明性语法)。我想添加可以在手动运行管道时设置的参数。这应该是可行的:
parameters([
string(name: "Greeting", defaultValue: "Hello", description: "How should I greet the world?")
])
node('my-build') {
checkout scm
echo "${params.Greeting} World!"
不幸的是,我运行这个程序时得到的只是
08:40:56 [管道]回声
08:40:56 null世界!
我试过很多不同的方法,但没有一种有效。看起来好像Greeting
参数甚至没有设置,我可以添加一个echo "${params.UNKNOWN_PARAM}"
,并且仍然在控制台中获得null输出,所以我不认为这是一个缺少的值,而是一个缺少的参数(键)。
有没有人有一个想法如何使这个工作吗?
1条答案
按热度按时间yduiuuwa1#
parameters
不是Pipeline Step,而是Declarative Pipeline指令。由于管道定义使用脚本语法而不是声明语法,因此永远不会添加该参数。Pipeline Syntax具有使用声明性语法定义的参数的示例。
在脚本语法中,
properties
步骤允许定义参数。管道片段生成器可以帮助您生成将在控制器上工作的步骤。请注意,参数仅在Pipeline至少执行一次后才会显示。因此,在第一次运行时,参数可能是空的,但在第二次运行时,您应该会看到它。