0

我有一个发布构建工件步骤,然后是一个复制步骤,将我的 UI 编译内容放入生成的文件夹中。尽管复制步骤成功并且我可以在日志中看到它将我所需的内容复制到 drop 内的指定文件夹中,但是当我在构建过程结束时下载工件时,这些文件不存在。

我在这里错过了一些相对路径吗?我的文件是否被复制到不属于最终工件的文件夹中?以下是我在 yaml 中的最后两个任务

- task: PublishBuildArtifacts@1
      inputs:
        PathtoPublish: '$(Build.ArtifactStagingDirectory)'
        ArtifactName: 'drop'
        publishLocation: 'Container'
    
    - task: CopyFiles@2
      inputs:
        SourceFolder: 'my-ui\dist\wwwroot\assets'
        Contents: '**'
        TargetFolder: 'drop\MyProj\wwwroot\assets'
        OverWrite: true
        CleanTargetFolder: true
4

1 回答 1

3

您应该在任务之前使用copy task将所需内容复制到文件夹中的指定文件夹。见下文:$(Build.ArtifactStagingDirectory)publish build artifact

 - task: CopyFiles@2
      inputs:
        SourceFolder: 'my-ui\dist\wwwroot\assets'
        Contents: '**'
        TargetFolder: '$(Build.ArtifactStagingDirectory)\MyProj\wwwroot\assets'
        OverWrite: true
        CleanTargetFolder: true

- task: PublishBuildArtifacts@1
      inputs:
        PathtoPublish: '$(Build.ArtifactStagingDirectory)'
        ArtifactName: 'drop'
        publishLocation: 'Container'

Publish build artifact任务会将内容发布到 中$(Build.ArtifactStagingDirectory),并将它们存储在 Azure Pipelines (Container) 中,而不是在本地代理机器上。

所以如果你copy taskPublish build artifact任务之后使用。内容仍在本地代理计算机上。它们不会复制到 Azure Pipelines 容器。

于 2020-12-23T02:08:01.217 回答