我安装了Promoted Build PluginfromJenkins
,现在在从现有工作中升级构建时遇到了一些麻烦。这是方案:
现有Nightly Build一项工作每天晚上运行,运行所需的所有测试和指标;
现有Deploy Build一个接受参数$ {BUILD_NUMBER}
并部署具有对应$ {BUILD_NUMBER}Nightly Build
说[Nightly Build]
运行并成功构建了工件#39现在,我可以运行传入#39作为参数的[Deploy Build][Nightly Build]#39
中的工件将被部署
到目前为止,一切都很好。现在是我要添加Build Promotions…的部分
这正是我需要实现的
有没有一种方法可以从中推广Nightly Build #39
(注意它已经在以前构建了)Deploy Build
?也许甚至从其他地方来,坦率地说,我在这里有点迷路了:(
我看不到它们之间具有清晰的上游/下游关系,因为它们没有一个:始终运行此构建,然后在执行过程中再运行另一个-[Deploy Build]
有时仅执行,而不总是在[Nightly]
之后执行构建]。
自2.23版的参数化触发器插件的更新:
在版本2.23及更高版本中,行为已更改(感谢AbhijeetKamble指出)。调用(构建)作业的“ 预定义参数”部分传递的任何参数都必须存在于被调用(部署)作业中。此外,受调用作业参数的限制适用,因此,如果被调用作业参数是一个选择,则必须预先填充所有可能的值(来自促销)。或者只使用Text参数类型。
解
是的,我有完全相同的设置:构建作业(基于SVN提交)和手动执行的部署作业。当用户从构建作业中选择任何构建(包括较早的构建)时,他们可以转到Promotion Status链接并执行各种部署提升,例如Deploy到DEV,Deploy到QA等等。
以下是在构建作业上设置升级的方法:
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。
该块,直到触发项目完成他们建立对勾将会使推广过程中等待,直到部署工作完成。如果没有,升级过程将触发部署作业并成功退出。等待部署作业完成的好处是,如果部署作业失败,促销明星也将被标记为失败。
(一个小注的位置:推广的星号会成功,而在部署,运行作业如果有部署失败,则只会在后更改失败部署。完成工作逻辑......但可以有点混乱,如果你在部署完成之前查看促销明星)
这是设置部署作业的方法
您将需要复制工件插件
在此构建参数化下
使用名称配置类型为Choice(或Text)的参数(此名称必须与上一节中促销的“ 预定义参数”中的配置匹配) Server
选择:输入上一部分中促销的“ 预定义参数”将使用的可能服务器IP的列表(请参阅下面的更新说明)
使用名称配置类型为Choice(或Text)的参数(此名称必须与上一节中促销的“ 预定义参数”中的配置匹配) Job
选择:输入您的构建作业的名称作为默认名称。仅当您手动触发部署作业时才需要。当升级触发部署任务时,升级将提供值(Job=来自我们配置的Predefined
参数)。此外,如果促销的Predefined
参数没有传递任何值,则将使用首选值。如果构建作业和部署作业之间具有一对一的关系,则可以Job=在推广的配置中省略该参数。
更新: 自2.23版的ParameterizedTrigger
以来,部署作业配置中的可用选项必须具有来自促销的预定义参数的所有可能值。如果您不希望使用此限制,请使用“文本”代替“选择”
配置类型的参数构建选择了复制神器带的名字:BuildSelection
默认选择器:最新成功构建
在构建步骤下
配置来自另一个项目的复制工件
在项目名称中输入${Job}
在哪个构建选择Specified by a build parameter
在“ 参数名称”中输入BuildSelection
(不带${...}!
)
为将要从构建作业复制到部署作业的工作空间的工件相应地配置其余部分
根据需要在部署作业中使用复制的工件,以便进行部署
因此,现在,通过上述部署作业,您可以手动运行它,并从要部署的构建作业中选择要构建的构建号(上次构建,最后成功,按构建号等)。您可能已经对它进行了非常相似的配置。在推广上的构建工作将基本执行相同的事情,并提供版本号的基础上,在执行了什么推广。
如果说明有任何问题,请告诉我。
问题内容: 我安装了from ,现在在从现有工作中升级构建时遇到了一些麻烦。这是方案: 现有一项工作每天晚上运行,运行所需的所有测试和指标; 现有一个接受参数$ {BUILD_NUMBER}并部署具有对应$ {BUILD_NUMBER} 说[Nightly Build]运行并成功构建了工件#39 现在,我可以运行传入#39作为参数的[Deploy Build] [Nightly Build]#39
问题内容: 该功能在内部如何工作?考虑到内核确实具有访问用户内存空间的特权,它是否使用任何缓冲区还是完成了任何内存映射? 问题答案: 的实现高度依赖于体系结构。 在x86和x86-64上,它只是直接从用户空间地址进行读取并写入内核空间地址,同时如果已配置,则暂时禁用SMAP(超级用户模式访问阻止)。它的棘手部分是将代码放置在特殊区域中,以便页面错误处理程序可以识别其中何时发生错误。发生的内存保护错
下面是一个动态数组。现在我想为“BHD0000000002”编辑一个特定的数组。我通过ajax请求获得以下数组。但是,我无法编辑内部数组元素。例如,我试图编辑键“BHD0000000002”的内部数组值,但无法解决问题。有人能帮忙吗,先生/女士? 这是原始数组: : 到目前为止,我已经尝试了以下代码,但它不起作用。有人能帮忙吗?
我的Jenkins build挂起在build和post build步骤之间。 控制台输出显示有6分钟的等待时间(但我见过长达一小时的等待时间): 我发现这个和这个问题有类似的问题,他们说解决方案是在。 然而,我需要一种方法,只为特定的工作设置选项,而不干扰全局Jenkins设置(我不想干扰其他项目)。 编辑: 当我在[CucumberReport]步骤之前手动中止作业时,Cucumber报告仍会
问题内容: 我有一个在Jenkins中运行的多模块Maven项目。我想将最终的工件(程序集构建中的RPM)部署到Nexus服务器。我认为没有理由部署中间工件(因此没有“ mvn clean deploy”),因为这会在服务器上产生我不需要的额外垃圾。我们正在尝试建立一个持续交付管道,因此我们从未部署过SNAPSHOT版本。Jenkins的各种插件似乎都专注于部署所有工件。我该如何部署自己选择的那个
问题内容: 詹金斯(哈德森)是否有办法从另一个工作中禁用一个工作? 基本上,我们有一个进行标准构建/测试的构建环境。我们还使用相同的Jenkins实例来执行其他一些操作,例如自动安装产品的新版本(某些自动化测试需要此功能)。当我们运行某些“额外”作业时,我们希望暂时禁用“标准”作业(然后在以后自动启用它们)。 理想情况下,在作业上会有一些额外的构建步骤,例如“禁用XYZ作业”。或者,如果有通过AN