我有一个非常简单但缓慢(~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
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个并行作业)。
观察拉请求的管道运行--将azure-pipeline.yml添加到我的存储库中--似乎只是有时似乎存在一些并行性。我常常要等几分钟才能开始工作。这可能是Azure管道方面的一个容量问题,因为没有运行测试的代理?
当某些东西启动时,通常每个操作系统只有一个作业,而matrix中的其他作业“没有启动/排队”。matrix作业不应该并行执行吗?
这就引出了我真正的问题:
是否有办法在Microsoft托管代理池上的Azure管道上实现作业的实际并行执行?
发布于 2018-09-17 17:29:11
改变
strategy:
matrix:
node_6_x:
node_version: 6.x
node_8_x:
node_version: 8.x
node_10_x:
node_version: 10.x至
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(注意附加的maxParallel: 3)似乎已经完成了任务:一旦提交到PR分支,构建就一起启动了。
虽然maxParallel目前只被记录为“限制并行性的数量”,但它似乎完全需要获得matrix配置的并行性。
( YAML架构中的作业的文档没有帮助,因为它显示了maxParallel作为matrix或parallel的替代方案。)
https://stackoverflow.com/questions/52369252
复制相似问题