检查是否存在另一个管道

Check if another pipeline exists

虽然我是 运行 Jenkins 管道,但我需要检查是否有其他具有指定名称的作业,例如 "Build712"。我该怎么办?

谢谢, 塞尔吉奥

一种可能是使用 copyArtifacts Plugin 将 small/empty 文件从另一个构建复制到您当前的工作区。

例如

copyArtifacts projectName: 'MyFolder/My%2FJob/master', target: 'artifacts'

提示:您需要将空格替换为 %2F

如果找不到作业,此命令将失败,因为 optional 标志默认为 false。 然后你可以

  • 使用带有 try-catch 的脚本块
  • 使用 copyArtifacts 的 optional 标志并使用

    检查文件是否存在

    if (!fileExists('result.txt')) {}

我知道,这是一种解决方法。

可能还有一些其他选项使用 Jenkins.getInstance().getItemByFullName()

要检查任何 jenkins 作业中是否存在某些构建名称,您可以编写 groovy 脚本:

 Jenkins.instance.getAllItems(AbstractItem.class).each {
   jobName=it.fullName.toString()
   if(Hudson.instance.getJob(jobName).getBuildByNumber(10).getProperties()) {
     println(jobName)
   }
 };

这将打印出所有 buildNumber 为 10 的作业名称。这只是一个示例,您可以从这里开始并调整它以完全匹配您要查找的内容。