下面是在舞台视图中选择Git存储库的Jenkinsfile(脚本化管道)代码段:
userInput = input(id: 'userInput',
message: 'Do you want to build?',
parameters: [
[$class: 'ChoiceParameterDefinition', choices: "repo_1\nNone", name: 'Env']
]
)
if (userInput.Env == "repo_1") {
print 'selected repo_1'
}
要求用户选择存储库,然后单击Proceed
单击Proceed
按钮时,詹金斯会抛出错误:
groovy.lang.MissingPropertyException: No such property: Env for class: java.lang.String
仅允许repo_1
其余的存储库应该是自动触发的
编辑:
进行以下更改后,
node('worker_node'){
def userIdCause = currentBuild.getBuildCauses('hudson.model.Cause$UserIdCause')
def manualBuild = userIdCause.size()
stage("Auth-build") {
timeout(2) {
if (manualBuild) {
userInput = input(id: 'userInput',
message: 'Please select the repository',
parameters: [
[$class: 'ChoiceParameterDefinition', choices: "repo_1\nNone", name: 'Env']
]
)
if (userInput == "None") {
error('Error output')
}
repositoryName = 'repo_1'
}else if( !manualBuild && (repositoryName == 'repo_1')){
error('error output')
}
}
}
}
点击BuildNow
后我没有得到UI,我必须遵循以下过程:
1)为什么userInput.Env
给出缺少的属性异常错误?
2)input()
api需要一分钟的时间来呈现输入向导。我们可以优化吗?
答案 0 :(得分:1)
No such property: Env for class: String
-我相信input
函数已经返回了单个输入的值。 input
定义非常简单,并且不包含任何代码(仅是常量)-
没有什么要优化的。在其他地方寻找时间消费者。