2016-08-02 35 views
0

我试图做的建立促进詹金斯如下触发詹金斯的发布版本:使用插件

  • 詹金斯作业A构建督促快照
  • A具有部署快照到下游作业B测试环境
  • B有一个下游作业C,它在Test env的Prod A上运行测试。
  • 如果C成功了,我想通过踢出工作A的发布版本来促进工作A; 这将启动将发布版本部署到产品环境的作业B;作业C将被启动以在产品环境中运行测试。 如果C是成功的只是将邮件发送到所有..它不应该踢A.脱另一个构建

我试图用建立推广插件,我可以设定的标准。

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

  2. 如果您有任何其他更好的创意来实现这一功能,请让我知道

感谢

回答

1

使用两份工作链

的工作
  1. 一组快照的A/B/C(例如,A-snap/B-snap/C-snap)和
  2. 用于发布的另一组作业A/B/C(例如,A-rel/B-rel/C-rel)。

配置推广A-snap,使其触发A-rel。请勿对A-rel使用促销活动(或使用其他操作处理成功发布)。 这将防止你提到的“循环问题”

复制作业出现在第一位置别扭,而是使用某些框架用于自动生成的作业(如Job DSL plugin)时将是简单的。另一方面,您将最终以更清晰的设置,因为您将避免相同作业实际上执行不同任务(这里:与快照和版本相关的构建/部署/测试)。这有额外的好处:

  • 快照和释放,如果构建工作是联系在一起SCM,然后混合快照/发行版本的任务都可以在并行运行(如果你有足够的资源)
  • 会导致一个混乱(错误的更新日志,错误的指责)
  • 即使当没有绑定到SCM,可追溯性会好很多当不混合快照/发布构建在一个和相同的工作。

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