我可以在我的YAML脚本中设置一个条件,让管道根据可用的代理选择一个代理,但只运行定义的作业吗



基本上,我想构建一个可以在windows和Linux上构建的项目。我想定义两个作业,windowsBuild和linuxBuild。如果选择的代理是windows代理,则我希望管道只运行windows构建;如果选择的是Linux代理,则管道只运行Linux构建。此外,我希望默认代理是windows代理,我希望它只在windows代理不可用的情况下在Linux上运行,在两者都不可用的场景中,它应该等待windows代理。

p.s我使用的是自托管代理;有趣的是,我不小心删除了微软托管的代理,不知道如何替换它们:(

有人知道我该怎么做吗?非常感谢您的帮助,谢谢。

您需要添加一个名为Check的作业。然后添加powershell任务。

创建脚本以检查代理状态。

使用rest api Agents-Get获取windows和linux代理的状态。和基于磁体状态的CCD_ 1。

设置作业条件。

例如,如果windows代理不可用,而linux代理可用,则powershell任务exit 1(作业检查失败(将触发作业B。

- job: buildA
displayName: buildA
dependsOn: Check
condition: succeeded()
pool: 
vmImage: windows-latest

steps:
- script: echo "windows-latest"
- job: buildB
displayName: buildB
dependsOn: Check
pool: 
vmImage:  ubuntu-latest
condition: failed()
steps:
- script: echo "ubuntu-latest"

相关内容

最新更新