问题描述
我有一个发布构建工件步骤,然后是一个复制步骤,用于将我的 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
解决方法
在执行 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(容器)中,而不是在本地代理机器上。
因此,如果您在 copy task
任务之后使用 Publish build artifact
。内容仍在本地代理机器上。它们不会复制到 Azure Pipelines 容器。