Jenkins Pipeline可以编写/配置单独的Jenkins作业吗?

时间:2017-05-23 03:33:34

标签: docker jenkins jenkins-pipeline

我有一个Jenkins管道,用于构建docker镜像并使用git hash标记它们。我还有另一个参数化的Jenkins管道,它接受了几个字符串/选择参数来部署docker镜像。我喜欢构建管道将一些字符串附加到部署管道中的选择参数,这样当用户运行部署管道时,他/她只会看到最近成功构建的docker镜像列表以供选择从。

任何人都知道怎么做?

1 个答案:

答案 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'])