我有100多个Jenkin工作。但我有一个新的要求,我必须在所有作业中包含额外的Windows批处理命令,而不会删除/干扰现有配置。
有没有办法将新的执行命令注入jenkins master中的所有作业。
有人可以说明这个吗
先谢谢!!
答案 0 :(得分:2)
首先,请注意,这些脚本修改了正在运行的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();
}