如何将我的Jenkins作业限制为仅在Linux从属服务器上运行?
我勾选了限制此项目可以运行的位置框,但似乎我只能将奴隶名称放在那里。
我想说使用在linux平台上运行的任何奴隶
类似于teamcity.agent.jvm.os.name等于TeamCity中的Linux选项。
编辑:到目前为止,您似乎必须手动编辑每个奴隶的标签(或编写脚本)。不幸的是,我无权更改这些内容,所以如果有人提出替代方案或插件或其他内容,我会保持这个问题。
答案 0 :(得分:4)
如果Linux从站的数量很大,那么手动配置所有从站是一项繁忙的任务。您可以使用groovy轻松自动化它。创建一个作业测试工作,它将使用' Linux'更新linux奴隶的所有标签。标签。选择构建步骤为groovy 并粘贴以下脚本:
// First Get Node Instance<br>
// Then for each node instance check if its 'Remote FS root' starts
// with forward slash. Which means its a linux slave. If it is then
// add label Linux to it.
def Nodes=jenkins.model.Jenkins.instance.getNodes();
Nodes.each { currentNode ->
if (currentNode.getRemoteFS().toLowerCase().startsWith("/")) {
if (! currentNode.getLabelString().contains("Linux")) {
currentNode.setLabelString(currentNode.getLabelString()+" Linux")
}
}
}
答案 1 :(得分:3)
你快到了。只需使用标签“linux”等标记您的linux从站,然后将该字符串输入限制此项目可以运行的位置字段。使用Manage Jenkins&gt;管理节点以将标签添加到适当的从属设备。