我安装了Promoted Build Pluginfrom Jenkins,现在在从现有工作中升级构建时遇到了一些麻烦。这是方案:
Promoted Build Plugin
Jenkins
现有Nightly Build一项工作每天晚上运行,运行所需的所有测试和指标;
Nightly Build
现有Deploy Build一个接受参数$ {BUILD_NUMBER}并部署具有对应$ {BUILD_NUMBER}Nightly Build
Deploy Build
到目前为止,一切都很好。现在是我要添加Build Promotions…的部分
Build Promotions
有没有一种方法可以从中推广Nightly Build #39( 注意它已经在以前构建了 )Deploy Build?也许甚至从其他地方来,坦率地说,我在这里有点迷路了:(
Nightly Build #39
我看不到它们之间具有清晰的上游/下游关系,因为它们没有: 始终运行此构建,然后在执行过程中再运行另一个-[DeployBuild]有时仅执行,而并非总是在[Nightly]之后执行构建] 。
在版本2.23及更高版本中,行为已更改。调用( 构建* )作业的“ 预定义参数” 部分传递的任何参数都必须存在于被调用( 部署 )作业中。此外,受调用作业的参数有一些限制,因此,如果被调用作业的参数是 Choice ,则必须预先填充所有可能的值(来自提升)。或者只使用 Text 参数类型。 __ __ ***
是的,我有完全相同的设置: 构建 作业(基于SVN提交)和手动执行的 部署 作业。当用户从 构建 作业中选择任何构建(包括较早的构建)时,他们可以转到 Promotion Status 链接并执行各种 部署 提升,例如 Deploy到DEV , Deploy到QA 等等。
代码A:
Server=IP_of_my_dev_server` Job=$PROMOTED_JOB_NAME` BuildSelection=<SpecificBuildSelector><buildNumber>$PROMOTED_NUMBER</buildNumber></SpecificBuildSelector>
在上方的“ 预定义参数” 部分中,=左侧的名称是在 部署 作业中定义的参数。=右边是执行促销时将分配给这些参数的值。定义三个参数Server,Job和BuildSelection。
Server
Job
BuildSelection
该参数Server=是我自己的,因为我的部署作业可以 部署 到多个服务器。但是,如果将您的 部署 作业硬编码为始终部署到特定位置,则不需要。
Server=
该Job=参数是必需的,但参数的名称取决于您在 部署作业中 设置的内容(我将在此处解释配置)。该值$PROMOTED_JOB_NAME必须保持原样。这是升级过程可以识别的环境变量,并返回到您的 构建 作业的名称(配置了升级过程的名称)
Job=
$PROMOTED_JOB_NAME
该BuildSelection=参数是必需的。这整个行必须保持原样。传递的值为$PROMOTED_NUMBER,促销再次意识到了这一点。在您的示例中,它将为#39。
BuildSelection=
$PROMOTED_NUMBER
#39
该 块,直到触发项目完成他们建立 对勾将会使推广过程中等待,直到 部署 工作完成。如果没有,升级过程将触发部署作业并成功退出。等待 部署 作业完成的好处是,如果 部署 作业失败,促销明星也将被标记为失败。
(一个小注的位置:推广的星号会成功 ,而 在 部署 ,运行作业如果有部署失败,则只会在后更改失败 部署 。完成工作逻辑......但可以有点混乱,如果你在部署完成之前查看促销明星)
${Job}
Specified by a build parameter
${...}
因此,现在,通过上述 部署 作业,您可以手动运行它,并从要部署的 构建 作业中选择要构建的构建号(上次构建,上次成功,按构建号等)。您可能已经对它进行了非常相似的配置。在 推广 上的 构建 工作将基本执行相同的事情,并提供版本号的基础上,在执行了什么推广。
如果说明有任何问题,请告诉我。