基本上,我想构建一个可以在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"