Jenkins - 如何在下游获取和使用上游信息

标签 jenkins jenkins-plugins

执行名为“A”的上游作业。成功执行下游项目“B”的测试用例。但是在从 B 发送邮件时,我们必须在邮件中包含上游项目详细信息(上游项目名称,构建号)。因此,我们可以轻松地将测试运行与相应的上游作业映射/关联。

在下游项目仪表板中显示以下详细信息。

Started by upstream project Dev_RM_3.0_CI_Test build number 10
originally caused by:

我签到了https://wiki.jenkins-ci.org/display/JENKINS/Building+a+software+project .但在下游找不到任何可以继承的东西。

创建了具有以下详细信息的示例作业以显示当前作业详细信息。
echo $BUILD_NUMBER
echo $JOB_NAME
echo $BUILD_ID

但输出是
Building on master in workspace /var/lib/jenkins/workspace/env
[env] $ /bin/sh -xe /tmp/hudson970280339057643719.sh
+ echo 1
1
+ echo env
env
+ echo 1
1
Finished: SUCCESS
  • 在下游工作中继承上游细节有什么帮助吗?
  • 如何获取当前工作详情?
  • 最佳答案

    例如,您提到您的问题“Started by upstream project "Chained/1-First”“内部版本号 34”的消息可在 jenkins Cause 中找到。

    Jenkins 将上游构建信息保存在其原因对象中。如果您正在使用构建 DSL 或 Pipelines,您可能会在 groovy 中获得它。或者,您可以 curl工作 url 和使用 jq得到原因

    例如 curl http://localhost:8080/job/Chained/job/2-Second/17/api/json

    "_class": "org.jenkinsci.plugins.workflow.job.WorkflowRun",
    "actions": [{
      "_class": "hudson.model.CauseAction",
      "causes": [{
        "_class": "hudson.model.Cause$UpstreamCause",
        "shortDescription": "Started by upstream project \"Chained/1-First\" build number 34",
        "upstreamBuild": 34,
        "upstreamProject": "Chained/1-First",
        "upstreamUrl": "job/Chained/job/1-First/"
      }]
    }
    

    或来自管道,例如:
    node() {
        stage('downstream') {
            def upstream = currentBuild.rawBuild.getCause(hudson.model.Cause$UpstreamCause)
            echo upstream?.shortDescription
        }
    }
    

    您可以从 Cause 获得大量信息,等待所有脚本批准或全局共享步骤。如果不同的原因触发此构建,例如提交或用户,您将获得空值。

    关于Jenkins - 如何在下游获取和使用上游信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39207924/

    相关文章:

    ubuntu - 为什么 Jenkins 不存储数据?

    ubuntu - 如何在ubuntu上使用其环境登录另一个用户

    Python:如何使用 lxml 解析带句点的 xml 标签?

    jenkins - 将参数从 cloudformation 作为变量传递到 jenkins 实例中

    git - Jenkins Git 分支选择与回退

    电子邮件扩展插件 - 无法让 BUILD_LOG_EXCEPT 工作

    Jenkins - 当下游项目中止时,中止上游项目

    ubuntu - Jenkins 无法在 ubuntu 上安装插件

    jenkins - 如何使用 Jenkins Pipeline 中的 Xvnc 插件

    Jenkins 的 Java API