使用插件触发Jenkins的发布版本

时间:2016-08-02 20:27:43

标签: jenkins jenkins-plugins

我正在尝试按照以下方式在Jenkins中进行构建促销:

  • Jenkins job A build prod A snapshot
  • A具有将快照部署到测试环境的下游作业B
  • B有一个下游作业C,它在测试环境中对Prod A进行测试。
  • 如果C成功,我想通过踢作业A的发布版本来推广作业A; 这将启动作业B,它将发布版本部署到Prod env;作业C将开始在Prod env上运行测试。 如果C成功,只需向所有人发送邮件......它不应该启动另一个A版本。

我试图使用构建促销插件,我可以设置标准。

  1. 但是在“动作”部分中,我如何启动A的发布版本? 另请注意,第一轮是A的快照构建。当C成功时,我想触发一次A的发布版本。它不应该继续循环。

  2. 如果您有任何其他更好的想法来实现此功能,请告诉我

  3. 由于

1 个答案:

答案 0 :(得分:1)

使用两个工作链

  1. 快照的一组作业A / B / C(例如A-snap / B-snap / C-snap)和
  2. 要发布的另一组A / B / C职位(例如A-rel / B-rel / C-rel)。
  3. 配置促销A-snap ,以便触发A-rel 。不要将促销用于A-rel(或使用不同的操作来处理成功的版本)。 这可以防止您提到的“循环问题”

    首先复制作业看起来很尴尬,但是当使用某个框架自动生成作业时(例如Job DSL plugin),会很简单。另一方面,您最终将获得更清晰的设置,因为您将避免相同的作业实际执行不同的任务(这里:快照和发布相关的构建/部署/测试)。 这还有其他好处:

    • 快照和发布任务可以并行(如果您有资源)
    • 运行
    • 如果构建作业与 SCM 绑定,那么混合快照/发布版本会导致混乱(更改日志错误,错误指责)
    • 即使不与SCM绑定,可追溯性也会好得多,而不是在同一个工作中混合快照/发布版本。

    关于您的问题“1.”:实际触发A-rel将很简单(Build other projects行动)。但是,您需要确保A-rel将在当前正在升级的同一快照版本上运行。