jenkins - Jenkins:当上游被中止时如何停止下游项目
问题描述
我在 Jenkins 中有一个上游项目,它使用“触发器/调用在其他项目上构建”插件依次调用一些下游项目。
当我执行上游项目的中止时,如何自动中止任何下游项目的构建?
如果上游被中止,下游仍在运行,我想要不同的行为。
谢谢。
解决方案
正如我的评论中提到的,您可以让下游作业监听上游作业,而不是让上游作业触发下游作业。当涉及到参数时,可以使用以下 groovy 代码示例来检索它们:
def up_stream_cause = currentBuild.rawBuild.getCause(hudson.model.Cause$UpstreamCause)
if (up_stream_cause != null ) {
def up_stream_run = up_stream_cause.upstreamRun
def parameters_action = up_stream_run.getAction(ParametersAction)
def parameters = parameters_action.getParameters()
}
或者,您当然可以使用以下 groovy 代码在上游构建期间简单地构建下游构建:
build job: 'job_name',
parameters: [
[
$class: 'StringParameterValue', name: 'parameter',
value: 'value'
]
]
这两种解决方案都允许您在上游构建失败、中止或不稳定时不触发下游构建。
推荐阅读
- python - Python:从 API 获取解析 JSON 数据 - 指的是字典键?
- javascript - 无法调整大小使用过渡的容器
- java - 如何提取 PKCS12 密钥库(包含 pkcs#8 密钥对和证书)
- arrays - 打字稿过滤器 - 如何在数组中分离匹配项
- javascript - html到pdf的转换和下载
- omnet++ - 如何改变车辆颜色
- php - Laravel中的多个多对多多态关系问题
- php - 将我的个人电子邮件地址放在下面的 PHP 代码中的位置
- java - 未来
object 接受 String 的返回类型。如何? - angularjs - Angularjs $stateProvider 问题