我在Jenkins中设置条件构建作业时遇到了很多麻烦。 这是我的设置:
我有一系列工作,例如: JobA< - JobB< - JobC< - JobC-tests ,其中< - 表示“产生工件对于”。因此, JobA 会生成 JobB 依赖的工件,依此类推(从右向左阅读,这意味着“取决于”)。
其中一个下游工作,让我们说 JobC 使用2个SCM存储库,让我们称之为fooC和barC。 JobC-tests 有另一个文件集,称为barC-tests。
JobC-tests 需要很长时间。 JobC 非常快。我想避免运行 JobC-tests ,除非barC或barC测试已更改。
我想将我的构建设置为像这样工作:
我尝试使用Conditional BuildStep plugin,但这对我来说似乎根本不起作用。我将JobC设置为从SCM触发中排除barC,并将JobC测试排除在轮询barC之外,在JobC测试中使用条件构建步骤,仅在SCM更改触发时构建JobC。对barC测试的更改不会触发任何构建,如果这完全有效,那就没有问题。我遇到的问题是JobC测试根本没有触发JobC。
我还尝试创建一个'轮询'作业,轮询barC的更改,然后在构建JobC时阻塞,然后构建JobC测试。但是,轮询工作成为上游工作,而且由于JobC阻止上游工作,我遇到了僵局。
非常感谢任何帮助或想法。