Jenkins pipeline -在一系列作业中只运行一次测试作业?

oprakyz7  于 2023-10-17  发布在  Jenkins
关注(0)|答案(1)|浏览(138)

我们有我们的管道设置,我们启动一个工作,每次有一个推动分支。我们的测试被分离到它自己的仓库里。在一个简单的例子中,它看起来像这样:

Repo0 Job ---> RepoTest Job

对于下游工作,它变得有点混乱:

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

有没有一种聪明的方法,而不仅仅是使用一个恒定的时间延迟,只在所有下游作业完成后启动测试一次?例如:

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

也会有Repo2是更改所在的情况,因此只希望在Repo4完成后启动测试,而不考虑Repo1或Repo3。注意:这是我们的情况的一个简化的例子。我们可能会有20多个工作开始。
目前设置它,所以我们只是触发测试X的时间量的基础上,其中存储库的变化是位于。不理想

m0rkklqb

m0rkklqb1#

如果你可以忍受上游作业等待下游作业完成,那么你可以在每个作业结束时有条件地触发测试(如果作业是由scm事件触发的),或者跳过测试(如果作业是由另一个作业触发的)。
这意味着你正在为每一个 * 构建 * 作业添加逻辑,但我只是不明白你的 * 测试 * 作业如何知道在运行之前要等待什么。

相关问题