7

我有两个 Jenkins 版本,一个用于编译,一个用于部署。

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

我所追求的是一种为部署构建填充选择参数的方法,其中包含来自编译构建的成功\不稳定构建列表。

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

4

4 回答 4

11

使用动态参数插件

在您的推广工作中:

  • [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 }

维基页面截图:

截屏

于 2013-12-13T22:17:39.947 回答
4

因为动态参数插件不再可用。您可以在 Jenkins 中使用Active Choice 参数插件。现在您可以在 Jenkins Job/pipeline 中列出所有成功的 Jenkins 构建作为参数化选项

按照以下步骤访问成功作业列表 [作为下拉列表]

  1. 在作业配置[General section]中选择这个项目是参数化的

  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 输出

于 2020-08-17T11:39:28.643 回答
1

据我所知,不可能填充选择参数。但是,您不需要总是使用最新版本。我假设您使用复制工件插件。此插件提供“复制工件的构建选择器”参数。您仍然需要手动输入内部版本号,但是在部署时您可以选择所有标准选项,例如“最新成功构建”,还有“特定构建”。您需要输入编号并且没有下拉菜单,但我让我的部署人员训练有素,可以输入内部版本号。

于 2013-10-02T12:35:59.063 回答
1

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

于 2013-10-02T16:57:41.367 回答