我需要安排一个Jenkins任务,使其每天运行一次,但前提是某些其他任务至少在当天成功完成一次。这种情况使它成为similar to this other question,但没有一个答案描述如何处理我所遇到的突发事件。
我的团队有一个构建软件的Jenkins流程。我们称之为Builder。 Builder每15分钟检查一次我们的GitHub存储库,如果发现代码更改,则会运行。
我们还有另一项运行简单测试的任务。整个测试套件可在不到15分钟的时间内完成。这是Short-Tests任务。每次Builder传递时都会运行Short-Tests。
最后,我们有一组需要数小时才能运行的测试。我们称之为长期测试。我们希望每天运行一次,但仅在Builder和Short-Tests都通过的情况下运行。长期测试从深夜开始,所以我们可以在第二天早上检查结果。
此外,我们希望仅在当天最近成功构建时运行Long-Tests。 如果最近的构建失败,我们希望Jenkins忽略该构建并使用之前传递的构建进行测试。
如果那天没有构建通过,则根本不需要运行Long-Tests。
我可以像这样每晚安排一次Long-Tests,但请告诉我如何设置依赖项。
01 00 * * *
答案 0 :(得分:1)
为了获得这种行为,您需要某种持久性来标记成功构建和成功完成短测试。根据您的实际设置,有多种选择,例如:
一旦进行了持久性设置,就可以在更改时或定期触发构建。例如,可以设置以下依赖项:
这只是顶级概述,因为细节很大程度上取决于您的实际设置,权限,git策略,Jenkins配置类型等。