我正在使用Jenkins Delivery Pipeline插件。我有一些手动触发的参数化构建。如果我从项目页面触发构建,则构建会显示一个屏幕,其中需要定义参数(如预期的那样)。但是,当我从Delivery Pipeline插件启动参数化构建时,它只是在不提供屏幕的情况下启动构建。这是奇怪的行为,是否有可能让管道插件显示参数化构建屏幕?
感谢您的帮助!
答案 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-25427,https://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
,以便指定要部署的项目的正确版本号。