jenkins promoting builds with Paramaterized build parameters
我有Job A和JobB。JobA具有自己的几个构建参数设置,而Job B具有它自己的其他构建参数。现在,我想通过使用升级后的构建插件通过向用户B提供所需参数的用户输入,来从Job A升级到Job B的少数选定构建。让我知道我们如何提示和获取Job A构建升级的值。 >
关于,
斯里尼瓦斯
对于带有版本的促销活动的一般用法,请阅读此答案如何从Jenkins的另一份工作中提升特定的版本号?它可能会给您一些想法,使您不必手动传递额外的参数。
如果您仍然需要为Job B提供参数,请使用以下选项:
-
在作业A上创建多个晋升,以触发相同的作业B,但具有不同的参数(通过Parameterized Trigger插件)。这本质上就是我在链接答案中所做的。我有1个deployment job(作业B),它针对各种环境采用各种参数。我通过在build job(作业A)上进行多次升级来触发它,例如" Deploy to DEV "," Deploy to QA ",依此类推。显然,仅当您有数量有限的参数要传递给作业B时,此方法才有效。
-
使用"手动批准"复选框。选中后,您可以进一步提供"批准参数"。单击"批准"按钮时,将提示批准用户提供这些信息。请注意,不能使用"强制升级/重新执行升级"按钮来更改"手动"批准参数。
- 感谢您的答复斯拉夫,这节省了很多时间。我尝试了适合我的第二种选择。我们是否可以选择禁用促销页面中的"强制提升"按钮以及部署作业中的手动构建选项。我们不想让构建使用默认参数值。
-
"强制升级"仅适用于具有"升级"凭据的用户。每个人都可以使用"批准"按钮,除非批准仅限于某些用户(如促销中所配置,而不是工作/全局安全性)。关于此的更详细的答案,这里stackoverflow.com/questions/23111888/…
-
谢谢斯拉夫,我将通过链接。另外,我还有另一个查询-如果在部署作业上启用了手动构建选项,并且如果为升级选择了构建作业的特定构建ID,它会更新构建作业的构建升级状态吗?
-
您是在问是否有人直接触发了部署作业,而不经过构建作业的升级过程?否。部署工作并不真的以这种方式知道升级过程。在部署作业中使用一些奇特的常规脚本是可能的。
-
您能解释一下什么是"升级凭证"。在我的设置中,未在批准者中列出的第三人也可以看到"强制升级"按钮。让我知道是否需要进行预设置配置。基本上,我们不希望任何人(包括批准者)使用此按钮。可以禁用它吗?同样对于其他查询,我想禁用部署作业上的手动构建,以便所有构建都应仅作为升级构建而通过构建作业进行。
-
在"全局安全性"和/或"作业安全性"下,您可以配置具有Promote权限的用户。该用户将看到Force Promotion按钮。您不需要此Promote权限即可使用Approve按钮。检查您的用户权限。至于禁用手动构建,这实际上是另一个问题,但是最简单的方法是实现一个密码参数,否则将无法运行该作业。有很多技巧。提出一个新问题。
-
嗨,斯拉夫(Slav),设置似乎现在可以正常工作。您能帮我找到无法通过开发版本传递的部署作业中使用参数的原因吗?我在开发工作的预定义参数部分中添加了新的参数,例如Br??anch,DevJOB,UploadVersion,并尝试在部署工作中访问它,但无法在Windows从属计算机中获取值。我们是否需要在部署作业中首先定义这些参数才能使用它。
-
您无需在"部署"作业上创建它们。传递的参数应该是可用的,就好像它们是Deploy作业的本地参数一样。确保您的名字相同。确保=周围没有空格。确保变量名有效(例如,没有.)。请记住,Windows使用%VAR%而不是$VAR
-
我想我用过同样的方法。我在构建作业的预定义参数部分中定义了以下设置。 Job = $ PROMOTED_JOB_NAME分支= $ LABEL_VERSION Devjob = mBaaS-JS-SDK-Dev PROMOTED_NUMBER = $ PROMOTED_NUMBER Uploadversion = 5.7.preview BuildSelectionQAUpload = <SpecificBuildSelector> <buildNumber> $ PROMOTED_NUMBER </ buildNumber> </ SpecificBuildSe ?? lector>
-
现在,在SCM运行之前,在buildstep的执行shell步骤中尝试在depoy作业中获取这些值。 echo" $ Job,$ Branch,$ Devjob,$ PROMOTED_NUMBER,$ Uploadversion" echo"%Job%,%Branch%,?vjob%,%PROMOTED_NUMBER%,%Uploadversion%" echo" $ {Job},$ {Branch} ,$ {Devjob},$ {PROMOTED_NUMBER},$ {Uploadversi ?? on}"我尝试了3种方式来获取值,仅获取了Promoted_Number值。
-
我会提出建议,也许它不可用,因为您试图在" SCM之前的步骤"中"太早"访问它们。只需尝试在常规构建步骤中访问它们即可。看看这是否有所不同(我知道这不是您想要的,但请尝试一下)。您也可以使用set命令来查看所有变量,而不是一个一个地查看。