0

我有两个 Jenkins 任务,一个构建和促进成功构建,另一个任务是部署那些提升的构建。我正在使用两个插件来完成此任务,即Copy Artifact Pluginpromoted builds

我必须构建代码的工作是一项非常标准的工作,我每分钟都会去 git 存储库检查是否有任何更改,如果有任何更改,我只需在Build步骤中调用 Gradle Script并选择Use Gradle Wrapper框一切都没有问题。这个构建任务的唯一自定义部分是我正在使用提升的构建插件,它工作得很好并且也有一个非常标准的配置。

构建配置

我对Build任务很满意,但Deploy任务有问题。在我的部署任务中,我想选择要部署的升级版本,但我无法部署选定的升级版本。

在我的Deploy 任务中,我勾选This project is parameterised框,并选择了Promoted Build Parameter

升级的构建参数配置

配置看起来不错,当我运行部署任务时,我可以选择要部署的构建。

选择要部署的构建

我遇到的问题是当我选择Copy artifacts from another project时。在哪个构建中,我选择了由构建参数指定,对于参数名称,我选择了与提升构建参数相同的名称

从另一个项目配置复制工件

但是当我运行这个Deploy任务时,我得到了这个错误:ERROR: Unable to find a build for artifact copy from: Aurora.

但是,如果我将哪个构建部分更改为从最新完成构建的 WORKSPACE 复制,一切正常。

工作配置

我在这个配置中做错了什么?

4

1 回答 1

0

我能够解决这个问题,我认为这不是最干净的方法,但最终它奏效了。在Build任务中,我保留了所有内容,只添加了一个Post-Build Action存档 artifacts

构建后操作

部署任务中,我需要更改更多内容。在我的 Deploy 任务中,我勾选This project is parameterised框并选择了Promoted Build Parameter,这一步的配置是一个非常标准的配置,我只选择了Build项目,其余的都是自动的。这一步使我能够选择要部署的升级版本,但这是大问题所在。此“步骤”返回的值类似于https://site.name.com/job/ProjectName/137/

此创建的问题在于Copy artifacts from another project。我需要一个内部版本号,但我只有那个URL,所以我找到的解决方案是从该 URL 获取内部版本号,将该编号作为局部变量注入,并在接下来的步骤中使用该局部变量。

构建步骤

使用此解决方案,我只能部署升级的构建。

于 2018-10-11T12:11:57.987 回答