当前位置: 首页 > 知识库问答 >
问题:

如何在工作流中获取$CAUSE

荣声
2023-03-14

Jenkins有一个$CAUSE变量可用于freestyle构建作业。

我如何在工作流程中访问这个或类似的东西?

我的团队在现有临时构建的电子邮件输出中使用它。我们希望在基于工作流的新作业中继续这样做。

共有3个答案

东郭赞
2023-03-14

看起来Jenkins2.22(JENKINS-41272),您可以访问currentBuild.getBuildCauses()方法来获取构建原因数组。例如:

environment {
  CAUSE = "${currentBuild.getBuildCauses()[0].shortDescription}"
}

steps {
  echo "Build caused by ${env.CAUSE}"
}
阮俊弼
2023-03-14

截至2018年初,JENKINS-31576似乎已经关闭,该信息现已发布:

def manualTrigger = true
currentBuild.upstreamBuilds?.each { b ->
  echo "Upstream build: ${b.getFullDisplayName()}"
  manualTrigger = false
}
壤驷涛
2023-03-14

看起来工作流构建没有注入此变量。但是,您可以从<code>currentBuild检索所需信息。rawBuild对象使用hudson.model.Run。getCause()或hudson.model.Run。getCauss()方法。

例子:

工作流脚本:

println "CAUSE ${currentBuild.rawBuild.getCause(hudson.model.Cause$UserIdCause).properties}"

具有以下输出的结果:

Running: Print Message
CAUSE [userName:John Smith, userId:jsmith, class:class hudson.model.Cause$UserIdCause, shortDescription:Started by user John Smith]

其他原因子类型可以在javadoc中找到。

还有一个很好的get-build-cause示例,它基于jenkins Pipeline示例库中的答案。

 类似资料:
  • 问题内容: 我正在使用Jenkins 1.596,Workflow 1.3和Svn插件2.5。我正在尝试在工作流程脚本中获取svn修订版号。 我的工作流脚本部分为: 在这里,您会看到两次尝试:第一个尝试打印“ java.io.IOException:无法运行程序“ svn”:error = 2,没有这样的文件或目录”,第二个提示“没有找到名为Svn的工具”(我也尝试了“颠覆”)。尝试打印“空”。

  • 我想在其中一个步骤中引用正在运行的作业名称。以下是Github为我们提供的选项:https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#job-背景。我看到的最接近的是“job.container.id”。那会给我起这个工作的名字吗?听起来不像。不幸的是,我无法再测试

  • 在Cadence/Temoral工作流编程中: < li >不允许使用本机线程库。例如,在Java中,线程必须通过< code>Async.procedure或< code>Async.function创建,而在Golang中,线程必须通过< code>workflow创建。去吧。那为什么呢? < li >有没有类似使用本机线程的竞争条件?例如,为了线程安全,应该使用< code>Hashtabl

  • 我对java.sql.Statement的方法getGeneratedKeys()有问题 首先我的代码: 创造sql:(HSQLDB) 从DAO创建方法: 然后,我对生成的密钥进行了单元测试: 当我运行测试时,我得到一个失败和以下日志: 所以问题是

  • 问题内容: 我想使用Java访问我当前的工作目录。 我的代码: 输出: 我的输出不正确,因为C驱动器不是我的当前目录。 如何获得当前目录? 问题答案: 代码: 这将打印从中初始化您的应用程序的当前目录的绝对路径。 说明: 从文档中: 软件包使用当前用户目录解析相对路径名。当前目录表示为系统属性,也就是从其中调用JVM的目录。

  • 问题内容: 我对Node.js流有疑问-特别是它们在概念上如何工作。 不缺少有关如何使用流的文档。但是我很难找到流在数据级别如何工作。 我对Web通信HTTP的有限理解是,来回发送完整的数据“包”。类似于个人订购公司目录,客户端向服务器发送GET(目录)请求,然后服务器以目录进行响应。浏览器不会收到目录的页面,而是会收到整本书。 节点流可能是多部分消息吗? 我喜欢REST模型- 尤其是它是无状态的