【发布时间】:2020-06-02 08:54:24
【问题描述】:
全部!! 假设我有几个从节点(Slave1、Slave2 和 Slave3)的 Jenkins。 每个从站都有一些与之关联的标签,即 Slave1 (test build python)、Slave2 (develop update clean)...
我正在寻找可以从 Jenkins 脚本控制台运行的 groovy 脚本,通过为每个从站上的每个标签添加/删除“-offline”后缀来一次修改给定从站上的标签,即 Slave1 将具有 (test-offline build-offline python-offline) & Slave2 (develop-offline update-offline clean-offline)。
我需要这个功能来防止下一个作业开始在这些从属节点上运行(假设我想将它们设置为脱机以进行维护,一旦这些节点上的所有作业完成)。一旦我完成了对这些 slave 的维护,我需要运行另一个 groovy 脚本来设置之前配置的所有标签,即 Slave1(测试构建 python)、Slave2(开发更新清理)。
到目前为止,我已经找到了关于类似问题的旧 topic。下面的代码可以返回所选从站的所有标签,但它添加“离线”作为附加标签,而不是作为每个现有标签的后缀:
hudson = hudson.model.Hudson.instance
hudson.slaves.findAll { it.nodeName.equals("slave1") }.each { slave ->
print "Slave $slave.nodeName : Labels: $slave.labelString"
slave.labelString = slave.labelString + " " + "offline"
println " --> New labels: $slave.labelString"
}
hudson.save()
所以我有几个问题:
- 如何使用节点列表(slave1、slave2、slave3...)而不是单节点slave1
- 如何在标签中添加/删除“-offline”后缀?它可以是两个不同的脚本,用于添加和删除标签后缀。
非常感谢任何帮助和建议。
应届毕业生, 伊戈尔。
【问题讨论】:
标签: jenkins groovy jenkins-slave