我有一个Jenkins管道,用于构建docker镜像并使用git hash标记它们。我还有另一个参数化的Jenkins管道,它接受了几个字符串/选择参数来部署docker镜像。我喜欢构建管道将一些字符串附加到部署管道中的选择参数,这样当用户运行部署管道时,他/她只会看到最近成功构建的docker镜像列表以供选择从。
任何人都知道怎么做?
答案 0 :(得分:1)
一种方法是让您的第一份工作是使用最近构建的图像标签列表(每行一个)设置环境变量。
请参阅declarative pipeline environment
directive。
然后,在" Dynamic Parameter in Jenkinsfile?"之后,您可以使用以下外部函数:
#!/bin/groovy
def envs = loadEnvs();
properties([
parameters([
choice(choices: envs, description: 'Please select an image tag', name: 'Env')
])
])
这应该足以构建一个选择参数列表。
" Pipeline: How to manage user inputs " (2017年5月10日,两周前)显示了另一个命令,但在Declarative Pipeline syntax中无效:
您必须使用
input
步骤来实现它 它会给你这样的东西:
stage 'promotion'
def userInput = input(
id: 'userInput', message: 'Let\'s promote?', parameters: [
[$class: 'TextParameterDefinition', defaultValue: 'uat', description: 'Environment', name: 'env'],
[$class: 'TextParameterDefinition', defaultValue: 'uat1', description: 'Target', name: 'target']
])
echo ("Env: "+userInput['env'])
echo ("Target: "+userInput['target'])