我安装了Promoted Build Plugin
from Jenkins
,现在在从现有工作中升级构建时遇到了一些麻烦。这是方案:
现有Nightly Build
一项工作每天晚上运行,运行所需的所有测试和指标;
现有Deploy Build
一个接受参数$ {BUILD_NUMBER}并部署具有对应$ {BUILD_NUMBER}Nightly Build
到目前为止,一切都很好。现在是我要添加Build Promotions
…的部分
有没有一种方法可以从中推广Nightly Build #39
( 注意它已经在以前构建了 )Deploy Build
?也许甚至从其他地方来,坦率地说,我在这里有点迷路了:(
我看不到它们之间具有清晰的上游/下游关系,因为它们没有: 始终运行此构建,然后在执行过程中再运行另一个-[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=
参数是必需的,但参数的名称取决于您在 部署作业中
设置的内容(我将在此处解释配置)。该值$PROMOTED_JOB_NAME
必须保持原样。这是升级过程可以识别的环境变量,并返回到您的 构建
作业的名称(配置了升级过程的名称)
该BuildSelection=
参数是必需的。这整个行必须保持原样。传递的值为$PROMOTED_NUMBER
,促销再次意识到了这一点。在您的示例中,它将为#39
。
该 块,直到触发项目完成他们建立 对勾将会使推广过程中等待,直到 部署 工作完成。如果没有,升级过程将触发部署作业并成功退出。等待 部署
作业完成的好处是,如果 部署 作业失败,促销明星也将被标记为失败。
(一个小注的位置:推广的星号会成功 ,而 在 部署 ,运行作业如果有部署失败,则只会在后更改失败 部署
。完成工作逻辑......但可以有点混乱,如果你在部署完成之前查看促销明星)
Server
***Job
***Job=
来自我们配置的 Predefined参数 )。此外,如果促销的 Predefined参数 没有传递任何值,则将使用首选值。如果 构建 作业和 部署 作业之间具有 一对一的 关系,则可以Job=
在推广的配置中省略该参数。BuildSelection
${Job}
Specified by a build parameter
BuildSelection
(不带${...}
!)因此,现在,通过上述 部署 作业,您可以手动运行它,并从要部署的 构建
作业中选择要构建的构建号(上次构建,上次成功,按构建号等)。您可能已经对它进行了非常相似的配置。在 推广 上的 构建
工作将基本执行相同的事情,并提供版本号的基础上,在执行了什么推广。
如果说明有任何问题,请告诉我。
问题内容: 我安装了,现在在从现有工作中升级构建时遇到了一些麻烦。这是方案: 现有Nightly Build一项工作每天晚上运行,运行所需的所有测试和指标; 现有Deploy Build一个接受参数并部署具有对应 说运行并成功构建了工件#39现在,我可以运行传入#39作为参数的中的工件将被部署 到目前为止,一切都很好。现在是我要添加Build Promotions…的部分 这正是我需要实现的 有没
问题内容: 我有两个工作,JobA和JobB,JobA每天的运行时间为13.00,并记录一些付款。我希望JobA触发JobB来验证付款,仅当JobA成功且JobB需要在第二天04.00运行时 任何想法如何做到这一点? BR 问题答案: 我还没找到能开箱即用的东西。当然,您可以安排要定期构建的作业,但这不是您想要的全部。 您可以尝试以下两种想法之一(我自己也没有实现)。 将JobB设置为在凌晨4点定
问题内容: 我确实有开发团队的要求来设置构建系统,因此每个构建对于所有分支都将具有唯一的构建编号。 詹金斯使用每个分支的作业进行构建。 有一个jenkins插件可以为工作设置下一个内部版本号,但这至少有两个原因是没有用的: 它会为单个作业设置内部版本号,您不知道如何为所有分支机构设置内部版本号,因为可以随时删除或添加它们 它没有为当前版本设置它 如何获取内部版本号:我们使用git / mercur
我在詹金斯增加了一份新工作,我想定期安排。 在配置作业中,我选中了“定期构建”复选框,并在计划文本字段中添加了以下表达式: 15 13*** 但它不会在预定时间运行。 安排工作是正确的程序吗? 作业应在凌晨4:20运行,但未运行。
安装了插件,这样当我们签入时,执行一个构建,如果成功,则验证中的修改。如果构建失败,那么就不是。我的理解是,这是通过在中设置的工作来实现的。我们现在已经创建了一个新分支(),我想我需要克隆指向另一个分支的现有作业,以便在每次提交时执行相同的工作流和构建。有人能解释一下我是如何克隆这些工作的吗?我似乎看不到一种通过UI来完成的方法,甚至看不到一种通过UI列出作业的方法。