如何将PublishPipelineArtiact@1与构建脚本一起使用 [英] how to use PublishPipelineArtifact@1 with build script
本文介绍了如何将PublishPipelineArtiact@1与构建脚本一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经让YAML运行我的生成(这是一个伪脚本),并且我希望将生成脚本中的各种输出作为工件发布。
我已经让它正常工作了一半,但我不太清楚如何获取要输出的特定文件夹。
- task: PublishPipelineArtifact@1
displayName: Publish Report
inputs:
pathToPublish: $(System.DefaultWorkingDirectory)/s/ReportProject/bin/Release/netcoreapp3.1
artifactName: MyReport
它实际上似乎是获取某个任意文件夹(这是我的管道的名称,下面是子文件夹)
subfolders
TestResults
a
b
s
是的,我的应用程序在里面,但是所有东西都在里面,非常奇怪。
我更改路径.它发布相同的内容,即所有内容!
推荐答案
当您使用predefined variables引用生成代理中的文件夹时。您应该知道它们映射到的确切文件夹。请参阅下面的自托管代理示例:
$(Pipeline.Workspace)
映射到c:agent\_work1
$(Agent.BuildDirectory)
也映射到c:agent\_work1
$(Build.ArtifactStagingDirectory)
映射到a
文件夹c:agent\_work1a
$(Build.BinariesDirectory)
映射到b
文件夹c:agent\_work1
$(Build.SourcesDirectory)
与映射到s
文件夹c:agent\_work1s
$(System.DefaultWorkingDirectory)
相同
PublishPipelineArtiact任务和其他任务的默认工作目录是$(System.DefaultWorkingDirectory)
(即c:agent\_work1s
)
由于您的项目文件夹驻留在s
文件夹下的ReportProject
文件夹中。这就是targetPath: 'ReportProject/bin/Release/netcoreapp3.1'
有效的原因。因为它等于$(System.DefaultWorkingDirectory)/ReportProject/bin/Release/netcoreapp3.1
,并且
$(Pipeline.Workspace)/s/ReportProject/bin/Release/netcoreapp3.1
和$(Build.SourcesDirectory)/ReportProject/bin/Release/netcoreapp3.1
。这些都会起作用。
这篇关于如何将PublishPipelineArtiact@1与构建脚本一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文