azure devops 管道 CopyFiles@2 任务从代理 A 复制文件,但 DownloadBuildArtifacts@0 将文件下载到代理 B
azure devops pipeline CopyFiles@2 task copy's files from agent A but DownloadBuildArtifacts@0 downloads the files to agent B
我有从托管代理复制文件的有线行为,然后将它们下载回同一个代理
看起来它从代理 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)'
如果您使用并行作业,这是预期的行为。根据你的截图,有多个作业 self-hosted 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!
我有从托管代理复制文件的有线行为,然后将它们下载回同一个代理 看起来它从代理 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)'
如果您使用并行作业,这是预期的行为。根据你的截图,有多个作业 self-hosted 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!