Azure devops 如何在Microsoft托管代理池上的Azure管道上实现作业的实际并行执行?
我有一个非常简单但很慢(约15分钟)的节点测试,我想在Ubuntu和Linux上运行,通过Azure DevOps上的Azure管道,在节点6、8和10上运行每个节点,总共6个“作业” 我的Azure devops 如何在Microsoft托管代理池上的Azure管道上实现作业的实际并行执行?,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,我有一个非常简单但很慢(约15分钟)的节点测试,我想在Ubuntu和Linux上运行,通过Azure DevOps上的Azure管道,在节点6、8和10上运行每个节点,总共6个“作业” 我的azure pipeline.yml如下所示: jobs: - job: Ubuntu pool: vmImage: 'Ubuntu 16.04' strategy: matrix: node_6_x: node_version: 6.x nod
azure pipeline.yml
如下所示:
jobs:
- job: Ubuntu
pool:
vmImage: 'Ubuntu 16.04'
strategy:
matrix:
node_6_x:
node_version: 6.x
node_8_x:
node_version: 8.x
node_10_x:
node_version: 10.x
steps:
- task: NodeTool@0
inputs:
version: $(node_version)
displayName: 'Install Node.js $(node_version)'
- script: |
npm install
displayName: 'npm install'
- script: |
npm run test
displayName: 'npm test'
- job: Windows
pool:
vmImage: 'vs2017-win2016'
strategy:
matrix:
node_6_x:
node_version: 6.x
node_8_x:
node_version: 8.x
node_10_x:
node_version: 10.x
steps:
- task: NodeTool@0
inputs:
version: $(node_version)
displayName: 'Install Node.js $(node_version)'
- script: |
npm install
displayName: 'npm install'
- script: |
npm test
displayName: 'npm test'
由于这是GitHub上的一个开源存储库,所以我希望这6个测试运行能够并行进行(因为可能会有10个并行作业)
通过观察pull请求的管道运行情况,将azure pipeline.yml
添加到我的存储库中,似乎只是有时会出现一些并行。我通常会等上几分钟才开始工作。这可能是Azure管道端的一个容量问题,即没有运行测试的代理可用吗
当某个操作系统启动时,通常每个操作系统只有一个作业,而矩阵中的其他作业则“未启动/排队”。matrix
作业不应该并行执行吗
这就引出了我真正的问题:
有没有办法在Microsoft托管代理池上的Azure管道上实现作业的实际并行执行?正在更改
strategy:
matrix:
node_6_x:
node_version: 6.x
node_8_x:
node_version: 8.x
node_10_x:
node_version: 10.x
到
(注意额外的maxParallel:3
)似乎已经完成了这项工作:一旦提交到PR分支,构建就会一起启动
虽然maxParallel
目前仅作为文档记录,但似乎需要为matrix
配置获得并行性
(的文档没有帮助,因为它显示了maxpallel
作为matrix
或parallel
的替代方案)
strategy:
maxParallel: 3
matrix:
node_6_x:
node_version: 6.x
node_8_x:
node_version: 8.x
node_10_x:
node_version: 10.x