Jenkins中的参数列表显示来自另一个构建的构建号列表

时间:2013-10-02 10:53:17

标签: jenkins jenkins-plugins

我有两个Jenkins构建,一个用于编译,一个用于部署。

开发人员希望能够在运行部署构建时从编译器构建中选择构建,而不是始终运行最新构建。

我所追求的是一种使用编译版本中成功的\ unstable构建列表填充部署版本的选择参数的方法。

然后,我将使用参数中列出的选项来部署该工件。

4 个答案:

答案 0 :(得分:9)

使用Dynamic Parameters plugin

在推广工作中:

  • [x]此版本已参数化
  • 添加参数
  • 动态选择参数
  • 将名称设置为
  • 在下面粘贴到选择脚本
import jenkins.model.Jenkins
import hudson.model.AbstractProject
import hudson.model.Result
import hudson.util.RunList

AbstractProject<?, ?> otherJob = Jenkins.getInstance().getItemByFullName("otherJobName", AbstractProject.class)
RunList<?> builds = otherJob.getBuilds().overThresholdOnly(Result.SUCCESS)

def list = builds.limit(5).collect { it.number }

wiki页面的屏幕截图:

Screenshot

答案 1 :(得分:1)

据我所知,无法填充选择参数。但是,您不需要始终使用最新版本。我假设您使用copy artifact plugin。此插件提供“复制工件的构建选择器”参数。您仍然需要手动输入内部版本号,但在部署时您拥有所有标准选项,例如“最新成功构建”,还有“特定构建”。您需要输入该号码并且没有下拉列表,但我已经让我的部署人员训练得足以输入内部版本号。

答案 2 :(得分:1)

由于Dynamic Parameters plugin不再可用。您可以在Jenkins中使用Active Choice parameter插件。 现在,您可以在Jenkins Job / pipeline中将所有成功的Jenkins构建作为参数化选项列出

按照以下步骤访问成功的作业列表(作为下拉列表)

  1. 在作业配置中[常规部分]选择该项目已参数化

  2. 选择添加参数作为“主动选择参数”

  3. 为参数命名

  4. 选择groovy脚本并将以下代码粘贴到groovy脚本文本框中

    return jenkins.model.Jenkins.instance.getJob('<Jenkins-job>').builds.findAll{ it.result == hudson.model.Result.SUCCESS }.collect{ "$it.number" }

  5. 在没有powershell和BASH的情况下,效果非常好

  6. 无需处理Jenkins API并过滤JSON输出

答案 3 :(得分:0)

一种选择是使用Promoted Builds plugin标记要部署的特定构建。这将选择从部署构建转移到编译构建中。在编译构建中选择促销构建时... 选项,并设置您希望促销如何工作。开发人员可以选择(或自动化)构建来进行推广。在部署构建中,Copy Artifact plugin可以获取适当的构建(基于最新提升构建的永久链接)。