Jenkins CD Pipeline:如何每天执行一次特定步骤

时间:2018-01-19 14:25:15

标签: jenkins jenkins-pipeline continuous-delivery

我有一个(声明性的)Jenkins Pipeline,它正在不断地进行构建和测试。成功后,应根据某些计划,将应用程序每天一次部署在特定的测试环境中。

例如,如果构建成功,则当前时间为

  • 在11:00到14:00之间,部署到TestA,但每天只需一次;
  • 在14:00到18:00之间部署到TestB,但也只是每天一次;

我可以在一些常规代码中进行时隙处理,但我不确定如何记住"到目前为止是否已在此时间段内部署。当然,将该信息存储在工作空间中是没用的,因为以后的构建可以在其他地方执行。

那么我可能有哪些选择?

  1. 将一些标记文件存储在共享网络位置,并在以后的版本中检查此文件及其时间戳,以确定是否需要部署。这可能会起作用,但会引入对外部资源的依赖。
  2. 我能以某种方式"标记"在进行部署时,Jenkins构建,以便后续构建可以遍历以前的构建并搜索此类标记吗?就像使用build?
  3. 归档一些小文本文件一样
  4. 或者,是否有支持此方案的任何插件
  5. 或者任何完全不同的想法?
  6. 这似乎是CD管道中经常出现的情况,所以我想知道这是如何在野外完成的......感谢任何提示!

1 个答案:

答案 0 :(得分:1)

您应该在单独的管道上进行构建和部署阶段。这样,构建可以独立进行,并且可以由计时器触发部署以每天精确地运行一次。

在这种情况下,您希望构建管道归档其工件,以便部署管道始终可以部署成功的构建。 Copy Artifacts plugin可用于将构建管道的工件放入部署管道的工作空间中。