Jenkins Pipeline Choices属性

时间:2018-10-23 00:36:45

标签: jenkins jenkins-pipeline jenkins-groovy

给我的印象是,詹金斯管道选择语法仅支持静态的以换行符分隔的选项列表,并且由于使用Groovy函数(例如返回地图)而目前不支持动态填充。

但是,在.net核心上进行一些阅读后,我发现了this个帖子。

我对其中一部分管道代码摘录特别感兴趣:

parameters {
    choice(choices: services, description: 'Name of the ECS service to deploy', name: 'serviceName')
    choice(choices: services, description: 'Name of Docker image to update', name: 'imageName')
    string(defaultValue: 'Tag to deploy', description: 'Docker image tag', name: 'tag')
}
  1. services变量的何处以及如何设置/填充?
  2. 什么是services类型?它是某种地图(值和描述)吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

这里的def self.search_by(search_term) where("LOWER(course_name) LIKE ?", "%#{search_term.to_downcase}%") end 变量很可能是带换行符的字符串(services)或列表(services = "choice a/nchoice b"]。这两个天都可以正常工作。

我认为您可以在services = ["choice a", "choice b"指令中设置变量,然后在environment 中使用它[事实上,parameters版本不起作用]或(可能是邪恶的)在environment之外:

pipeline

我曾经使用它来获取注册表中所有Docker映像的标签,以选择应部署的映像。这有多个问题:

  1. 这是AFAIK,完全没有记录,因此它可能最终会停止工作。
  2. 每次读取Jenkinsfile时都会执行该代码。它配置作业,因此为 next 构建更改了参数。因此,就我而言,我只得到上次构建中存在的标签,而不是当前存在的标签。