我们有我们的管道设置,我们启动一个工作,每次有一个推动分支。我们的测试被分离到它自己的仓库里。在一个简单的例子中,它看起来像这样:
Repo0 Job ---> RepoTest Job
对于下游工作,它变得有点混乱:
Repo1 ---> RepoTest
---> Repo2 ---> RepoTest
---> Repo4 ---> RepoTest
---> Repo3 ---> RepoTest
有没有一种聪明的方法,而不仅仅是使用一个恒定的时间延迟,只在所有下游作业完成后启动测试一次?例如:
Repo1 ---> Repo2 ---> Repo4 ---> RepoTest
---> Repo3
也会有Repo2是更改所在的情况,因此只希望在Repo4完成后启动测试,而不考虑Repo1或Repo3。注意:这是我们的情况的一个简化的例子。我们可能会有20多个工作开始。
目前设置它,所以我们只是触发测试X的时间量的基础上,其中存储库的变化是位于。不理想
1条答案
按热度按时间m0rkklqb1#
如果你可以忍受上游作业等待下游作业完成,那么你可以在每个作业结束时有条件地触发测试(如果作业是由scm事件触发的),或者跳过测试(如果作业是由另一个作业触发的)。
这意味着你正在为每一个 * 构建 * 作业添加逻辑,但我只是不明白你的 * 测试 * 作业如何知道在运行之前要等待什么。