Azure DevOps流水线偶发报错:无法向已完成运行添加新组如何解决?
问题描述
我在同一分支中创建了Int Smoke、QA Smoke两个流水线,它们分别由另外两个流水线触发。但这两个流水线会偶发失败,并非每次都会出现该问题。我不同时运行它们,也不存在并行运行的情况。报错信息如下:
The run you are attempting to access is already complete and will not accept new groups When a run finishes all of its groups, it waits for a configurable set of time before finally completing. You must add more groups during that time period The --tag flag you passed was: The --group flag you passed was: Azure CI The --ciBuildId flag you passed was: 20230302.3
解决方法
- 保证ciBuildId唯一:两个流水线触发时可能复用了同一个
--ciBuildId,导致后一个流水线试图往已完成的同一ID运行实例里添加分组。给Int Smoke和QA Smoke分配完全独立的ciBuildId,比如在原ID基础上加上流水线标识(如20230302.3-int和20230302.3-qa)。 - 延长运行完成等待时长:根据报错提示,运行完成所有分组后会进入一段等待期才最终结束。如果触发时机刚好在等待期之后,就会报错。找到CI工具中对应运行的等待超时配置,延长这段时间,确保触发流水线能在等待期内添加新分组。
- 优化触发时序:即便没有并行运行,前一个流水线的实例可能还处于等待最终完成的阶段,后一个就触发了。调整触发条件,确保前一个流水线完全结束(不是仅完成分组)后再触发下一个,或者给两个流水线的触发设置固定间隔。
- 拆分分组标识:两个流水线都使用
Azure CI作为分组标识,可能被工具识别为同一运行实例的分组。给它们分别配置不同的group名称,比如Azure CI - Int Smoke和Azure CI - QA Smoke,避免分组冲突。
内容的提问来源于stack exchange,提问作者Rashi Atapattu
相关产品推荐
相关产品推荐

