每天安排Jenkins任务一次,但仅在成功运行其他任务之后

每天安排Jenkins任务一次,但仅在成功运行其他任务之后,jenkins,Jenkins,我需要安排Jenkins任务,使其每天运行一次,但前提是某些其他任务当天至少成功一次。情况就是这样,但没有一个答案能描述如何应对我遇到的突发事件 我的团队有一个Jenkins流程来构建软件。我们称之为建筑商。生成器每15分钟检查一次我们的GitHub repo,如果发现代码更改,就会运行它 我们还有另一个任务,它运行简单的测试。整个测试套件可以在不到15分钟内完成。这是短期测试任务。每次生成器通过时都会运行短期测试 最后,我们有一组需要几个小时才能运行的测试。让我们称之为长测试。我们希望每天运行

我需要安排Jenkins任务,使其每天运行一次,但前提是某些其他任务当天至少成功一次。情况就是这样,但没有一个答案能描述如何应对我遇到的突发事件

我的团队有一个Jenkins流程来构建软件。我们称之为建筑商。生成器每15分钟检查一次我们的GitHub repo,如果发现代码更改,就会运行它

我们还有另一个任务,它运行简单的测试。整个测试套件可以在不到15分钟内完成。这是短期测试任务。每次生成器通过时都会运行短期测试

最后,我们有一组需要几个小时才能运行的测试。让我们称之为长测试。我们希望每天运行一次,但前提是构建器和短测试都通过。长时间的测试在深夜开始,所以我们可以在第二天早上检查结果

此外,我们只希望在当天最新成功的构建上运行长测试。如果最近的构建失败,我们希望Jenkins忽略该构建,并使用通过的前一个构建进行测试

如果那天没有通过构建,就根本不需要运行长测试

我可以像这样安排每晚一次的长测试,但是请告诉我如何设置依赖项

   01 00 * * * 

为了获得这种行为,您需要某种持久性来标记成功的构建和成功的短期测试完成。根据您的实际设置,有几个选项可用,例如:

  • 基于文件的标志(成功构建/测试时写入文件)
  • 数据库标志(成功构建/测试时写入数据库)
  • Git分支操作(在成功构建步骤时推/合并到特定的分支,如这里给出的示例:)
一旦您完成了持久性设置,就可以根据更改或定期触发构建。例如,可以设置以下依赖项:

  • 推送到Git代码分支,触发Jenkins构建作业
  • 对于这个步骤,您需要持久性,比如push to git:成功完成构建阶段后,将触发短测试,如果成功,则使用git Publisher插件执行push to git“latest passing short test”分支。这是为了确保只有最后一次通过的短测试才会被安排用于长时间的夜间测试
  • 最后,定期安排长测试,处理分支“最新通过短测试”
  • 这只是顶层概述,因为详细信息在很大程度上取决于您的实际设置、权限、git策略、Jenkins配置类型等