首页 > 解决方案 > 如何等待 Jenkins 作业进行多个 git commit 然后开始作业

问题描述

开发人员经常进行提交,因此每次提交后都会执行自动化测试作业(即使是较小的提交)。现在,由于我们的自动化测试工作需要大量时间,我们希望仅在开发人员至少添加少量提交时运行该工作。

这里的议程是确保我们的自动化工作在开发人员至少 3-4 次 git 提交上运行。

示例 现在发生了什么:开发人员在 GIT 存储库中提交了一些内容,Jenkins 作业将轮询任何提交,然后如果发现任何更改/提交,则启动作业。

示例我想要什么:开发人员在 GIT 存储库中提交某些内容,Jenkins 作业将轮询任何提交,现在如果 Jenkins 检测到任何更改,那么它应该在某个时间范围内等待第二次提交,假设 3 小时,如果 Jenkins 没有找到任何在 3 小时的时间范围内提交更多,它应该开始工作。但是如果 Jenkins 发现任何提交,那么它应该等待剩余时间或开始执行。

标签: gitjenkins

解决方案


一些想法:

  1. 您确实应该考虑修复自动化测试套件,或者弄清楚这些测试是否可以并行运行。
  2. 我喜欢 DanielBarbarian 每 3 小时轮询一次更改的想法。
  3. 您可以创建一些管道作业,在提交时克隆/获取 repo,然后num_commits % 3 == 0在运行测试之前验证是否或某些内容。
  4. 听起来您正在开发分支上进行测试 - 相反,创建一个“测试”分支或其他东西,开发人员可以将批量提交推送到该分支,并在该分支上进行测试。

推荐阅读