2015-05-07 52 views
13

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

感谢您的帮助!

回答

9

我一般回答这个问题。您需要使用Parameterized Trigger Plugin或使用Build Pipeline Plugin。交付管道插件的这个问题仍然由Jenkins团队解决。有关此问题的更新,请参阅此链接https://issues.jenkins-ci.org/browse/JENKINS-25685。您可以了解何时从该链接中解决问题。

如果可以将它用在您的用例中,那么您可以使用Build Pipeline插件。现在修复的Build Pipeline插件存在类似的问题。它在22天内得到修复(https://issues.jenkins-ci.org/browse/JENKINS-25427,https://github.com/jenkinsci/build-pipeline-plugin/pull/56)。您可以希望即将解决与交付管道插件相同的问题。

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

1

当您使用交付管道插件并且您有手动触发的参数化版本时,只要您将上游作业配置为将参数传递给下游作业,当单击“构建触发器按钮”时在管道视图页面中,参数会自动传递。

举例来说,假设你有一个设置是这样的:

Compile_Project ---> Deploy_Project 

让我们假设你是从Compile_Project通过一个名为versionNumber变量来Deploy_Project工作。我们还假设您使用的是您的SCM的Subversion,并且您的versionNumber看起来像1.0.${SVN_REVISION}${SVN_REVISION}由Jenkins自动提供,因此您的版本号看起来像1.0.1234,其中1234是Subversion提供的提交编号。

在您的交付管道视图上,假设它已配置为显示3个管道实例,并且在视图设置中启用了手动触发器。你的管道视图页可能是这个样子(耶ASCII艺术!):

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,然后选中“此构建已参数化”复选框。然后从“添加参数”下拉列表中添加一个字符串参数。在“名称”字段中,输入VERSION_NUMBER。此时,您可以在Deploy_Project的配置中使用${VERSION_NUMBER},以便指定要部署的项目的正确版本号。