我对来自托管代理的复制文件进行了有线行为,然后将它们下载回同一代理 看起来它从代理 A 复制文件,但相同的管道将它们下载回代理 B with 在另一台机器上执行另一个不相关的构建作业
从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!
关于azure devops 管道 CopyFiles@2 任务从代理 A 复制文件,但 DownloadBuildArtifacts@0 将文件下载到代理 B,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64476518/