需要一个Jenkins作业,该作业首先运行其所有依赖关系树,然后再运行

时间:2019-04-08 15:00:31

标签: maven jenkins gerrit

我有一个Maven项目,其中有一些其他项目作为依赖项,而那些依赖项可能还有一些其他项目作为依赖项。

Proj1(Proj2作为依赖项)   | ----> Proj2(Proj3作为依赖项)           | ----> Proj3(以Projn作为依赖项)

因此,我需要制作一组Jenkins作业,每个作业根据依赖关系树逐个运行:

作业3(第1次运行)  | ----> Job2(运行第二)         | ----> Job1(最后运行)

要补充一下我之间的烦恼,作为检查工具。在一次签入中,我们可能有多个项目代码作为补丁集。因此,所有作业应在运行时从修补程序集中获取最新的检入代码。在这种情况下,触发也有些棘手。

有可能吗?如果是,怎么办?

注意-我不是这些活动的专家。

1 个答案:

答案 0 :(得分:0)

您尝试过使用该作业所依赖的其他作业,可以在Gerrit触发器的高级选项下找到。我还没有解决这个问题,但是根据下面的描述,它应该可以满足您的要求。

  

插入该作业实际依赖的所有作业(在静默方式作业中触发的跳过)。如果提交既触发了依赖关系又触发了该作业,则将首先构建依赖关系。使用逗号分隔作业名称。当心循环依赖性。启用此选项后,父构建可用作构建的Env变量

     
      
  • TRIGGER_DEPENDENCY_KEYS =“已触发的父项目的所有键名称的空格分隔列表”
  •   
  • TRIGGER__BUILD_NAME =“已触发项目的内部版本名称”
  •   
  • TRIGGER__BUILD_NUMBER =“已触发项目的内部版本号”
  •   
  • TRIGGER__BUILD_RESULT =“已触发项目的生成结果”   项目密钥名称是使用简单的正则表达式从完整的项目名称生成的: replaceAll(“ [^ a-zA-Z0-9] +”,“ _”)。因此,所有非字母数字字符都将替换为“ _”。
  •