从 Parameterized Trigger Plugin 2.23 版开始更新:
随着版本 2.23+ 的行为发生变化(感谢AbhijeetKamble指出)。调用(构建)作业的预定义参数部分传递的任何参数都必须存在于被调用(部署)作业中。此外,调用作业参数的限制适用,因此如果调用作业的参数是一个选项,它必须预先填充所有可能的值(来自促销)。或者只使用Text参数类型。
解决方案
是的,我有完全相同的设置:构建作业(基于 SVN 提交)和手动执行的部署作业。当用户从构建作业中选择任何构建(包括旧构建)时,他们可以转到Promotion Status链接并执行各种部署促销,例如Deploy to DEV、Deploy to QA等
以下是如何在构建作业上设置促销:
- 您将需要这些插件:Parameterized Trigger Plugin、Promoted Builds Plugin
- 您还需要在此构建作业上设置默认存档 Artifacts构建后操作。
- 复选标记促进构建时
- 定义名称“部署到 DEV”
- 在标准复选标记下仅在手动批准时
- 在Actions下,在其他项目上使用Trigger/call 构建
- 在要构建的项目中,在此处输入部署作业的名称
- 选中标记阻止,直到触发的项目完成其构建
- 如果触发的构建更差或等于:FAILURE(根据部署作业的状态进行调整),则将此构建标记为失败
- 预定义参数 (代码 A)
代码 A:
Server=IP_of_my_dev_server`
Job=$PROMOTED_JOB_NAME`
BuildSelection=<SpecificBuildSelector><buildNumber>$PROMOTED_NUMBER</buildNumber></SpecificBuildSelector>
在上面的预定义参数部分中,= 左侧的名称是在部署作业中定义的参数。= 右侧是执行此促销时将分配给这些参数的值。定义三个参数Server
和。Job
BuildSelection
该参数Server=
是我自己的,因为我的部署作业可以部署到多个服务器。但是,如果您的部署作业被硬编码为始终部署到特定位置,则您不需要这样做。
该Job=
参数是必需的,但参数的名称取决于您在部署作业中设置的内容(我将在那里解释配置)。该值$PROMOTED_JOB_NAME
必须保持原样。这是升级过程知道的一个环境变量,它引用您的构建作业的名称(配置升级过程的那个)
该BuildSelection=
参数是必需的。整条线必须保持原样。传递的值是$PROMOTED_NUMBER
,促销再次意识到这一点。在您的示例中,它将是#39
.
在触发项目完成其构建之前阻塞复选标记将使升级过程等到部署作业完成。如果没有,升级过程将触发部署作业并成功退出。等待部署作业完成的好处是,如果部署作业失败,促销星也会被标记为失败。
(这里有一点注意:在部署作业运行时促销星会显示成功。如果部署失败,它只会在部署作业完成后变为失败。逻辑......但如果你可能会有点混乱部署完成前看推广星)
这是设置部署作业的方法
- 您将需要Copy Artifacts 插件
- 在此构建下已参数化
- 使用名称配置选择(或文本)类型的参数(此名称必须与上一节中促销的预定义参数中的配置匹配)
Server
- 选择:输入上一节中促销的预定义参数将使用的可能服务器 IP 列表(请参阅下面的更新说明)
- 使用名称配置选择(或文本)类型的参数(此名称必须与上一节中促销的预定义参数中的配置匹配)
Job
- 选择:输入您的构建作业的默认名称。
仅当您手动触发部署作业时才需要这样做。当部署作业从升级触发时,升级将提供值(Job=
来自我们配置的预定义参数)。此外,如果促销的预定义参数没有传递任何值,则将使用首选值。如果构建作业和部署作业之间存在一对一的关系,则可以省略Job=
升级配置中的参数。
- 更新: 自 Parameterized Trigger 版本 2.23 起,部署作业配置中的可用选项必须具有来自促销预定义参数的所有可能值。如果您不想要该限制,请使用“文本”而不是“选择”
- 为具有名称的复制工件配置构建选择器类型的参数:
BuildSelection
- 默认选择器:最新成功构建
- 在构建步骤下
- 配置从另一个项目复制工件
- 在项目名称中输入
${Job}
- 在哪个构建选择
Specified by a build parameter
- 在参数名称中输入
BuildSelection
(不带${...}
!)
- 为将从构建作业复制到部署作业工作区的工件相应地配置其余部分
- 根据需要在部署作业中使用复制的工件以进行部署
因此,现在,通过上述部署作业,您可以手动运行它并从构建作业中选择要部署的构建号(上次构建、上次成功、按构建号等)。您可能已经对其进行了非常相似的配置。构建作业上的提升将基本上执行相同的操作,并根据执行的提升提供构建号。
如果您对说明有任何问题,请告诉我。