我有两个作业在两个不同的Jenkins服务器计算机上运行。
职位A =>服务器Y(开发服务器)
职位B =>服务器X(测试服务器)
作业B,每15分钟连续运行365天。现在,当作业A运行时,作业B将失败,因为作业A是代码部署。因此,理想情况下,我的作业B应该保持并且在作业A运行期间不运行。
有人可以帮助实现此功能的任何插件或任何脚本,以及如何配置它。
简而言之,这两个作业不应同时运行
答案 0 :(得分:0)
您的情况有两种选择:
使用Jenkins REST API在服务器X和服务器Y之间进行通信。
例如,作为作业B的第一步,您可以检查作业A是否处于运行状态:
curl -X GET -i 'http://{y-host}:{y-port}/job/{job-A-name}/lastBuild/api/json'
响应中有building
属性,它可以显示当前的工作状态:
{
"building": false,
"displayName": "#22",
"duration": 127163,
"estimatedDuration": 123022,
// many more data...
}
如果作业A正在运行("building": true
),则可以暂停或中止作业B。
反之亦然,您可以在开始在服务器Y上部署之前检查测试是否在服务器X上运行。