Jenkins:triggeredBy 'UpstreamCause' 在 When 条件下总是计算为 false

Jenkins: triggeredBy 'UpstreamCause' always evaluates to false in When condition

在 Jenkins 中我有一个上游项目 A 触发了一个下游项目 B.

项目 A:

pipeline {
  agent any
  stages {
    stage('Hello') {
      steps {
        echo "Some message"
        build(job: 'B', wait: false)
      }
    }
  }
}

项目 B

pipeline {
  agent none
  tools {
    maven "maven"
  }
 stages {
  stage('Triggered By Upstream') {
    when {
      triggeredBy "UpstreamCause"
    }
    steps {
      echo "Triggered by Upstream project"
    }
  }
 }
}

此处项目A成功触发项目B。但是项目 B 中的阶段将被跳过,因为 when 中的条件为 False。对我来说这似乎是一个错误。有谁知道这段代码有什么问题吗?

显然没有 UpstreamCause 的原因,而是 BuildUpstreamCause,其计算结果为 true 当从上游项目触发管道时。所以项目B中的when子句应该写成:

when {
  triggeredBy "BuildUpstreamCause"
}

为了让阶段在上游项目触发时 运行。