Jenkins Delivery Pipeline插件和参数化构建

时间:2015-05-07 14:38:22

标签: jenkins jenkins-plugins

我正在使用Jenkins Delivery Pipeline插件。我有一些手动触发的参数化构建。如果我从项目页面触发构建,则构建会显示一个屏幕,其中需要定义参数(如预期的那样)。但是,当我从Delivery Pipeline插件启动参数化构建时,它只是在不提供屏幕的情况下启动构建。这是奇怪的行为,是否有可能让管道插件显示参数化构建屏幕?

感谢您的帮助!

2 个答案:

答案 0 :(得分:9)

我一般都在回答这个问题。

您需要使用Parameterized Trigger Plugin,或使用Build Pipeline Plugin。 Jenkins团队仍在解决Delivery Pipeline插件的这个问题。有关https://issues.jenkins-ci.org/browse/JENKINS-25685问题的更新,请参阅此链接。您可以通过该链接了解何时解析。

如果可以将Build Pipeline插件合并到您的用例中,则可以使用它。 Build Pipeline插件存在类似的问题,现在已修复。它在22天内得到修复(https://issues.jenkins-ci.org/browse/JENKINS-25427https://github.com/jenkinsci/build-pipeline-plugin/pull/56)。您可以希望很快就能解决与Delivery Pipeline插件相同的问题。

你能提供Jenkins的版本,环境和插件版本吗?我可以根据你给出的答案更新我的答案。

答案 1 :(得分:1)

当您使用Delivery Pipeline插件,并且您已手动触发参数化构建时,只要您将上游作业配置为将参数传递给下游作业,当"构建触发按钮&#34时;单击管道视图页面,参数将自动传递。

例如,让我们说你有这样的设置:

Compile_Project ---> Deploy_Project

假设您正在将名为versionNumber的变量从Compile_Project传递到Deploy_Project个作业。我们还假设您正在为您的SCM使用Subversion,而您的versionNumber看起来像1.0.${SVN_REVISION}${SVN_REVISION}由Jenkins自动提供,因此您的版本号看起来像1.0.1234,其中1234是Subversion提供的提交号。

在您的Delivery Pipeline视图中,我们假设它已配置为显示3个管道实例,并且在视图设置中启用了手动触发器。您的管道视图页面可能看起来像这样(yay ASCII art!):

Compile_Project ---> Deploy_Project (>)

Compile_Project ---> Deploy_Project (>)

Compile_Project ---> Deploy_Project (>)

在这种情况下,我使用(>)来表示手动触发按钮。底部的按钮将尝试部署版本1.0.1234,中间按钮将尝试部署版本1.0.1235,顶部按钮将尝试部署版本1.0.1236,假设您的项目已获得连续SVN提交。

要将参数从Compile_Project传递到Deploy_Project作业,您需要执行以下操作。 (注意:听起来你已经完成了这一部分,但是我包括它以防万一你可能错过了一个步骤,也是为了完整性。)

Compile_Project作业配置中,作为构建后操作,选择"构建其他项目(手动步骤)"。在"下游项目名称"框,输入Deploy_Project,然后从"添加参数"下拉,选择"预定义参数"。在"参数"出现的文本区域,创建一个要传递的参数,我将调用VERSION_NUMBER。然后,您在文本区域中输入的内容为VERSION_NUMBER=1.0.${SVN_REVISION}。这将使参数从Compile_Project传递到Deploy_Project。但是,你还没有完成。

Deploy_Project作业的配置中,您需要将其设置为接受您传入作业的参数。为此,请配置Deploy_Project,然后选中"此版本已参数化"复选框。然后从"添加参数"添加一个String参数。落下。在"名称"字段,输入VERSION_NUMBER。此时,您可以在${VERSION_NUMBER}的配置中使用Deploy_Project,以便指定要部署的项目的正确版本号。

相关问题