詹金斯 - 让代理等待其他代理完成

2024-01-03

我是詹金斯的新手,我正在尝试设置一个将使用很少构建执行器的项目。 流程如下:

  • 两个构建执行器webservice标签返回其 IP 地址并等待第三个构建执行器完成其工作
  • 第三个构建执行器tester标签收集这些 IP 地址并执行一些长时间运行的作业(例如,向部署在这两个代理上的 Web 服务发送 HTTP 请求)

如何在詹金斯中实现这种行为?

我发现当构建执行器完成其工作时,它会立即被释放,并且我不知道如何让它等待其他构建执行器完成其工作。

Edit:

我忘了提到我想要构建执行器webservice要保留的标签(不可用于其他作业)直到构建执行器使用tester标签将完成其长期运行的工作。

此外,所有这些构建执行器都应该位于单独的从属设备上。这意味着每个从站只有一个构建执行器。


我终于成功地使用了Pipeline https://jenkins.io/doc/pipeline/和下面的脚本:

node('webservice') {
    def firstHostname = getHostname()
    node('webservice') {
        def secondHostname = getHostname()
        node('tester') {
            println 'Running tests against ' + firstHostname + ' and ' + secondHostname
            // ...
        }
    }
}

def getHostname() {
    sh 'hostname > output'
    readFile('output').trim()
}

它获取两个构建执行器webservice标签。我正在获取它们的主机名(我使用它们而不是 IP 地址)并将它们传递给构建执行器tester标签。最后tester运行一些长时间运行的测试。

那两个webservice构建执行器被阻止,直到tester完成其工作,在此期间没有其他项目可以使用它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

詹金斯 - 让代理等待其他代理完成 的相关文章

随机推荐