【问题标题】:trigger other configuration and send current build status with Jenkins使用 Jenkins 触发其他配置并发送当前构建状态
【发布时间】:2012-06-28 08:18:54
【问题描述】:
在某个 Jenkins 配置中,我希望触发另一个配置作为 post 构建操作。
我想将当前构建状态作为参数之一传递。
IE:表示状态(SUCCESS/FAIL/UNSTABLE)的字符串/int。
我有 2 个选项来创建构建后触发器:
使用加入插件
在构建后操作中使用触发器参数化构建
我希望在运行结束时有某种可访问的环境变量...
有什么想法吗?
谢谢!
【问题讨论】:
标签:
triggers
automation
jenkins
【解决方案1】:
这是一个可以回答大多数情况的简单解决方案:
使用'Trigger Parameterized Build'插件,并设置两个触发器-
- '稳定或不稳定但不会失败'
- '失败'
每个触发器都应该运行相同的作业 - 我们称之为“JOB_B”。
对于每个触发器,传递你喜欢的任何参数,并传递一个用户定义的值:
- 对于触发器“1”使用:JOB_A_STATUS=SUCCESS
- 对于触发器“2”使用:JOB_A_STATUS=FAIL
现在,您需要做的就是测试 JOB_B 中的 ${JOB_A_STATUS} 的值,看看它是设置为 'SUCCESS' 还是 'FAIL' .
注意这个方案不区分'stable'和'unstable',只知道'fail'和'success'的区别。
祝你好运!
【解决方案2】:
您可以通过Groovy Post-Build plugin 在后期构建步骤中使用 Groovy 脚本检查状态,该脚本可以通过Jenkins Java API 访问 Jenkins 内部。该插件为脚本提供了变量 manager,可用于访问 API 的重要部分(请参阅插件文档中的 Usage 部分)。
例如,您可以这样将构建结果输出到构建控制台:
def result = manager.build.result
manager.listener.logger.println "And the result is: ${result}"
现在,您可以改为使用该值来创建一个属性文件并将该文件传递给 Parameterized Trigger post-build 步骤(它有这样一个选项)。
一个警告:我不确定是否可以安排构建后步骤以特定顺序执行,以确保 Groovy 构建后步骤在参数化触发器步骤之前运行。