Jenkins Delivery Pipeline 插件和参数化构建

Jenkins Delivery Pipeline plugin and parameterized builds

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

感谢您的帮助!

我是笼统地回答这个问题。

您需要使用Parameterized Trigger Plugin, or use the Build Pipeline Plugin. This issue with Delivery Pipeline plugin is still being solved by the Jenkins Team. See this link for the update about the issue at https://issues.jenkins-ci.org/browse/JENKINS-25685。您可以从 link.

中了解它何时得到解决

如果 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的版本、环境和插件版本?我可以根据您提供的答案更新我的答案。

当您使用 Delivery Pipeline 插件时,并且您有手动触发的参数化构建,只要您将上游作业配置为将参数传递给下游作业,当 "build trigger button" 被点击时流水线视图页面,参数自动传递。

例如,假设您有这样的设置:

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 个管道实例,并且在视图设置中启用了手动触发器。您的管道视图页面可能看起来像这样(是的 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 作业的配置中,作为 Post-构建操作,选择 "Build other projects (manual step)"。在 "Downstream project names" 框中,输入 Deploy_Project,然后从 "Add Parameters" 下拉列表中输入 select "Predefined Parameters"。在出现的 "Parameters" 文本区域中,创建一个要传递的参数,我将其称为 VERSION_NUMBER。您将在文本区域中输入的内容是 VERSION_NUMBER=1.0.${SVN_REVISION}。这将使参数能够从 Compile_Project 传递到 Deploy_Project。但是,您还没有完全完成。

Deploy_Project 作业的配置中,您需要将其设置为接受传递给作业的参数。为此,配置 Deploy_Project,并选中 "This build is parameterized" 复选框。然后从 "Add parameter" 下拉列表中添加一个字符串参数。在 "Name" 字段中,输入 VERSION_NUMBER。此时,您可以在 Deploy_Project 的任何需要的配置中使用 ${VERSION_NUMBER} 以指定要部署的项目的正确版本号。