windows - 如何使用groovy脚本为现有jenkins作业添加执行批处理命令

标签 windows jenkins groovy

我有超过 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/

相关文章:

c++ - 仅使用指针算法遍历 PE 文件格式的已加载 DLL/EXE

c# - 使用 XSLT 将 XML 转换为 HTML 的工具

python - 时间跟踪软件如何找到应用程序的屏幕时间?

jenkins - 如何从其他流水线动态加载 Jenkins 流水线文件

git - 如何配置 Git post commit 钩子(Hook)

jenkins - 在 Jenkins 中对数组进行简单的并行执行

无法获取 libsodium 预构建库供 mingw windows 工作

linux - Jenkins : bash script ran with nohup is neither working nor writing anything to log

grails - 在 Grails 中,如何获取包含请求参数的请求 URI?

grails - Grails GORM:常规 map