问题描述
我对来自托管代理的复制文件有有线行为,然后将它们下载回同一代理 看起来它从代理程序A复制文件,但是同一管道将它们下载回代理程序B 与是在另一台机器上执行另一个无关的构建工作
从ios_docker_142_linux_slave_1上传
下载回不同的代理ios_docker_141_linux_slave_3,为什么?
- task: copyFiles@2
inputs:
CleanTargetFolder: 'true'
SourceFolder: '$(Agent.HomeDirectory)/../${{parameters.Folderpath}}'
Contents: '**'
TargetFolder: '$(build.artifactstagingdirectory)'
解决方法
如果使用并行作业,这是预期的行为。根据您的屏幕截图,有多个作业是自托管的connect,mac_agent,copy_back_files_to_self。.
一个代理一次完成一项工作。如果代理程序正在运行作业,它将处于繁忙状态,而其他作业将寻找空闲的代理程序来运行。并行作业用于一次在多个代理中运行多个作业。
要实现所需的功能,您需要在YAML文件中指定详细代理。池名称需要添加到name
字段中,然后可以添加demands。您可以尝试以下YAML代码:
stages:
- stage: Deploy
pool:
name: AgentPoolName(e.g. alm-aws-pool)
demands:
- agent.name -equals Agentname (e.g. deploy-05-agent1)
jobs:
- job: BuildJob
steps:
- script: echo Building!