我是詹金斯的新手,我正在尝试设置一个将使用很少构建执行器的项目。
流程如下:
- 两个构建执行器
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(使用前将#替换为@)