Как переместить артефакт сборки в текущий рабочий каталог

Я пытаюсь найти способ, как скопировать все файлы из моей папки с артефактами в $(System.DefaultWorkingDirectory) .

Как переместить артефакт сборки в текущий рабочий каталог

прямо сейчас я смог переместить его только по абсолютному пути из журналов, но вы должны согласиться, что это не самый чистый способ сделать это.

- task: CopyFiles@2
  inputs:
     SourceFolder: '/home/vsts/work/1/BuildPipeline/drop/'
     Contents: '**'
     TargetFolder: '$(System.DefaultWorkingDirectory)'

Я пытался использовать переменную $(System.ArtifactsDirectory), но когда я ее использую, я оказываюсь на /home/vsts/work/1/a.

Можете ли вы порекомендовать лучший способ сделать это?


25
2

Ответы:

Решено

Вы можете использовать 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'