如何将构建工件传递到Jenkins中的另一个作业

sty*_*fle 21 deployment parameterized jenkins

建立

我在詹金斯有两份工作:

  • build master - 这会构建代码并创建工件
  • deploy master - 这会部署工件

目前,deploy master使用"最新成功构建"具有"从另一个项目复制工件"构建步骤.

建设主

我的目标

我想将此步骤从"最新成功构建"更改为"由构建参数指定",以便我可以在部署时选择特定构建,而无需deploy master每次都修改作业配置.

我试过的

首先,我改为"由构建参数指定".

建立专用

然后我选中了"此项目已参数化"旁边的框,并为其添加了一个字符串参数BUILD_SELECTOR.

参数

然后我选择了构建并输入47build master作业中的内部版本号输入.

另外我试过api电话

$.ajax({
  type: 'POST',
  url: 'https://jenkins/job/deploy%20master/build?token=abc7f5abc0c45abcea0646ed858abcde&BUILD_SELECTOR=47'
});
Run Code Online (Sandbox Code Playgroud)

结果

两次失败并输出以下内容:

Started by user styfle
[EnvInject] - Loading node environment variables.
Building in workspace C:\Jenkins\jobs\deploy master\workspace
ERROR: Unable to find a build for artifact copy from: build master
Started calculate disk usage of build
Finished Calculation of disk usage of build in 0 seconds
Started calculate disk usage of workspace
Finished Calculation of disk usage of workspace in 0 seconds
Finished: FAILURE
Run Code Online (Sandbox Code Playgroud)

如何正确配置,以便在部署时指定内部版本号(或其他标识符)?

用解决方案更新

我的解决方案归功于Gerold的答案是添加"构建选择器以复制工件"参数并使用新的环境变量链接到我已经添加的字符串参数.

在此输入图像描述

Ger*_*ica 6

Jenkins每个项目/工作只有一个工作区.构建目录仅包含有关构建及其结果的信息.

两者的根目录在Manage JenkinsConfigure System → 中指定Advanced....

要部署先前构建的工件,您必须将其复制到其他位置build master并在deploy master以后访问它.

更新:

请参阅哪个构建参数名称的内联帮助:

应在上面的构建参数部分添加具有此名称的参数.有一个特殊的参数类型用于选择构建选择器.

将此构建选择器用于复制工件而不是字符串参数.


Feb*_*bin 6

在下游项目中添加以下内容。“为复制工件构建选择器”而不是“字符串参数”

“为复制工件构建选择器”而不是“字符串参数”!!

从另一个项目复制工件

在此处输入图片说明

就是这样。单击“使用参数构建”并传递构建号 在此处输入图片说明