我有超过 100 个 Jenkins 工作。但我有一个新要求,我必须在所有作业中包含额外的 Windows 批处理命令,而无需删除/干扰现有配置。
有没有办法将新的执行命令注入(inject)到 jenkins master 中的所有作业中。
有人可以解释一下吗
提前致谢!!
最佳答案
首先,请注意,这些脚本会修改正在运行的 Jenkins 实例中的底层结构,请在执行此操作之前进行备份!
您可以在“管理 Jenkins”下的“脚本控制台”中执行以下脚本(您需要管理员访问权限)
以下脚本插入批处理命令作为所有自由式作业的第一步:
import java.util.ArrayList;
import hudson.tasks.BatchFile;
for (job in Jenkins.getInstance().getAllItems(FreeStyleProject.class)) {
def buildersList = job.getBuildersList()
def oldBuilders = new ArrayList(buildersList); // Take a copy of existing steps so that we can insert them later
buildersList.clear() // We need to clear the list first, add at index is not supported
buildersList.add(new BatchFile("""\
echo "Windows batch command"
"""));
buildersList.addAll(oldBuilders)
job.save();
}
下面将其插入到末尾:
import java.util.ArrayList;
import hudson.tasks.BatchFile;
for (job in Jenkins.getInstance().getAllItems(FreeStyleProject.class)) {
def oldBuilders = job.getBuildersList().add(new BatchFile("""\
echo "Windows batch command"
"""));
job.save();
}
关于windows - 如何使用groovy脚本为现有jenkins作业添加执行批处理命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42415538/