我想使用新的Jenkins文件来完成新工作。
我有独立存储库中的jenkinsfile:
然后我想在用户输入选择中使用这些变量
script {
env.BRANCHDEPLOY = input message: 'User input required',
ok: 'Deploy!',
parameters: [choice(name: 'Branch to deploy', choices: '${branch1}\n${branch2}\n${branch3}', description: 'What branch you wont deploy?')]
}
echo "${env.BRANCHDEPLOY}"
然后我将使用${env.BRANCHDEPLOY}
git来部署所选分支。
问题是我无法在用户选择中使用变量。
我只需要让用户从另一个gitlab存储库中选择分支他想要部署的内容。
答案 0 :(得分:4)
你只是错误地在变量周围做单引号,这些变量必须由脚本替换,所以只需将单引号更改为双引号即可。
"${branch1}\n${branch2}\n${branch3}"
示例:第二阶段打印所选选项
pipeline {
agent any
environment{
branch1 = 'stack'
branch2 = 'over'
branch3 = 'flow'
}
stages {
stage('Stage-One') {
steps {
script {
env.BRANCHDEPLOY = input message: 'User input required',
ok: 'Deploy!',
parameters: [choice(name: 'Branch to deploy', choices: "${branch1}\n${branch2}\n${branch3}", description: 'What branch you wont deploy?')]
}
}
}
stage('Stage-Two'){
steps{
sh "echo ${BRANCHDEPLOY}"
}
}
}
}
答案 1 :(得分:0)
你是否尝试过类似的东西,你应该能够通过tha var。
parameters {
string(branchName: 'feature_x')
}
scm {
checkout(
branches: [[name: '*/$branchName']],
....
}