如何将构建工件移动到当前工作目录
How to move build artifact into current working directory
我正在尝试找到一种方法将所有文件从我的工件文件夹复制到 $(System.DefaultWorkingDirectory)
。
现在我只能使用日志中的绝对路径移动它,但你必须同意这不是最干净的方法。
- task: CopyFiles@2
inputs:
SourceFolder: '/home/vsts/work/1/BuildPipeline/drop/'
Contents: '**'
TargetFolder: '$(System.DefaultWorkingDirectory)'
我尝试使用 $(System.ArtifactsDirectory)
变量,但当我使用它时,我最终得到了 /home/vsts/work/1/a
。
你能推荐一个更好的方法吗?
您可以使用 Agent.BuildDirectory
指向:/home/vsts/work/1
。
所以:
SourceFolder: '$(Agent.BuildDirectory)/BuildPipeline/drop/'
您可以使用 powershell
任务递归复制文件:
- task: PowerShell@2
displayName: copy items to current working directory
inputs:
targetType: 'inline'
script: 'Copy-Item -Path "$(System.ArtifactsDirectory)$(Build.DefinitionName)\drop\*" -Destination "$(System.DefaultWorkingDirectory)" -Recurse'
我正在尝试找到一种方法将所有文件从我的工件文件夹复制到 $(System.DefaultWorkingDirectory)
。
现在我只能使用日志中的绝对路径移动它,但你必须同意这不是最干净的方法。
- task: CopyFiles@2
inputs:
SourceFolder: '/home/vsts/work/1/BuildPipeline/drop/'
Contents: '**'
TargetFolder: '$(System.DefaultWorkingDirectory)'
我尝试使用 $(System.ArtifactsDirectory)
变量,但当我使用它时,我最终得到了 /home/vsts/work/1/a
。
你能推荐一个更好的方法吗?
您可以使用 Agent.BuildDirectory
指向:/home/vsts/work/1
。
所以:
SourceFolder: '$(Agent.BuildDirectory)/BuildPipeline/drop/'
您可以使用 powershell
任务递归复制文件:
- task: PowerShell@2
displayName: copy items to current working directory
inputs:
targetType: 'inline'
script: 'Copy-Item -Path "$(System.ArtifactsDirectory)$(Build.DefinitionName)\drop\*" -Destination "$(System.DefaultWorkingDirectory)" -Recurse'