我们想动态地触发詹金斯中不同下游版本中的集成测试。我们有一个参数化的集成测试项目,该项目将测试名称作为参数。我们从git repo动态确定测试名称。
我们有一个父项目,该项目使用jenkins-cli为源代码中发现的每个测试启动集成项目的构建。父项目和集成项目通过匹配的指纹相关联。
这种方法的问题是汇总测试结果不起作用。我认为问题在于“下游”集成测试是通过jenkins-cli启动的,因此jenkins并未意识到它们是在下游。
我看过许多jenkins插件来尝试使它工作。Join和Parameterized Trigger插件无济于事,因为它们希望生成静态的项目列表。可用于参数化触发器的参数工厂也不起作用,因为没有工厂可以创建任意参数列表。日志触发器插件将无法使用。
Groovy Postbuild插件看起来应该可以工作,但是我不知道如何从中触发构建。
def job = hudson.model.Hudson.instance.getJob("job") def params = new StringParameterValue('PARAMTEST', "somestring") def paramsAction = new ParametersAction(params) def cause = new hudson.model.Cause.UpstreamCause(currentBuild) def causeAction = new hudson.model.CauseAction(cause) hudson.model.Hudson.instance.queue.schedule(job, 0, causeAction, paramsAction)
这终于对我有用。