因此,我试图想出一种方法来允许仅出于调试目的而在构建管道中轻松选择给定的代理。到目前为止,我有以下片段。两者都没有if片段缠结的情况,但是我试图根据设置的参数或设置的返回变量来做一个或另一个,以便如果它处于调试模式,它将选择并代理,如果不是,则它将使用池选择要对其运行构建的代理。到目前为止,没有运气。
variables:
debugMode: 'false'
parameters:
- name: poolOption
type: string
default: 'ZupaDeploymentPool'
- name: debugMode
type: string
default: 'true'
- name: debugMachine
type: string
default: 'ZUPBUILD03'
trigger:
batch: true
branches:
include:
- master
paths:
exclude:
- README.md
${{ if ne($(debugMode), 'false') }}:
pool: ${{ parameters.poolOption }}
${{ if ne($(debugMode), 'true') }}:
pool:
name: ${{ parameters.poolOption }}
demands:
- Agent.Name -equals ${{ parameters.debugMachine }}
答案 0 :(得分:1)
我测试了您的YAML样本并进行了一些修改。您可以尝试将“表达式”设置为一个阶段,然后检查其是否可以按预期工作。
这里是一个示例,您可以参考它。
trigger:
- master
parameters:
- name: poolOption
type: string
default: 'Windows-latest'
- name: debugMode
type: string
default: false
values:
- true
- false
- name: debugMachine
type: string
default: 'ubuntu-16.04'
stages:
- stage: A
jobs:
- job: testjob
pool:
${{ if eq(parameters.debugmode, 'true') }}:
vmImage: ${{ parameters.poolOption }}
${{ if eq(parameters.debugmode, 'false') }}:
vmImage: ${{ parameters.debugMachine }}
steps:
- script : "echo Hello, world!"
注意:我使用的是Microsoft托管的代理,因此我使用的是vmImage
字段。
您可以根据需要specify specific self-hosted agents(name
字段)。
希望这会有所帮助。
答案 1 :(得分:1)
因此,在与上述kevin-lu-msft进行了快速交谈之后,带我进入了此解决方案,用于处理在池中选择特定代理的情况。
User1 6
User2 8
User3 1