当前位置: 首页 > 面试题库 >

获得Jenkins上游职位

袁鸿达
2023-03-14
问题内容

我想获得所有上游作业,就像在控制台输出中一样:

Started by upstream project "allocate" build number 31
originally caused by: 
Started by upstream project "start" build number 12
originally caused by:

我已经尝试使用以下命令进行groovy postbuild:

def build = Thread.currentThread().executable
def causes= manager.build.getCauses()
for (cause in causes)
{
manager.listener.logger.println "upstream build: " + cause.getShortDescription()

}

但是我只能得到“分配”,而不是“开始”工作。

我也尝试过

def build = Thread.currentThread().executable
def test = build.getUpstreamBuilds()
for (up in test)
{
manager.listener.logger.println "test build project: " + up
}

但这是空的…

有任何想法吗?


问题答案:

您已接近第一个解决方案。

实际上,您需要做的就是Cause根据其类型对它的祖先进行迭代

这是一个示例代码片段,可以帮助您入门:

def printCausesRecursively(cause) {
     if (cause.class.toString().contains("UpstreamCause")) {
         println "This job was caused by " + cause.toString()
         for (upCause in cause.upstreamCauses) {
             printCausesRecursively(upCause)
         }
     } else {
         println "Root cause : " + cause.toString()
     }
}

for (cause in manager.build.causes)
{
    printCausesRecursively(cause)
}

您可能需要参考文档来处理所有Cause类型:http : //javadoc.jenkins-
ci.org/hudson/model/Cause.html

希望能帮助到你,

最好



 类似资料:
  • 执行称为“A”的上游作业。在下游项目“B”执行测试用例成功时。但是,在从B发送邮件时,我们必须在邮件中包含上游项目详细信息(上游项目名称,构建号)。因此,我们可以轻松地将测试运行映射到相应的上游作业。 在下游项目仪表板下方显示详细信息。 我签到 https://wiki.jenkins-ci.org/display/JENKINS/Building 一个软件项目。但在下游找不到任何可以继承的东西。

  • Jenkins场景详细信息: ====================== -Jenkins中构建执行器的数量(在主/从上):3 -UpStream作业:USJobs,此作业可以在任何构建执行器上运行 -DownStream作业:DSJobs USJob在构建步骤中有这个:回声“生日快乐詹姆斯”,完成这项工作需要5秒钟 DSJob在构建步骤中有这个:回显“詹姆斯邦德死了”,完成这项工作 需要5秒钟

  • 问题内容: 我在詹金斯(Jenkins)的多分支项目工作正常,但我想修改 职位 描述,默认情况下,该 职位 描述为“全项目名称:xxxx /”,以使其更有意义。 通过使用执行我时可用的变量,我可以轻松更改构建说明,但是我不知道如何修改父作业描述。 我的用例是我的存储库的每个分支都有一个关联的容器,该容器在完成后会用最新的构建进行更新。因此,我的多分支项目中的每个作业都有其容器和Web URI,我希

  • 问题内容: 我有3个版本:A-是控制流量的主版本B-注释者版本C- 将在BI要向A添加String参数后执行,因此用户将手动输入一些String,但我不确定如何我可以将此参数传递给B吗?可以说这是我的构建流程: build(“ B”)build(“ C”)我不知道如何将参数传递到B,我应该从构建流程还是从B构建配置中做到这一点,我该怎么做。 预先感谢亚历克斯 问题答案: 像这样: https://

  • 问题内容: 以下“执行系统Groovy脚本”构建任务将更新构建描述,以添加一个按钮,该按钮将提交另一个已参数化的Jenkins作业: 但是,单击“继续”按钮后,该请求将返回400 Bad Request。看起来是因为构建参数未正确传递(如果我从另一个作业中删除构建参数并且不传递参数,则一切正常)。 我不确定问题是否是由于引用错误或通过构建参数发送方式引起的。 问题答案: 您需要使用JSON。请参阅

  • 问题内容: 在职位描述中,您可以使用Html标签。我有类似的东西: 但似乎在某处被擦洗了。还有另一种方法吗?关于支持什么和不支持什么的任何文档? 问题答案: Jenkins允许您使用各种标记语言来编写职位描述;插件可以定义如何通过接口解析描述。 默认情况下,使用,它应用HTML 清除策略(来自OWASP AntiSamy Project )-Myspace 策略。 在Myspace策略中,您将看到