当前位置: 首页 > 知识库问答 >
问题:

使Jenkins作业B(在Jenkins服务器X上运行)依赖于Jenkins A(在服务器Y上运行)

佴保臣
2023-03-14

我有两个作业运行在两个不同的Jenkins服务器机器。

工作A=

工作B=

作业B连续365天每15分钟运行一次。现在,当作业A运行时,作业B失败,因为作业A是代码部署。因此,理想情况下,我的作业B应该在作业A运行期间保持,而不是运行。

有人可以帮助任何插件,可以帮助实现这一点或任何脚本以及如何配置它。

简单地说,这两个作业不应该同时运行

共有1个答案

张嘉佑
2023-03-14

在您的情况下有两种选择:

>

  • 将你的基础设施从两个Jenkins主服务器切换到一个Jenkins主服务器,在服务器X和服务器Y上运行两个从服务器。然后你可以使用Build Blocker插件。

    使用Jenkins REST API在服务器X和服务器Y之间进行通信。

    例如,作为作业B的第一个构建步骤,您可以检查作业A是否处于运行状态:

    curl -X GET -i 'http://{y-host}:{y-port}/job/{job-A-name}/lastBuild/api/json'
    

    响应中有build属性,可以告知当前作业状态:

    {
        "building": false,
        "displayName": "#22",
        "duration": 127163,
        "estimatedDuration": 123022,
        // many more data...
    }
    

    如果作业A正在运行("build": true),那么您可以暂停或中止作业B。

    反之亦然,在服务器Y上开始部署之前,可以检查测试是否在服务器X上运行。

  •  类似资料:
    • 我有一个Cucumber测试套件,由Jenkins在一个服务器池上执行,该服务器池有时在服务器池中并发运行。 当服务器a上的测试运行更改了数据库存储的设置时,我遇到了竞争情况,这会导致服务器B上的测试运行失败,因为它正在寻找处于不同状态的设置 有没有办法将cucumber tests或Jenkins配置为在服务器B上运行场景,等待服务器a上运行的场景完成后再继续?

    • 但我总是遇到selenium服务器死掉的问题。谁能告诉我怎样才能最好地保持硒呢?对于维护selenium服务器,我应该知道哪些最佳实践? 在运行selenium测试时,我有时会遇到以下错误

    • 问题内容: 我在CI和CD上创建了Jenkinsfile,Dockerfile,Dockerfile.test到CI和CD,在GitHub上构建了我的服务器API,我在Jenkins上构建了该构建,并且构建成功,并且我的docker在Jenkinsfile阶段也在容器上运行,我创建了用于测试和部署在服务器API上,并使用docker作为容器 我也使用docker-compose在docker上运行

    • 本文向大家介绍在linux服务器上安装Jenkins,包括了在linux服务器上安装Jenkins的使用技巧和注意事项,需要的朋友参考一下 Jenkins是用java编写的开源持续集成工具,目前被国内外各公司广泛使用。本章教大家如何在linux服务器上安装Jenkins。 一、获得一台linux服务器 要在linux下安装git,首先你得先有一台linux服务器,作为小白,手头的机器肯定都是win

    • 我正在尝试将我的windows slave作为服务连接到jenkins 2.88。我通过webstart启动了这个奴隶,然后运行jenkins奴隶。exe install来安装服务。第二次运行作业时,从svn中检出内容,我得到以下错误: 该服务正在以“我的用户”身份运行,以使其具有所有必要的权限。简而言之,我的问题是jenkins是否正确支持从服务运行jenkins slave jar的方法。例如

    • 问题内容: 对于具有Java背景的开发人员,我也有兴趣探索使用ASP.NET工具/平台进行软件开发。 Java Web应用程序(.jsp和servlet)可以在许多服务器平台上运行。 问题 :.NET Web应用程序能否在基于Linux的服务器上运行?考虑到无法使用Windows服务器托管Web应用程序的情况。 问题答案: 这取决于您使用的是哪种特定的.NET技术。该Mono项目提供运行ASP.N