use*_*684 8 azure-devops azure-pipelines azure-pipelines-yaml
我正在尝试根据条件在特定池上执行 Azure DevOps 作业。目标是在自托管代理和微软代理之间切换。这是配置:
parameters:
custom_agent: true
jobs:
- job: Test
displayName: Test job
- ${{ if eq(parameters.custom_agent, true) }}:
- pool:
name: mypool
demands:
- agent.os -equals Linux
- ${{ if eq(parameters.custom_agent, false) }}:
- pool:
vmImage: 'ubuntu-latest'
steps:
- task: npmAuthenticate@0
Run Code Online (Sandbox Code Playgroud)
有任何想法吗 ?
小智 9
下面的例子解决了我的要求
parameters:
- name: 'vmImage'
type: string
default: 'ubuntu-latest'
- name: 'agentPool'
type: string
default: ''
jobs:
- job: 'Example'
pool:
${{ if ne(parameters.agentPool, '') }}:
name: ${{ parameters.agentPool }}
${{ if eq(parameters.agentPool, '') }}:
vmImage: ${{ parameters.vmImage }}
steps:
- script: example
Run Code Online (Sandbox Code Playgroud)
我们可以指定步骤、作业或阶段的运行条件。我们可以使用不同的条件条目配置管道中的作业,并根据这些条件设置需求。
骨架版本如下所示:
parameters:
- name: custom_agent
displayName: Pool Image
type: boolean
default: True
jobs:
- job: selfhostedagent
condition: eq(${{ parameters.custom_agent }}, True)
displayName: 'self_hosted agent'
pool:
name: Default
demands:
- Agent.Name -equals WS-VITOL-01
steps:
- script: echo self_hosted agent
- job: hostedagent
condition: eq(${{ parameters.custom_agent }}, False)
displayName: 'hosted agent'
pool:
vmImage: 'ubuntu-latest'
steps:
- script: echo hosted agent
Run Code Online (Sandbox Code Playgroud)
更新1
另外,我们可以配置任务模板,然后在步骤中使用该模板。
结果:
| 归档时间: |
|
| 查看次数: |
8203 次 |
| 最近记录: |