【问题标题】:Jenkins MultiJob - Send Results e-mail with data from inner JobsJenkins MultiJob - 发送包含内部作业数据的结果电子邮件
【发布时间】:2013-06-14 21:45:36
【问题描述】:

我有一个包含 3 个内部作业的 MultiJob 项目,需要按以下顺序执行

Master MultiJob Project (Job)
 |----- Phase 1
            |------> JOB A 
 |----- Phase 2
            |------> JOB B
 |----- Phase 2
            |------> JOB C

当 Job C 结束时,Master MultiJob Project (Job) 将发送一封邮件(使用Email-ext plugin),其中包含所有内部作业(A、B 和 C)的结果状态(作为后期构建步骤)

我需要找到一种方法来从这些内部作业中的每一个中获取结果(作为参数或任何其他方式......)

我尝试这样做:

  1. 设置环境变量然后尝试读取它 - 失败 - 作业 A/B/C 结束后变量不再存在
  2. 尝试使用 SETX,结果相同
  3. 尝试使用EnvInject Plugin 又失败了

难道没有办法这样做吗?

有人可以遮光吗?

【问题讨论】:

  • 您需要从这些工作 (A/B/C) 中获得什么样的信息?
  • @vik 我想从每个内部工作中获取结果,并获取这个内部工作的内部版本号
  • Multijob 插件不允许您将结果/build# 作为参数传递。所以我能想到的唯一可能的解决方案是使用 Groovy PostBuild Plugin 并使用 groovy 脚本从每个作业中获取结果。我们这样做是为了在同一个 Multijob Suite 中获取另一个作业的 SVN 修订号。

标签: jenkins environment-variables jenkins-plugins


【解决方案1】:

假设你的工作是一个 Multijob,你可以像这样添加一个 groovy post build:

subBuilds = manager.build.getSubBuilds()
//print the each sub build instance to the console log and its result
subBuilds.each{
    manager.listener.logger.println "${it}, ${it.getResult()}"
}

【讨论】:

    猜你喜欢
    • 2019-12-08
    • 1970-01-01
    • 2013-08-20
    • 2011-04-26
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    • 2012-06-28
    • 1970-01-01
    相关资源
    最近更新 更多