Jenkins 管道 - 在一系列作业中仅运行一次测试作业?

问题描述 投票:0回答:1

我们设置了管道,每次分支上有推送时我们都会开始一项工作。我们将测试分为自己的存储库。在一个简单的情况下,它看起来像:

Repo0 Job ---> RepoTest Job

对于下游工作,事情会变得有点混乱:

Repo1 ---> RepoTest
      ---> Repo2 ---> RepoTest
                 ---> Repo4 ---> RepoTest
      ---> Repo3 ---> RepoTest

是否有一种聪明的方法,不只使用恒定的时间延迟,只在所有下游作业完成后才开始一次测试?比如:

Repo1 ---> Repo2 ---> Repo4 ---> RepoTest
      ---> Repo3

也可能存在 Repo2 是更改所在的情况,因此只想在 Repo4 完成后开始测试,而不考虑 Repo1 或 Repo3。注意:这都是我们情况的简化示例。我们可能会启动 20 多个工作序列。

目前的设置是,我们只需根据更改所在的存储库触发 X 时间的测试。不理想。

git jenkins bitbucket jenkins-plugins jenkins-groovy
1个回答
0
投票

如果您可以忍受上游作业等待下游作业完成,那么您可以在每个作业结束时有条件地触发测试(如果该作业是由 scm 事件触发的),或者如果该作业是由另一个作业触发的,则可以跳过它们。

这意味着您正在向每个 build 作业添加逻辑,但我只是不明白您的 test 作业如何知道在运行之前要等待什么。

© www.soinside.com 2019 - 2024. All rights reserved.