如何在 jenkins-pipeline 中获取输入步骤输出
How to get input steps ouput in jenkins-pipeline
我在管道中使用了一个输入步骤,如下所示:
input(
message : "some message",
parameters: [
[$class: 'ChoiceParameterDefinition',
choices: string ,
description: 'description',
name:'input'
]
]
)
我想使用我配置的名称输入来获取输入中的值,就像这样 ${input},但它没有用。我也试着把它放在这样的 var 中:
def reg = input : messages : "", paramaters: [...]
但是它也不起作用,所以我不明白我怎么能得到用户选择的参数,但在执行中没有找到如何做。
此致,
尝试使用此代码:
def userInput = input(id: 'userInput', message: 'some message', parameters: [
[$class: 'ChoiceParameterDefinition', choices: string, description: 'description', name:'input'],
])
VARAIBLE = userInput
它对我有用。
如果您需要添加更多 ChoiceParameterDefinition
代码应该如下所示:
def userInput = input(id: 'userInput', message: 'some message', parameters: [
[$class: 'ChoiceParameterDefinition', choices: string, description: 'description1', name:'input1'],
[$class: 'ChoiceParameterDefinition', choices: string, description: 'description2', name:'input2'],
])
VARAIBLE1 = userInput['input1']
VARAIBLE2 = userInput['input2']
使用 ChoiceParameterDefinition
时,请记住将选项定义为用 \n
分隔的字符串。您可以将 input(...)
步骤返回的值分配给一个变量并在以后使用它。看看下面的例子:
node {
stage('Test') {
def reg = input(
message: 'What is the reg value?',
parameters: [
[$class: 'ChoiceParameterDefinition',
choices: 'Choice 1\nChoice 2\nChoice 3',
name: 'input',
description: 'A select box option']
])
echo "Reg is ${reg}"
}
}
在这个例子中,我定义了一个带有 3 个选项的 select。当我 运行 这个管道时,我得到这个弹出 select 三个选项之一:
我选择了第一个,管道以以下控制台输出结束:
[Pipeline] node
Running on Jenkins in /var/jenkins_home/workspace/test-pipeline
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Test)
[Pipeline] input
Input requested
Approved by admin
[Pipeline] echo
Reg is Choice 1
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS
我在管道中使用了一个输入步骤,如下所示:
input(
message : "some message",
parameters: [
[$class: 'ChoiceParameterDefinition',
choices: string ,
description: 'description',
name:'input'
]
]
)
我想使用我配置的名称输入来获取输入中的值,就像这样 ${input},但它没有用。我也试着把它放在这样的 var 中:
def reg = input : messages : "", paramaters: [...]
但是它也不起作用,所以我不明白我怎么能得到用户选择的参数,但在执行中没有找到如何做。
此致,
尝试使用此代码:
def userInput = input(id: 'userInput', message: 'some message', parameters: [
[$class: 'ChoiceParameterDefinition', choices: string, description: 'description', name:'input'],
])
VARAIBLE = userInput
它对我有用。
如果您需要添加更多 ChoiceParameterDefinition
代码应该如下所示:
def userInput = input(id: 'userInput', message: 'some message', parameters: [
[$class: 'ChoiceParameterDefinition', choices: string, description: 'description1', name:'input1'],
[$class: 'ChoiceParameterDefinition', choices: string, description: 'description2', name:'input2'],
])
VARAIBLE1 = userInput['input1']
VARAIBLE2 = userInput['input2']
使用 ChoiceParameterDefinition
时,请记住将选项定义为用 \n
分隔的字符串。您可以将 input(...)
步骤返回的值分配给一个变量并在以后使用它。看看下面的例子:
node {
stage('Test') {
def reg = input(
message: 'What is the reg value?',
parameters: [
[$class: 'ChoiceParameterDefinition',
choices: 'Choice 1\nChoice 2\nChoice 3',
name: 'input',
description: 'A select box option']
])
echo "Reg is ${reg}"
}
}
在这个例子中,我定义了一个带有 3 个选项的 select。当我 运行 这个管道时,我得到这个弹出 select 三个选项之一:
我选择了第一个,管道以以下控制台输出结束:
[Pipeline] node
Running on Jenkins in /var/jenkins_home/workspace/test-pipeline
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Test)
[Pipeline] input
Input requested
Approved by admin
[Pipeline] echo
Reg is Choice 1
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Finished: SUCCESS