2

在某个 Jenkins 配置中,我希望触发另一个配置作为构建后操作。我想将当前构建状态作为参数之一传递。

IE:表示状态(SUCCESS/FAIL/UNSTABLE)的字符串/int。

我有 2 个选项来创建构建后触发器:

使用加入插件 加入插件

在构建后操作中使用触发器参数化构建 参数化构建

我希望在运行结束时有某种可访问的环境变量......

有什么想法吗?

谢谢!

4

2 回答 2

4

这是一个简单的解决方案,可以回答大多数情况:

使用' Trigger Parameterized Build '插件,并设置两个触发器 -

  1. '稳定或不稳定但不会失败'
  2. '失败'

这些触发器中的每一个都应该运行相同的作业——我们称之为“ JOB_B ”。

对于每个触发器,传递您喜欢的任何参数,并传递用户定义的值:

  • 对于触发器“ 1 ”使用:JOB_A_STATUS=SUCCESS
  • 对于触发器“ 2 ”使用:JOB_A_STATUS=FAIL

现在,您需要做的就是从JOB_B测试${JOB_A_STATUS}的值,看看它是设置为“SUCCESS”还是“FAIL”。

请注意,此解决方案不区分“稳定”和“不稳定”,而只知道“失败”和“成功”之间的区别。

祝你好运!

于 2012-06-28T21:12:06.440 回答
2

您可以通过Groovy Post-Build 插件在后期构建步骤中使用 Groovy 脚本检查状态,该插件可以通过Jenkins Java API访问 Jenkins 内部。该插件为脚本提供了变量管理器,可用于访问 API 的重要部分(请参阅插件文档中的使用部分)。

例如,您可以通过以下方式将构建结果输出到构建控制台:

def result = manager.build.result
manager.listener.logger.println "And the result is: ${result}"

现在,您可以改为使用该值创建一个属性文件并将该文件传递给 Parameterized Trigger post-build 步骤(它有这样一个选项)。

一个警告:我不确定是否可以安排构建后步骤以特定顺序执行,以确保 Groovy 构建后步骤在参数化触发器步骤之前运行。

于 2012-06-28T11:24:39.110 回答