我们最近为我们的Jenkins构建环境添加了第二个从属节点,为特定构建运行不同的操作系统(Linux而不是Windows)。不出所料,这意味着我们需要通过“限制此项目可以运行的位置”设置来限制构建。但是我们有很多版本(100+),因此点击它们以手动更改此设置的前景并不令我感到兴奋。
有人可以通过Jenkins脚本控制台提供一个groovy脚本来实现这一目的吗?我过去曾使用类似的脚本来更改其他设置,但我找不到任何有关此特定设置的参考。
答案 0 :(得分:8)
根据以前的脚本和Jenkins源来管理我自己的脚本。脚本如下:
import hudson.model.*
import hudson.model.labels.*
import hudson.maven.*
import hudson.tasks.*
import hudson.plugins.git.*
hudsonInstance = hudson.model.Hudson.instance
allItems = hudsonInstance.allItems
buildableItems = allItems.findAll{ job -> job instanceof BuildableItemWithBuildWrappers }
buildableItems.each { item ->
boolean shouldSave = false
item.allJobs.each { job ->
job.assignedLabel = new LabelAtom('windows-x86')
}
}
替换' windows-x86'无论你的节点标签需要什么。您还可以根据item.name进行条件更改,以根据需要过滤掉一些作业。
答案 1 :(得分:4)
这将允许您创建一个工作来改变您的其他工作。这可以通过在基于groovy的DSL中提供构建步骤来修改其他作业。
这里的这个会为作业添加一个标签' xxxx'。我通过将作业本身作为模板来欺骗了一下。
job{
using 'xxxx'
name 'xxxx'
label 'Linux'
}
如果你们中的某些工作是不同的类型,你可能需要调整它