我在詹金斯有两份工作:
build master
- 这会构建代码并创建工件deploy master
- 这会部署工件目前,deploy master
已经"从另一个项目复制工件"使用"最新成功构建"。
我想从"最新的成功构建中改变这一步" to"由构建参数指定"这样我就可以在部署时选择特定的构建,而不必每次都修改deploy master
作业的配置。
首先,我更改为"由构建参数"。
指定然后我选中&#34旁边的方框;此项目已参数化"并为BUILD_SELECTOR
添加了一个字符串参数。
然后我选择了构建并输入输入47
,这是build master
作业中的内部版本号。
另外我尝试了api调用
$.ajax({
type: 'POST',
url: 'https://jenkins/job/deploy%20master/build?token=abc7f5abc0c45abcea0646ed858abcde&BUILD_SELECTOR=47'
});
两次失败并输出以下内容:
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
如何正确配置,以便在部署时指定内部版本号(或其他标识符)?
我的解决方案归功于Gerold的答案是为复制工件添加一个"构建选择器"参数并使用新的环境变量链接到我已添加的字符串参数。
答案 0 :(得分:5)
Jenkins每个项目/工作只有一个工作区。构建目录仅包含有关构建及其结果的信息。
两者的根目录在 Manage Jenkins →配置系统→高级... 中指定。
要部署先前版本的工件,您必须将其复制到build master
中的其他位置,然后再从deploy master
访问该位置。
<强>更新强>
请参阅哪个版本的内置帮助→参数名称:
应在上面的构建参数部分添加具有此名称的参数。有一个特殊的参数类型可供选择构建选择器。
使用 构建选择器进行复制工件 而不是字符串参数。
答案 1 :(得分:2)