我有一个(声明性的)Jenkins Pipeline,它不断地进行构建和测试。成功后,应根据某个计划每天在特定测试环境中部署一次应用程序。
例如,如果构建成功,并且当前时间为
- 在 11:00 到 14:00 之间,部署到 TestA,但每天只部署一次;
- 在 14:00 到 18:00 之间部署到 TestB,但也每天只部署到一次;
- 等。
我将能够在一些时髦的代码中进行时隙处理,但我不确定如何"记住"截至今天为止,该时间段内是否已经进行了部署。当然,将这些信息存储在工作区中是没有用的,因为以后的构建可能会在其他地方执行。
那么我可能有什么选择呢?
- 将某个标记文件存储在共享网络位置,并在以后的生成中检查此文件及其时间戳,以确定是否需要部署。这可能会起作用,但会引入对外部资源的依赖。
- 我可以在进行部署时以某种方式"标记"Jenkins构建,以便后续构建可以循环访问以前的构建并搜索此类标记吗?喜欢在构建中存档一些小文本文件?
- 或者,是否有任何插件支持此方案?
- 或者有什么完全不同的想法?
这似乎是 CD 管道中常见的场景,所以我想知道这在野外是如何完成的......感谢您的任何提示!
应在单独的管道上具有生成和部署阶段。这样,生成可以独立进行,并且部署可以由计时器触发,每天只运行一次。
在这种情况下,你希望生成管道存档其项目,以便部署管道始终可以部署成功的生成。复制项目插件可用于将生成管道的项目获取到部署管道的工作区中。