如何在参数化Azure YAML管道中计算所需代理数量?
Azure Pipeline 代理数量计算实现方案
需求说明
在主YAML中定义变量$(count),计算Azure管道所需代理总数,规则如下:
- 代理总数 = 所有配置
strategy.parallel的作业的parallel值总和 + 未配置strategy.parallel的作业按1计数的总和 - 仅统计基于代理的作业(排除使用
server池的作业) - 通过
stages参数接收所有阶段,遍历解析其中的作业
修改后的YAML代码
parameters: - name: stages type: stageList default: [] variables: # 初始化count变量为0 count: 0 stages: - ${{ each stage in parameters.stages }}: - ${{ each job in stage.jobs }}: - ${{ if ne(job.pool.name, 'server') }}: - ${{ if ne(job.strategy.parallel, '') }}: # 将当前作业的parallel值累加到count ${{ variables.count = variables.count + job.strategy.parallel }} - ${{ else }}: # 未配置parallel的作业,count加1 ${{ variables.count = variables.count + 1 }}
代码说明
- 在
variables块中初始化count为0,保证初始值正确 - 遍历每个阶段下的作业,先过滤掉使用
server池的作业 - 对配置了
strategy.parallel的作业,将其parallel值直接累加到count - 对未配置
strategy.parallel的作业,给count加1
内容的提问来源于stack exchange,提问作者osim_ans
相关产品推荐
相关产品推荐

