一尘不染

如何在詹金斯的另一份工作中提升特定的内部编号?

jenkins

我安装了Promoted Build Pluginfrom Jenkins,现在在从现有工作中升级构建时遇到了一些麻烦。这是方案:

  1. 现有Nightly Build一项工作每天晚上运行,运行所需的所有测试和指标;

  2. 现有Deploy Build一个接受参数$ {BUILD_NUMBER}并部署具有对应$ {BUILD_NUMBER}Nightly Build

    • 说[Nightly Build]运行并成功构建了工件#39
    • 现在,我可以运行传入#39作为参数的[Deploy Build]
    • [Nightly Build]#39中的工件将被部署

到目前为止,一切都很好。现在是我要添加Build Promotions…的部分

这正是我需要实现的

有没有一种方法可以从中推广Nightly Build #39注意它已经在以前构建了Deploy Build?也许甚至从其他地方来,坦率地说,我在这里有点迷路了:(

我看不到它们之间具有清晰的上游/下游关系,因为它们没有: 始终运行此构建,然后在执行过程中再运行另一个-[DeployBuild]有时仅执行,而并非总是在[Nightly]之后执行构建]


阅读 256

收藏
2020-07-25

共1个答案

一尘不染

自2.23版的参数化触发器插件的更新:

在版本2.23及更高版本中,行为已更改。调用(
构建* )作业的“ 预定义参数” 部分传递的任何参数都必须存在于被调用( 部署
)作业中。此外,受调用作业的参数有一些限制,因此,如果被调用作业的参数是 Choice ,则必须预先填充所有可能的值(来自提升)。或者只使用
Text 参数类型。 __ __
***

是的,我有完全相同的设置: 构建 作业(基于SVN提交)和手动执行的 部署 作业。当用户从 构建
作业中选择任何构建(包括较早的构建)时,他们可以转到 Promotion Status 链接并执行各种 部署 提升,例如
Deploy到DEVDeploy到QA 等等。

以下是在 构建 作业上设置升级的方法:

  • 您将需要以下插件: 参数化触发器插件 升级构建插件
  • 您还需要为此构建作业设置默认的“ Archive Artifacts 构建后”操作。
  • 复选标记 Promote构建时
  • 定义 名称 “部署到DEV”
  • 在“ 标准”下 选中标记, 仅当手动批准时
  • 在“ 操作”下, 使用 在其他项目上的触发器/调用构建
  • 在“ 要构建的项目”中, 在此处输入 部署 作业的名称
  • 选中“ 阻止”,直到触发的项目完成构建
  • 如果触发的版本更差或等于将此版本标记为失败 :FAILURE(根据部署作业的状态进行调整)
  • 预定义参数 (代码A)

代码A:

Server=IP_of_my_dev_server`  
Job=$PROMOTED_JOB_NAME`  
BuildSelection=<SpecificBuildSelector><buildNumber>$PROMOTED_NUMBER</buildNumber></SpecificBuildSelector>

在上方的“ 预定义参数” 部分中,=左侧的名称是在 部署
作业中定义的参数。=右边是执行促销时将分配给这些参数的值。定义三个参数ServerJobBuildSelection

该参数Server=是我自己的,因为我的部署作业可以 部署 到多个服务器。但是,如果将您的 部署 作业硬编码为始终部署到特定位置,则不需要。

Job=参数是必需的,但参数的名称取决于您在 部署作业中
设置的内容(我将在此处解释配置)。该值$PROMOTED_JOB_NAME必须保持原样。这是升级过程可以识别的环境变量,并返回到您的 构建
作业的名称(配置了升级过程的名称)

BuildSelection=参数是必需的。这整个行必须保持原样。传递的值为$PROMOTED_NUMBER,促销再次意识到了这一点。在您的示例中,它将为#39

块,直到触发项目完成他们建立 对勾将会使推广过程中等待,直到 部署 工作完成。如果没有,升级过程将触发部署作业并成功退出。等待 部署
作业完成的好处是,如果 部署 作业失败,促销明星也将被标记为失败。

(一个小注的位置:推广的星号会成功 ,而部署 ,运行作业如果有部署失败,则只会在后更改失败 部署
。完成工作逻辑......但可以有点混乱,如果你在部署完成之前查看促销明星)

这是设置 部署 作业的方法

  • 您将需要 复制工件插件
  • 此构建参数化下
  • 使用 名称* 配置类型为 Choice(或Text) 的参数(此名称必须与上一节中促销的“ 预定义参数” 中的配置匹配) Server ***
  • 选择:输入上一部分中促销的“ 预定义参数” 将使用的可能服务器IP的列表( 请参阅下面的更新说明
  • 使用 名称* 配置类型为 Choice(或Text) 的参数(此名称必须与上一节中促销的“ 预定义参数” 中的配置匹配) Job ***
  • 选择:输入您的 构建 作业的名称作为默认名称。 仅当您 手动触发 部署 作业时才需要。当升级触发 部署 任务时,升级将提供值Job=来自我们配置的 Predefined参数 )。此外,如果促销的 Predefined参数 没有传递任何值,则将使用首选值。如果 构建 作业和 部署 作业之间具有 一对一的 关系,则可以Job=在推广的配置中省略该参数。
  • 更新: 从Parameterized Trigger版本2.23开始, 部署 作业配置中的可用选项必须具有来自促销的预定义参数的所有可能值。如果您不希望使用此限制,请使用“文本”代替“选择”
  • 配置类型的参数 构建选择了复制神器的名字BuildSelection
  • 默认选择器 :最新成功构建
  • 构建 步骤下
  • 配置 来自另一个项目的复制工件
  • 项目名称中 输入${Job}
  • 哪个构建 选择Specified by a build parameter
  • 在“ 参数名称”中 输入BuildSelection(不带${...}!)
  • 为将要从 构建 作业复制到 部署 作业的工作空间的工件相应地配置其余部分
  • 根据需要在 部署 作业中使用复制的工件,以便进行部署

因此,现在,通过上述 部署 作业,您可以手动运行它,并从要部署的 构建
作业中选择要构建的构建号(上次构建,上次成功,按构建号等)。您可能已经对它进行了非常相似的配置。在 推广 上的 构建
工作将基本执行相同的事情,并提供版本号的基础上,在执行了什么推广。

如果说明有任何问题,请告诉我。

2020-07-25