我有两个Jenkins任务,一个任务是构建并推广成功的构建,另一个任务是部署那些升级后的构建。我正在使用两个插件来完成此任务,复制工件插件和升级版。
我必须构建代码的工作是非常标准的工作,我每分钟都要去git存储库检查是否有任何更改,如果有任何更改,我只是 Invoque Gradle脚本在 Build 步骤上,然后选择 Use Gradle Wrapper 框,一切都会顺利进行。此构建任务的唯一自定义部分是我使用的是 promoted builds 插件,该插件效果很好,并且具有非常标准的配置。
我对我的构建任务很满意,但是我的部署任务有问题。在我的 deploy 任务中,我想选择要部署的升级版本,但无法部署选定的升级版本。
在我的 Deploy任务中,勾选该项目已参数化框,然后选择 Promoted Build Parameter 。
Promoted Build Parameter Configuration
配置看起来不错,当我运行 Deploy 任务时,可以选择要部署的版本。
我遇到的问题是,当我选择从另一个项目复制工件时。在哪个版本中,选择由构建参数指定,并为 Parameter Name 选择与 Promoted Build相同的名称参数
Copy artifacts from another project Configuration
但是当我运行此 Deploy 任务时,出现此错误:ERROR: Unable to find a build for artifact copy from: Aurora
。
但是,如果我将哪个版本部分更改为从最新完成的版本的WORKSPACE复制,一切正常。
在此配置下我怎么了?
答案 0 :(得分:0)
我能够解决此问题,但我认为这不是最干净的方法,但最终还是有效。在 Build 任务中,我保留了所有内容,仅添加了 Post-Build Action 来存档工件。
在部署任务中,我需要更改更多内容。在我的Deploy任务中,勾选此项目已参数化框,然后选择 Promoted Build Parameter ,此步骤的配置是非常标准的配置,我只选择了< em> Build 项目,其余的都是自动的。这一步使我可以选择要部署的升级版本,但这是最大的问题所在。此“步骤”返回的值类似于 https://site.name.com/job/ProjectName/137/ 。
此创建的问题在于从另一个项目复制工件。我需要一个内部版本号,但是我只有那个 URL ,所以我找到的解决方案是从该URL获取内部版本号,将其作为一个局部变量注入,并在下一步。
使用此解决方案,我只能部署升级后的版本。